diff --git a/doc/src/sgml/bki.sgml b/doc/src/sgml/bki.sgml index 33378b46ea..c4ffc61b84 100644 --- a/doc/src/sgml/bki.sgml +++ b/doc/src/sgml/bki.sgml @@ -1,38 +1,647 @@ - <acronym>BKI</acronym> Backend Interface + System Catalog Declarations and Initial Contents - Backend Interface (BKI) files are scripts in a - special language that is understood by the - PostgreSQL backend when running in the - bootstrap mode. The bootstrap mode allows system catalogs - to be created and filled from scratch, whereas ordinary SQL commands - require the catalogs to exist already. - BKI files can therefore be used to create the - database system in the first place. (And they are probably not - useful for anything else.) + PostgreSQL uses many different system catalogs + to keep track of the existence and properties of database objects, such as + tables and functions. Physically there is no difference between a system + catalog and a plain user table, but the backend C code knows the structure + and properties of each catalog, and can manipulate it directly at a low + level. Thus, for example, it is inadvisable to attempt to alter the + structure of a catalog on-the-fly; that would break assumptions built into + the C code about how rows of the catalog are laid out. But the structure + of the catalogs can change between major versions. - initdb uses a BKI file - to do part of its job when creating a new database cluster. The - input file used by initdb is created as - part of building and installing PostgreSQL - by a program named genbki.pl, which reads some - specially formatted C header files in the src/include/catalog/ - directory of the source tree. The created BKI file - is called postgres.bki and is - normally installed in the - share subdirectory of the installation tree. + The structures of the catalogs are declared in specially formatted C + header files in the src/include/catalog/ directory of + the source tree. In particular, for each catalog there is a header file + named after the catalog (e.g., pg_class.h + for pg_class), which defines the set of columns + the catalog has, as well as some other basic properties such as its OID. + Other critical files defining the catalog structure + include indexing.h, which defines the indexes present + on all the system catalogs, and toasting.h, which + defines TOAST tables for catalogs that need one. - Related information can be found in the documentation for - initdb. + Many of the catalogs have initial data that must be loaded into them + during the bootstrap phase + of initdb, to bring the system up to a point + where it is capable of executing SQL commands. (For + example, pg_class.h must contain an entry for itself, + as well as one for each other system catalog and index.) This + initial data is kept in editable form in data files that are also stored + in the src/include/catalog/ directory. For example, + pg_proc.dat describes all the initial rows that must + be inserted into the pg_proc catalog. + + To create the catalog files and load this initial data into them, a + backend running in bootstrap mode reads a BKI + (Backend Interface) file containing commands and initial data. + The postgres.bki file used in this mode is prepared + from the aforementioned header and data files, while building + a PostgreSQL distribution, by a Perl script + named genbki.pl. + Although it's specific to a particular PostgreSQL + release, postgres.bki is platform-independent and is + installed in the share subdirectory of the + installation tree. + + + + genbki.pl also produces a derived header file for + each catalog, for example pg_class_d.h for + the pg_class catalog. This file contains + automatically-generated macro definitions, and may contain other macros, + enum declarations, and so on that can be useful for client C code that + reads a particular catalog. + + + + Most Postgres developers don't need to be directly concerned with + the BKI file, but almost any nontrivial feature + addition in the backend will require modifying the catalog header files + and/or initial data files. The rest of this chapter gives some + information about that, and for completeness describes + the BKI file format. + + + + System Catalog Declaration Rules + + + The key part of a catalog header file is a C structure definition + describing the layout of each row of the catalog. This begins with + a CATALOG macro, which so far as the C compiler is + concerned is just shorthand for typedef struct + FormData_catalogname. + Each field in the struct gives rise to a catalog column. + Fields can be annotated using the BKI property macros described + in genbki.h, for example to define a default value + for a field or mark it as nullable or not nullable. + The CATALOG line can also be annotated, with some + other BKI property macros described in genbki.h, to + define other properties of the catalog as a whole, such as whether + it has OIDs (by default, it does). + + + + The system catalog cache code (and most catalog-munging code in general) + assumes that the fixed-length portions of all system catalog tuples are + in fact present, because it maps this C struct declaration onto them. + Thus, all variable-length fields and nullable fields must be placed at + the end, and they cannot be accessed as struct fields. + For example, if you tried to + set pg_type.typrelid + to be NULL, it would fail when some piece of code tried to reference + typetup->typrelid (or worse, + typetup->typelem, because that follows + typrelid). This would result in + random errors or even segmentation violations. + + + + As a partial guard against this type of error, variable-length or + nullable fields should not be made directly visible to the C compiler. + This is accomplished by wrapping them in #ifdef + CATALOG_VARLEN ... #endif (where + CATALOG_VARLEN is a symbol that is never defined). + This prevents C code from carelessly trying to access fields that might + not be there or might be at some other offset. + As an independent guard against creating incorrect rows, we + require all columns that should be non-nullable to be marked so + in pg_attribute. The bootstrap code will + automatically mark catalog columns as NOT NULL + if they are fixed-width and are not preceded by any nullable column. + Where this rule is inadequate, you can force correct marking by using + BKI_FORCE_NOT_NULL + and BKI_FORCE_NULL annotations as needed. But note + that NOT NULL constraints are only enforced in the + executor, not against tuples that are generated by random C code, + so care is still needed when manually creating or updating catalog rows. + + + + Frontend code should not include any pg_xxx.h + catalog header file, as these files may contain C code that won't compile + outside the backend. (Typically, that happens because these files also + contain declarations for functions + in src/backend/catalog/ files.) + Instead, frontend code may include the corresponding + generated pg_xxx_d.h header, which will contain + OID #defines and any other data that might be of use + on the client side. If you want macros or other code in a catalog header + to be visible to frontend code, write #ifdef + EXPOSE_TO_CLIENT_CODE ... #endif around that + section to instruct genbki.pl to copy that section + to the pg_xxx_d.h header. + + + + A few of the catalogs are so fundamental that they can't even be created + by the BKI create command that's + used for most catalogs, because that command needs to write information + into these catalogs to describe the new catalog. These are + called bootstrap catalogs, and defining one takes + a lot of extra work: you have to manually prepare appropriate entries for + them in the pre-loaded contents of pg_class + and pg_type, and those entries will need to be + updated for subsequent changes to the catalog's structure. + (Bootstrap catalogs also need pre-loaded entries + in pg_attribute, but + fortunately genbki.pl handles that chore nowadays.) + Avoid making new catalogs be bootstrap catalogs if at all possible. + + + + + System Catalog Initial Data + + + Each catalog that has any manually-created initial data (some do not) + has a corresponding .dat file that contains its + initial data in an editable format. + + + + Data File Format + + + Each .dat file contains Perl data structure literals + that are simply eval'd to produce an in-memory data structure consisting + of an array of hash references, one per catalog row. + A slightly modified excerpt from pg_database.dat + will demonstrate the key features: + + + +[ + +# 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', oid_symbol => 'TemplateDbOid', + descr => 'database\'s default template', + 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_' }, + +] + + + + Points to note: + + + + + + + The overall file layout is: open square bracket, one or more sets of + curly braces each of which represents a catalog row, close square + bracket. Write a comma after each closing curly brace. + + + + + + Within each catalog row, write comma-separated + key => + value pairs. The + allowed keys are the names of the catalog's + columns, plus the metadata keys oid, + oid_symbol, and descr. + (The use of oid and oid_symbol + is described in + below. descr supplies a description string for + the object, which will be inserted + into pg_description + or pg_shdescription as appropriate.) + While the metadata keys are optional, the catalog's defined columns + must all be provided, except when the catalog's .h + file specifies a default value for the column. + + + + + + All values must be single-quoted. Escape single quotes used within + a value with a backslash. (Backslashes meant as data need not be + doubled, however; this follows Perl's rules for simple quoted + literals.) + + + + + + Null values are represented by _null_. + + + + + + If a value is a macro to be expanded + by initdb, it should also contain double + quotes as shown above, unless we know that no special characters can + appear within the string that will be substituted. + + + + + + Comments are preceded by #, and must be on their + own lines. + + + + + + To aid readability, field values that are OIDs of other catalog + entries can be represented by names rather than numeric OIDs. + This is described in + below. + + + + + + Since hashes are unordered data structures, field order and line + layout aren't semantically significant. However, to maintain a + consistent appearance, we set a few rules that are applied by the + formatting script reformat_dat_file.pl: + + + + + + Within each pair of curly braces, the metadata + fields oid, oid_symbol, + and descr (if present) come first, in that + order, then the catalog's own fields appear in their defined order. + + + + + + Newlines are inserted between fields as needed to limit line length + to 80 characters, if possible. A newline is also inserted between + the metadata fields and the regular fields. + + + + + + If the catalog's .h file specifies a default + value for a column, and a data entry has that same + value, reformat_dat_file.pl will omit it from + the data file. This keeps the data representation compact. + + + + + + reformat_dat_file.pl preserves blank lines + and comment lines as-is. + + + + + + It's recommended to run reformat_dat_file.pl + before submitting catalog data patches. For convenience, you can + simply change to src/include/catalog/ and + run make reformat-dat-files. + + + + + + If you want to add a new method of making the data representation + smaller, you must implement it + in reformat_dat_file.pl and also + teach Catalog::ParseData() how to expand the + data back into the full representation. + + + + + + + + OID Assignment + + + A catalog row appearing in the initial data can be given a + manually-assigned OID by writing an oid + => nnnn metadata field. + Furthermore, if an OID is assigned, a C macro for that OID can be + created by writing an oid_symbol + => name metadata field. + + + + Pre-loaded catalog rows must have preassigned OIDs if there are OID + references to them in other pre-loaded rows. A preassigned OID is + also needed if the row's OID must be referenced from C code. + If neither case applies, the oid metadata field can + be omitted, in which case the bootstrap code assigns an OID + automatically, or leaves it zero in a catalog that has no OIDs. + In practice we usually preassign OIDs for all or none of the pre-loaded + rows in a given catalog, even if only some of them are actually + cross-referenced. + + + + Writing the actual numeric value of any OID in C code is considered + very bad form; always use a macro, instead. Direct references + to pg_proc OIDs are common enough that there's + a special mechanism to create the necessary macros automatically; + see src/backend/utils/Gen_fmgrtab.pl. Similarly + — but, for historical reasons, not done the same way — + there's an automatic method for creating macros + for pg_type + OIDs. oid_symbol entries are therefore not + necessary in those two catalogs. Likewise, macros for + the pg_class OIDs of system catalogs and + indexes are set up automatically. For all other system catalogs, you + have to manually specify any macros you need + via oid_symbol entries. + + + + To find an available OID for a new pre-loaded row, run the + script src/include/catalog/unused_oids. + It prints inclusive ranges of unused OIDs (e.g., the output + line 45-900 means OIDs 45 through 900 have not been + allocated yet). Currently, OIDs 1-9999 are reserved for manual + assignment; the unused_oids script simply looks + through the catalog headers and .dat files + to see which ones do not appear. You can also use + the duplicate_oids script to check for mistakes. + (That script is run automatically at compile time, and will stop the + build if a duplicate is found.) + + + + The OID counter starts at 10000 at the beginning of a bootstrap run. + If a catalog row is in a table that requires OIDs, but no OID was + preassigned by an oid field, then it will + receive an OID of 10000 or above. + + + + + OID Reference Lookup + + + Cross-references from one initial catalog row to another can be written + by just writing the preassigned OID of the referenced row. But + that's error-prone and hard to understand, so for frequently-referenced + catalogs, genbki.pl provides mechanisms to write + symbolic references instead. Currently this is possible for references + to access methods, functions, operators, opclasses, opfamilies, and + types. The rules are as follows: + + + + + + + Use of symbolic references is enabled in a particular catalog column + by attaching BKI_LOOKUP(lookuprule) + to the column's definition, where lookuprule + is pg_am, pg_proc, + pg_operator, + pg_opclass, + pg_opfamily, + or pg_type. + BKI_LOOKUP can be attached to columns of + type Oid, regproc, oidvector, + or Oid[]; in the latter two cases it implies performing a + lookup on each element of the array. + + + + + + In such a column, all entries must use the symbolic format except + when writing 0 for InvalidOid. (If the column is + declared regproc, you can optionally + write - instead of 0.) + genbki.pl will warn about unrecognized names. + + + + + + Access methods are just represented by their names, as are types. + Type names must match the referenced pg_type + entry's typname; you do not get to use any + aliases such as integer + for int4. + + + + + + A function can be represented by + its proname, if that is unique among + the pg_proc.dat entries (this works like regproc + input). Otherwise, write it + as proname(argtypename,argtypename,...), + like regprocedure. The argument type names must be spelled exactly as + they are in the pg_proc.dat entry's + proargtypes field. Do not insert any + spaces. + + + + + + Operators are represented + by oprname(lefttype,righttype), + writing the type names exactly as they appear in + the pg_operator.dat + entry's oprleft + and oprright fields. + (Write 0 for the omitted operand of a unary + operator.) + + + + + + The names of opclasses and opfamilies are only unique within an + access method, so they are represented + by access_method_name/object_name. + + + + + + In none of these cases is there any provision for + schema-qualification; all objects created during bootstrap are + expected to be in the pg_catalog schema. + + + + + + genbki.pl resolves all symbolic references while it + runs, and puts simple numeric OIDs into the emitted BKI file. There is + therefore no need for the bootstrap backend to deal with symbolic + references. + + + + + Recipes for Editing Data Files + + + Here are some suggestions about the easiest ways to perform common tasks + when updating catalog data files. + + + + Add a new column with a default to a catalog: + + Add the column to the header file with + a BKI_DEFAULT(value) + annotation. The data file need only be adjusted by adding the field + in existing rows where a non-default value is needed. + + + + + Add a default value to an existing column that doesn't have + one: + + Add a BKI_DEFAULT annotation to the header file, + then run make reformat-dat-files to remove + now-redundant field entries. + + + + + Remove a column, whether it has a default or not: + + Remove the column from the header, then run make + reformat-dat-files to remove now-useless field entries. + + + + + Change or remove an existing default value: + + You cannot simply change the header file, since that will cause the + current data to be interpreted incorrectly. First run make + expand-dat-files to rewrite the data files with all + default values inserted explicitly, then change or remove + the BKI_DEFAULT annotation, then run make + reformat-dat-files to remove superfluous fields again. + + + + + Ad-hoc bulk editing: + + reformat_dat_file.pl can be adapted to perform + many kinds of bulk changes. Look for its block comments showing where + one-off code can be inserted. In the following example, we are going + to consolidate two boolean fields in pg_proc + into a char field: + + + + + Add the new column, with a default, + to pg_proc.h: + ++ /* see PROKIND_ categories below */ ++ char prokind BKI_DEFAULT(f); + + + + + + + Create a new script based on reformat_dat_file.pl + to insert appropriate values on-the-fly: + +- # At this point we have the full row in memory as a hash +- # and can do any operations we want. As written, it only +- # removes default values, but this script can be adapted to +- # do one-off bulk-editing. ++ # One-off change to migrate to prokind ++ # Default has already been filled in by now, so change to other ++ # values as appropriate ++ if ($values{proisagg} eq 't') ++ { ++ $values{prokind} = 'a'; ++ } ++ elsif ($values{proiswindow} eq 't') ++ { ++ $values{prokind} = 'w'; ++ } + + + + + + + Run the new script: + +$ cd src/include/catalog +$ perl -I ../../backend/catalog rewrite_dat_with_prokind.pl pg_proc.dat + + At this point pg_proc.dat has all three + columns, prokind, + proisagg, + and proiswindow, though they will appear + only in rows where they have non-default values. + + + + + + Remove the old columns from pg_proc.h: + +- /* is it an aggregate? */ +- bool proisagg BKI_DEFAULT(f); +- +- /* is it a window function? */ +- bool proiswindow BKI_DEFAULT(f); + + + + + + + Finally, run make reformat-dat-files to remove + the useless old entries from pg_proc.dat. + + + + + For further examples of scripts used for bulk editing, see + convert_oid2name.pl + and remove_pg_type_oid_symbols.pl attached to this + message: + + + + + + <acronym>BKI</acronym> File Format @@ -76,10 +685,10 @@ rowtype_oid oid (name1 = type1 - FORCE NOT NULL | FORCE NULL , + FORCE NOT NULL | FORCE NULL , name2 = type2 - FORCE NOT NULL | FORCE NULL , + FORCE NOT NULL | FORCE NULL , ...) @@ -106,7 +715,7 @@ tables containing columns of other types, this cannot be done until after pg_type has been created and filled with appropriate entries. (That effectively means that only these - column types can be used in bootstrapped tables, but non-bootstrap + column types can be used in bootstrap catalogs, but non-bootstrap catalogs can contain any built-in type.) @@ -340,7 +949,7 @@ - Example + BKI Example The following sequence of commands will create the diff --git a/doc/src/sgml/libpq.sgml b/doc/src/sgml/libpq.sgml index 8729ccd5c5..1626999a70 100644 --- a/doc/src/sgml/libpq.sgml +++ b/doc/src/sgml/libpq.sgml @@ -3566,7 +3566,7 @@ Oid PQftype(const PGresult *res, You can query the system table pg_type to obtain the names and properties of the various data types. The OIDs of the built-in data types are defined - in the file src/include/catalog/pg_type.h + in the file src/include/catalog/pg_type_d.h in the source tree. diff --git a/src/Makefile b/src/Makefile index bcdbd9588a..0e56399cb9 100644 --- a/src/Makefile +++ b/src/Makefile @@ -41,6 +41,11 @@ endif $(recurse) +# Update the commonly used headers before building the subdirectories; +# otherwise, in a parallel build, several different sub-jobs will try to +# remake them concurrently +$(SUBDIRS:%=all-%-recurse): | submake-generated-headers + install: install-local install-local: installdirs-local diff --git a/src/backend/Makefile b/src/backend/Makefile index 42a0748ade..82a59eac2d 100644 --- a/src/backend/Makefile +++ b/src/backend/Makefile @@ -53,7 +53,7 @@ endif ########################################################################## -all: submake-libpgport submake-schemapg postgres $(POSTGRES_IMP) +all: submake-libpgport submake-catalog-headers postgres $(POSTGRES_IMP) ifneq ($(PORTNAME), cygwin) ifneq ($(PORTNAME), win32) @@ -151,19 +151,17 @@ utils/errcodes.h: utils/generate-errcodes.pl utils/errcodes.txt utils/fmgrprotos.h: utils/fmgroids.h touch $@ -utils/fmgroids.h: utils/Gen_fmgrtab.pl catalog/Catalog.pm $(top_srcdir)/src/include/catalog/pg_proc.h +utils/fmgroids.h: utils/Gen_fmgrtab.pl catalog/Catalog.pm $(top_srcdir)/src/include/catalog/pg_proc.dat $(top_srcdir)/src/include/access/transam.h $(MAKE) -C utils fmgroids.h fmgrprotos.h utils/probes.h: utils/probes.d $(MAKE) -C utils probes.h # run this unconditionally to avoid needing to know its dependencies here: -catalog/schemapg.h: | submake-schemapg +submake-catalog-headers: + $(MAKE) -C catalog distprep generated-header-symlinks -submake-schemapg: - $(MAKE) -C catalog schemapg.h - -.PHONY: submake-schemapg +.PHONY: submake-catalog-headers # Make symlinks for these headers in the include directory. That way # we can cut down on the -I options. Also, a symlink is automatically @@ -178,18 +176,13 @@ submake-schemapg: .PHONY: generated-headers -generated-headers: $(top_builddir)/src/include/parser/gram.h $(top_builddir)/src/include/catalog/schemapg.h $(top_builddir)/src/include/storage/lwlocknames.h $(top_builddir)/src/include/utils/errcodes.h $(top_builddir)/src/include/utils/fmgroids.h $(top_builddir)/src/include/utils/fmgrprotos.h $(top_builddir)/src/include/utils/probes.h +generated-headers: $(top_builddir)/src/include/parser/gram.h $(top_builddir)/src/include/storage/lwlocknames.h $(top_builddir)/src/include/utils/errcodes.h $(top_builddir)/src/include/utils/fmgroids.h $(top_builddir)/src/include/utils/fmgrprotos.h $(top_builddir)/src/include/utils/probes.h submake-catalog-headers $(top_builddir)/src/include/parser/gram.h: parser/gram.h prereqdir=`cd '$(dir $<)' >/dev/null && pwd` && \ cd '$(dir $@)' && rm -f $(notdir $@) && \ $(LN_S) "$$prereqdir/$(notdir $<)" . -$(top_builddir)/src/include/catalog/schemapg.h: catalog/schemapg.h - prereqdir=`cd '$(dir $<)' >/dev/null && pwd` && \ - cd '$(dir $@)' && rm -f $(notdir $@) && \ - $(LN_S) "$$prereqdir/$(notdir $<)" . - $(top_builddir)/src/include/storage/lwlocknames.h: storage/lmgr/lwlocknames.h prereqdir=`cd '$(dir $<)' >/dev/null && pwd` && \ cd '$(dir $@)' && rm -f $(notdir $@) && \ @@ -225,7 +218,7 @@ utils/probes.o: utils/probes.d $(SUBDIROBJS) distprep: $(MAKE) -C parser gram.c gram.h scan.c $(MAKE) -C bootstrap bootparse.c bootscanner.c - $(MAKE) -C catalog schemapg.h postgres.bki postgres.description postgres.shdescription + $(MAKE) -C catalog distprep $(MAKE) -C replication repl_gram.c repl_scanner.c syncrep_gram.c syncrep_scanner.c $(MAKE) -C storage/lmgr lwlocknames.h lwlocknames.c $(MAKE) -C utils fmgrtab.c fmgroids.h fmgrprotos.h errcodes.h @@ -327,13 +320,7 @@ endif ########################################################################## clean: - rm -f $(LOCALOBJS) postgres$(X) $(POSTGRES_IMP) \ - $(top_builddir)/src/include/parser/gram.h \ - $(top_builddir)/src/include/catalog/schemapg.h \ - $(top_builddir)/src/include/storage/lwlocknames.h \ - $(top_builddir)/src/include/utils/fmgroids.h \ - $(top_builddir)/src/include/utils/fmgrprotos.h \ - $(top_builddir)/src/include/utils/probes.h + rm -f $(LOCALOBJS) postgres$(X) $(POSTGRES_IMP) ifeq ($(PORTNAME), cygwin) rm -f postgres.dll libpostgres.a endif @@ -345,15 +332,12 @@ distclean: clean rm -f port/tas.s port/dynloader.c port/pg_sema.c port/pg_shmem.c maintainer-clean: distclean + $(MAKE) -C catalog $@ rm -f bootstrap/bootparse.c \ bootstrap/bootscanner.c \ parser/gram.c \ parser/gram.h \ parser/scan.c \ - catalog/schemapg.h \ - catalog/postgres.bki \ - catalog/postgres.description \ - catalog/postgres.shdescription \ replication/repl_gram.c \ replication/repl_scanner.c \ replication/syncrep_gram.c \ diff --git a/src/backend/catalog/.gitignore b/src/backend/catalog/.gitignore index 557af3c0e5..9abe91d6e6 100644 --- a/src/backend/catalog/.gitignore +++ b/src/backend/catalog/.gitignore @@ -2,3 +2,5 @@ /postgres.description /postgres.shdescription /schemapg.h +/pg_*_d.h +/bki-stamp diff --git a/src/backend/catalog/Catalog.pm b/src/backend/catalog/Catalog.pm index 9ced1547f6..3b3bb6bc6c 100644 --- a/src/backend/catalog/Catalog.pm +++ b/src/backend/catalog/Catalog.pm @@ -1,7 +1,7 @@ #---------------------------------------------------------------------- # # Catalog.pm -# Perl module that extracts info from catalog headers into Perl +# Perl module that extracts info from catalog files into Perl # data structures # # Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group @@ -16,12 +16,11 @@ package Catalog; use strict; use warnings; -# Call this function with an array of names of header files to parse. -# Returns a nested data structure describing the data in the headers. -sub Catalogs +# Parses a catalog header file into a data structure describing the schema +# of the catalog. +sub ParseHeader { - my (%catalogs, $catname, $declaring_attributes, $most_recent); - $catalogs{names} = []; + my $input_file = shift; # There are a few types which are given one name in the C source, but a # different name at the SQL level. These are enumerated here. @@ -34,108 +33,68 @@ sub Catalogs 'TransactionId' => 'xid', 'XLogRecPtr' => 'pg_lsn'); - foreach my $input_file (@_) - { my %catalog; + my $declaring_attributes = 0; my $is_varlen = 0; + my $is_client_code = 0; $catalog{columns} = []; - $catalog{data} = []; + $catalog{toasting} = []; + $catalog{indexing} = []; + $catalog{client_code} = []; open(my $ifh, '<', $input_file) || die "$input_file: $!"; - my ($filename) = ($input_file =~ m/(\w+)\.h$/); - my $natts_pat = "Natts_$filename"; - # Scan the input file. while (<$ifh>) { - # Strip C-style comments. - s;/\*(.|\n)*\*/;;g; - if (m;/\*;) + # Set appropriate flag when we're in certain code sections. + if (/^#/) { - - # handle multi-line comments properly. - my $next_line = <$ifh>; - die "$input_file: ends within C-style comment\n" - if !defined $next_line; - $_ .= $next_line; - redo; + $is_varlen = 1 if /^#ifdef\s+CATALOG_VARLEN/; + if (/^#ifdef\s+EXPOSE_TO_CLIENT_CODE/) + { + $is_client_code = 1; + next; + } + next if !$is_client_code; } - # Remember input line number for later. - my $input_line_number = $.; + if (!$is_client_code) + { + # Strip C-style comments. + s;/\*(.|\n)*\*/;;g; + if (m;/\*;) + { - # Strip useless whitespace and trailing semicolons. - chomp; - s/^\s+//; - s/;\s*$//; - s/\s+/ /g; + # handle multi-line comments properly. + my $next_line = <$ifh>; + die "$input_file: ends within C-style comment\n" + if !defined $next_line; + $_ .= $next_line; + redo; + } + + # Strip useless whitespace and trailing semicolons. + chomp; + s/^\s+//; + s/;\s*$//; + s/\s+/ /g; + } # Push the data into the appropriate data structure. - if (/$natts_pat\s+(\d+)/) + if (/^DECLARE_TOAST\(\s*(\w+),\s*(\d+),\s*(\d+)\)/) { - $catalog{natts} = $1; - } - elsif ( - /^DATA\(insert(\s+OID\s+=\s+(\d+))?\s+\(\s*(.*)\s*\)\s*\)$/) - { - check_natts($filename, $catalog{natts}, $3, $input_file, - $input_line_number); - - push @{ $catalog{data} }, { oid => $2, bki_values => $3 }; - } - elsif (/^DESCR\(\"(.*)\"\)$/) - { - $most_recent = $catalog{data}->[-1]; - - # this tests if most recent line is not a DATA() statement - if (ref $most_recent ne 'HASH') - { - die "DESCR() does not apply to any catalog ($input_file)"; - } - if (!defined $most_recent->{oid}) - { - die "DESCR() does not apply to any oid ($input_file)"; - } - elsif ($1 ne '') - { - $most_recent->{descr} = $1; - } - } - elsif (/^SHDESCR\(\"(.*)\"\)$/) - { - $most_recent = $catalog{data}->[-1]; - - # this tests if most recent line is not a DATA() statement - if (ref $most_recent ne 'HASH') - { - die - "SHDESCR() does not apply to any catalog ($input_file)"; - } - if (!defined $most_recent->{oid}) - { - die "SHDESCR() does not apply to any oid ($input_file)"; - } - elsif ($1 ne '') - { - $most_recent->{shdescr} = $1; - } - } - elsif (/^DECLARE_TOAST\(\s*(\w+),\s*(\d+),\s*(\d+)\)/) - { - $catname = 'toasting'; my ($toast_name, $toast_oid, $index_oid) = ($1, $2, $3); - push @{ $catalog{data} }, + push @{ $catalog{toasting} }, "declare toast $toast_oid $index_oid on $toast_name\n"; } elsif (/^DECLARE_(UNIQUE_)?INDEX\(\s*(\w+),\s*(\d+),\s*(.+)\)/) { - $catname = 'indexing'; my ($is_unique, $index_name, $index_oid, $using) = ($1, $2, $3, $4); - push @{ $catalog{data} }, + push @{ $catalog{indexing} }, sprintf( "declare %sindex %s %s %s\n", $is_unique ? 'unique ' : '', @@ -143,37 +102,51 @@ sub Catalogs } elsif (/^BUILD_INDICES/) { - push @{ $catalog{data} }, "build indices\n"; + push @{ $catalog{indexing} }, "build indices\n"; } - elsif (/^CATALOG\(([^,]*),(\d+)\)/) + elsif (/^CATALOG\((\w+),(\d+),(\w+)\)/) { - $catname = $1; + $catalog{catname} = $1; $catalog{relation_oid} = $2; - - # Store pg_* catalog names in the same order we receive them - push @{ $catalogs{names} }, $catname; + $catalog{relation_oid_macro} = $3; $catalog{bootstrap} = /BKI_BOOTSTRAP/ ? ' bootstrap' : ''; $catalog{shared_relation} = /BKI_SHARED_RELATION/ ? ' shared_relation' : ''; $catalog{without_oids} = /BKI_WITHOUT_OIDS/ ? ' without_oids' : ''; - $catalog{rowtype_oid} = - /BKI_ROWTYPE_OID\((\d+)\)/ ? " rowtype_oid $1" : ''; + if (/BKI_ROWTYPE_OID\((\d+),(\w+)\)/) + { + $catalog{rowtype_oid} = $1; + $catalog{rowtype_oid_clause} = " rowtype_oid $1"; + $catalog{rowtype_oid_macro} = $2; + } + else + { + $catalog{rowtype_oid} = ''; + $catalog{rowtype_oid_clause} = ''; + $catalog{rowtype_oid_macro} = ''; + } $catalog{schema_macro} = /BKI_SCHEMA_MACRO/ ? 1 : 0; $declaring_attributes = 1; } + elsif ($is_client_code) + { + if (/^#endif/) + { + $is_client_code = 0; + } + else + { + push @{ $catalog{client_code} }, $_; + } + } elsif ($declaring_attributes) { next if (/^{|^$/); - if (/^#/) - { - $is_varlen = 1 if /^#ifdef\s+CATALOG_VARLEN/; - next; - } if (/^}/) { - undef $declaring_attributes; + $declaring_attributes = 0; } else { @@ -208,10 +181,17 @@ sub Catalogs { $column{forcenotnull} = 1; } - elsif ($attopt =~ /BKI_DEFAULT\((\S+)\)/) + # We use quotes for values like \0 and \054, to + # make sure all compilers and syntax highlighters + # can recognize them properly. + elsif ($attopt =~ /BKI_DEFAULT\(['"]?([^'"]+)['"]?\)/) { $column{default} = $1; } + elsif ($attopt =~ /BKI_LOOKUP\((\w+)\)/) + { + $column{lookup} = $1; + } else { die @@ -227,41 +207,89 @@ sub Catalogs } } } - $catalogs{$catname} = \%catalog; close $ifh; - } - return \%catalogs; + return \%catalog; } -# Split a DATA line into fields. -# Call this on the bki_values element of a DATA item returned by Catalogs(); -# it returns a list of field values. We don't strip quoting from the fields. -# Note: it should be safe to assign the result to a list of length equal to -# the nominal number of catalog fields, because check_natts already checked -# the number of fields. -sub SplitDataLine +# Parses a file containing Perl data structure literals, returning live data. +# +# The parameter $preserve_formatting needs to be set for callers that want +# to work with non-data lines in the data files, such as comments and blank +# lines. If a caller just wants to consume the data, leave it unset. +sub ParseData { - my $bki_values = shift; + my ($input_file, $schema, $preserve_formatting) = @_; - # This handling of quoted strings might look too simplistic, but it - # matches what bootscanner.l does: that has no provision for quote marks - # inside quoted strings, either. If we don't have a quoted string, just - # snarf everything till next whitespace. That will accept some things - # that bootscanner.l will see as erroneous tokens; but it seems wiser - # to do that and let bootscanner.l complain than to silently drop - # non-whitespace characters. - my @result = $bki_values =~ /"[^"]*"|\S+/g; + open(my $ifd, '<', $input_file) || die "$input_file: $!"; + $input_file =~ /(\w+)\.dat$/ + or die "Input file needs to be a .dat file.\n"; + my $catname = $1; + my $data = []; - return @result; + # Scan the input file. + while (<$ifd>) + { + my $hash_ref; + + if (/{/) + { + # Capture the hash ref + # NB: Assumes that the next hash ref can't start on the + # same line where the present one ended. + # Not foolproof, but we shouldn't need a full parser, + # since we expect relatively well-behaved input. + + # Quick hack to detect when we have a full hash ref to + # parse. We can't just use a regex because of values in + # pg_aggregate and pg_proc like '{0,0}'. + my $lcnt = tr/{//; + my $rcnt = tr/}//; + + if ($lcnt == $rcnt) + { + eval '$hash_ref = ' . $_; + if (!ref $hash_ref) + { + die "Error parsing $_\n$!"; + } + + # Expand tuples to their full representation. + AddDefaultValues($hash_ref, $schema, $catname); + } + else + { + my $next_line = <$ifd>; + die "$input_file: ends within Perl hash\n" + if !defined $next_line; + $_ .= $next_line; + redo; + } + } + + # If we found a hash reference, keep it + # and annotate the line number. + # Only keep non-data strings if we + # are told to preserve formatting. + if (defined $hash_ref) + { + $hash_ref->{line_number} = $.; + push @$data, $hash_ref; + } + elsif ($preserve_formatting) + { + push @$data, $_; + } + } + close $ifd; + return $data; } -# Fill in default values of a record using the given schema. It's the -# caller's responsibility to specify other values beforehand. +# Fill in default values of a record using the given schema. +# It's the caller's responsibility to specify other values beforehand. sub AddDefaultValues { - my ($row, $schema) = @_; + my ($row, $schema, $catname) = @_; my @missing_fields; - my $msg; foreach my $column (@$schema) { @@ -276,6 +304,13 @@ sub AddDefaultValues { $row->{$attname} = $column->{default}; } + elsif ($catname eq 'pg_proc' && $attname eq 'pronargs' && + defined($row->{proargtypes})) + { + # pg_proc.pronargs can be derived from proargtypes. + my @proargtypes = split /\s+/, $row->{proargtypes}; + $row->{$attname} = scalar(@proargtypes); + } else { # Failed to find a value. @@ -285,14 +320,15 @@ sub AddDefaultValues if (@missing_fields) { - $msg = "Missing values for: " . join(', ', @missing_fields); - $msg .= "\nShowing other values for context:\n"; + my $msg = "Failed to form full tuple for $catname\n"; + $msg .= "Missing values for: " . join(', ', @missing_fields); + $msg .= "\nOther values for row:\n"; while (my($key, $value) = each %$row) { $msg .= "$key => $value, "; } + die $msg; } - return $msg; } # Rename temporary files to final names. @@ -308,7 +344,6 @@ sub RenameTempFile rename($temp_name, $final_name) || die "rename: $temp_name: $!"; } - # Find a symbol defined in a particular header file and extract the value. # # The include path has to be passed as a reference to an array. @@ -340,22 +375,18 @@ sub FindDefinedSymbol die "$catalog_header: not found in any include directory\n"; } - -# verify the number of fields in the passed-in DATA line -sub check_natts +# Similar to FindDefinedSymbol, but looks in the bootstrap metadata. +sub FindDefinedSymbolFromData { - my ($catname, $natts, $bki_val, $file, $line) = @_; - - die -"Could not find definition for Natts_${catname} before start of DATA() in $file\n" - unless defined $natts; - - my $nfields = scalar(SplitDataLine($bki_val)); - - die sprintf -"Wrong number of attributes in DATA() entry at %s:%d (expected %d but got %d)\n", - $file, $line, $natts, $nfields - unless $natts == $nfields; + my ($data, $symbol) = @_; + foreach my $row (@{ $data }) + { + if ($row->{oid_symbol} eq $symbol) + { + return $row->{oid}; + } + } + die "no definition found for $symbol\n"; } 1; diff --git a/src/backend/catalog/Makefile b/src/backend/catalog/Makefile index 30ca509534..d25d98a40b 100644 --- a/src/backend/catalog/Makefile +++ b/src/backend/catalog/Makefile @@ -2,6 +2,9 @@ # # Makefile for backend/catalog # +# Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group +# Portions Copyright (c) 1994, Regents of the University of California +# # src/backend/catalog/Makefile # #------------------------------------------------------------------------- @@ -22,13 +25,11 @@ BKIFILES = postgres.bki postgres.description postgres.shdescription include $(top_srcdir)/src/backend/common.mk -all: $(BKIFILES) schemapg.h - -# Note: there are some undocumented dependencies on the ordering in which -# the catalog header files are assembled into postgres.bki. In particular, -# indexing.h had better be last, and toasting.h just before it. - -POSTGRES_BKI_SRCS = $(addprefix $(top_srcdir)/src/include/catalog/,\ +# Note: the order of this list determines the order in which the catalog +# header files are assembled into postgres.bki. BKI_BOOTSTRAP catalogs +# must appear first, and there are reputedly other, undocumented ordering +# dependencies. +CATALOG_HEADERS := \ pg_proc.h pg_type.h pg_attribute.h pg_class.h \ pg_attrdef.h pg_constraint.h pg_inherits.h pg_index.h pg_operator.h \ pg_opfamily.h pg_opclass.h pg_am.h pg_amop.h pg_amproc.h \ @@ -45,34 +46,63 @@ POSTGRES_BKI_SRCS = $(addprefix $(top_srcdir)/src/include/catalog/,\ pg_default_acl.h pg_init_privs.h pg_seclabel.h pg_shseclabel.h \ pg_collation.h pg_partitioned_table.h pg_range.h pg_transform.h \ pg_sequence.h pg_publication.h pg_publication_rel.h pg_subscription.h \ - pg_subscription_rel.h \ - toasting.h indexing.h \ - ) + pg_subscription_rel.h + +GENERATED_HEADERS := $(CATALOG_HEADERS:%.h=%_d.h) schemapg.h + +# In the list of headers used to assemble postgres.bki, indexing.h needs +# be last, and toasting.h just before it. This ensures we don't try to +# create indexes or toast tables before their catalogs exist. +POSTGRES_BKI_SRCS := $(addprefix $(top_srcdir)/src/include/catalog/,\ + $(CATALOG_HEADERS) toasting.h indexing.h \ + ) + +# The .dat files we need can just be listed alphabetically. +POSTGRES_BKI_DATA = $(addprefix $(top_srcdir)/src/include/catalog/,\ + pg_aggregate.dat pg_am.dat pg_amop.dat pg_amproc.dat pg_authid.dat \ + pg_cast.dat pg_class.dat pg_collation.dat \ + pg_database.dat pg_language.dat \ + pg_namespace.dat pg_opclass.dat pg_operator.dat pg_opfamily.dat \ + pg_pltemplate.dat pg_proc.dat pg_range.dat pg_tablespace.dat \ + pg_ts_config.dat pg_ts_config_map.dat pg_ts_dict.dat pg_ts_parser.dat \ + pg_ts_template.dat pg_type.dat \ + ) # location of Catalog.pm catalogdir = $(top_srcdir)/src/backend/catalog -# locations of headers that genbki.pl needs to read -pg_includes = -I$(top_srcdir)/src/include/catalog -I$(top_builddir)/src/include/catalog +all: distprep generated-header-symlinks -# see explanation in ../parser/Makefile -postgres.description: postgres.bki ; +distprep: bki-stamp -postgres.shdescription: postgres.bki ; +.PHONY: generated-header-symlinks -schemapg.h: postgres.bki ; +generated-header-symlinks: $(top_builddir)/src/include/catalog/header-stamp -# Technically, this should depend on Makefile.global, but then -# postgres.bki would need to be rebuilt after every configure run, -# even in distribution tarballs. So this is cheating a bit, but it -# will achieve the goal of updating the version number when it -# changes. -postgres.bki: genbki.pl Catalog.pm $(POSTGRES_BKI_SRCS) $(top_srcdir)/configure $(top_srcdir)/src/include/catalog/duplicate_oids +# Technically, this should depend on Makefile.global which supplies +# $(MAJORVERSION); but then postgres.bki would need to be rebuilt after every +# configure run, even in distribution tarballs. So depending on configure.in +# instead is cheating a bit, but it will achieve the goal of updating the +# version number when it changes. +bki-stamp: genbki.pl Catalog.pm $(POSTGRES_BKI_SRCS) $(POSTGRES_BKI_DATA) $(top_srcdir)/configure.in $(top_srcdir)/src/include/catalog/duplicate_oids cd $(top_srcdir)/src/include/catalog && $(PERL) ./duplicate_oids - $(PERL) -I $(catalogdir) $< $(pg_includes) --set-version=$(MAJORVERSION) $(POSTGRES_BKI_SRCS) + $(PERL) -I $(catalogdir) $< --set-version=$(MAJORVERSION) $(POSTGRES_BKI_SRCS) + touch $@ +# The generated headers must all be symlinked into builddir/src/include/, +# using absolute links for the reasons explained in src/backend/Makefile. +# We use header-stamp to record that we've done this because the symlinks +# themselves may appear older than bki-stamp. +$(top_builddir)/src/include/catalog/header-stamp: bki-stamp + prereqdir=`cd '$(dir $<)' >/dev/null && pwd` && \ + cd '$(dir $@)' && for file in $(GENERATED_HEADERS); do \ + rm -f $$file && $(LN_S) "$$prereqdir/$$file" . ; \ + done + touch $@ + +# Note: installation of generated headers is handled elsewhere .PHONY: install-data -install-data: $(BKIFILES) installdirs +install-data: bki-stamp installdirs $(INSTALL_DATA) $(call vpathsearch,postgres.bki) '$(DESTDIR)$(datadir)/postgres.bki' $(INSTALL_DATA) $(call vpathsearch,postgres.description) '$(DESTDIR)$(datadir)/postgres.description' $(INSTALL_DATA) $(call vpathsearch,postgres.shdescription) '$(DESTDIR)$(datadir)/postgres.shdescription' @@ -87,9 +117,10 @@ installdirs: uninstall-data: rm -f $(addprefix '$(DESTDIR)$(datadir)'/, $(BKIFILES) system_views.sql information_schema.sql sql_features.txt) -# postgres.bki, postgres.description, postgres.shdescription, and schemapg.h -# are in the distribution tarball, so they are not cleaned here. +# postgres.bki, postgres.description, postgres.shdescription, +# and the generated headers are in the distribution tarball, +# so they are not cleaned here. clean: maintainer-clean: clean - rm -f $(BKIFILES) + rm -f bki-stamp $(BKIFILES) $(GENERATED_HEADERS) diff --git a/src/backend/catalog/README b/src/backend/catalog/README deleted file mode 100644 index 7e0ddf312d..0000000000 --- a/src/backend/catalog/README +++ /dev/null @@ -1,111 +0,0 @@ -src/backend/catalog/README - -System Catalog -============== - -This directory contains .c files that manipulate the system catalogs; -src/include/catalog contains the .h files that define the structure -of the system catalogs. - -When the compile-time scripts (Gen_fmgrtab.pl and genbki.pl) -execute, they grep the DATA statements out of the .h files and munge -these in order to generate the postgres.bki file. The .bki file is then -used as input to initdb (which is just a wrapper around postgres -running single-user in bootstrapping mode) in order to generate the -initial (template) system catalog relation files. - ------------------------------------------------------------------ - -People who are going to hose around with the .h files should be aware -of the following facts: - -- It is very important that the DATA statements be properly formatted -(e.g., no broken lines, proper use of white-space and _null_). The -scripts are line-oriented and break easily. In addition, the only -documentation on the proper format for them is the code in the -bootstrap/ directory. Just be careful when adding new DATA -statements. - -- Some catalogs require that OIDs be preallocated to tuples because -of cross-references from other pre-loaded tuples. For example, pg_type -contains pointers into pg_proc (e.g., pg_type.typinput), and pg_proc -contains back-pointers into pg_type (pg_proc.proargtypes). For such -cases, the OID assigned to a tuple may be explicitly set by use of the -"OID = n" clause of the .bki insert statement. If no such pointers are -required to a given tuple, then the OID = n clause may be omitted -(then the system generates an OID in the usual way, or leaves it 0 in a -catalog that has no OIDs). In practice we usually preassign OIDs -for all or none of the pre-loaded tuples in a given catalog, even if only -some of them are actually cross-referenced. - -- We also sometimes preallocate OIDs for catalog tuples whose OIDs must -be known directly in the C code. In such cases, put a #define in the -catalog's .h file, and use the #define symbol in the C code. Writing -the actual numeric value of any OID in C code is considered very bad form. -Direct references to pg_proc OIDs are common enough that there's a special -mechanism to create the necessary #define's automatically: see -backend/utils/Gen_fmgrtab.pl. We also have standard conventions for setting -up #define's for the pg_class OIDs of system catalogs and indexes. For all -the other system catalogs, you have to manually create any #define's you -need. - -- If you need to find a valid OID for a new predefined tuple, -use the unused_oids script. It generates inclusive ranges of -*unused* OIDs (e.g., the line "45-900" means OIDs 45 through 900 have -not been allocated yet). Currently, OIDs 1-9999 are reserved for manual -assignment; the unused_oids script simply looks through the include/catalog -headers to see which ones do not appear in "OID =" clauses in DATA lines. -(As of Postgres 8.1, it also looks at CATALOG and DECLARE_INDEX lines.) -You can also use the duplicate_oids script to check for mistakes. - -- The OID counter starts at 10000 at bootstrap. If a catalog row is in a -table that requires OIDs, but no OID was preassigned by an "OID =" clause, -then it will receive an OID of 10000 or above. - -- To create a "BOOTSTRAP" table you have to do a lot of extra work: these -tables are not created through a normal CREATE TABLE operation, but spring -into existence when first written to during initdb. Therefore, you must -manually create appropriate entries for them in the pre-loaded contents of -pg_class, pg_attribute, and pg_type. Avoid making new catalogs be bootstrap -catalogs if at all possible; generally, only tables that must be written to -in order to create a table should be bootstrapped. - -- Certain BOOTSTRAP tables must be at the start of the Makefile -POSTGRES_BKI_SRCS variable, as these cannot be created through the standard -heap_create_with_catalog process, because it needs these tables to exist -already. The list of files this currently includes is: - pg_proc.h pg_type.h pg_attribute.h pg_class.h -Within this list, pg_type.h must come before pg_attribute.h. -Also, indexing.h must be last, since the indexes can't be created until all -the tables are in place, and toasting.h should probably be next-to-last -(or at least after all the tables that need toast tables). There are -reputedly some other order dependencies in the .bki list, too. - ------------------------------------------------------------------ - -When munging the .c files, you should be aware of certain conventions: - -- The system catalog cache code (and most catalog-munging code in -general) assumes that the fixed-length portions of all system catalog -tuples are in fact present, because it maps C struct declarations onto -them. Thus, the variable-length fields must all be at the end, and -only the variable-length fields of a catalog tuple are permitted to be -NULL. For example, if you set pg_type.typrelid to be NULL, a -piece of code will likely perform "typetup->typrelid" (or, worse, -"typetup->typelem", which follows typrelid). This will result in -random errors or even segmentation violations. Hence, do NOT insert -catalog tuples that contain NULL attributes except in their -variable-length portions! (The bootstrapping code is fairly good about -marking NOT NULL each of the columns that can legally be referenced via -C struct declarations ... but those markings won't be enforced against -DATA commands, so you must get it right in a DATA line.) - -- Modification of the catalogs must be performed with the proper -updating of catalog indexes! That is, most catalogs have indexes -on them; when you munge them using the executor, the executor will -take care of doing the index updates, but if you make direct access -method calls to insert new or modified tuples into a heap, you must -also make the calls to insert the tuple into ALL of its indexes! If -not, the new tuple will generally be "invisible" to the system because -most of the accesses to the catalogs in question will be through the -associated indexes. diff --git a/src/backend/catalog/genbki.pl b/src/backend/catalog/genbki.pl index b4abbff101..56312ded8a 100644 --- a/src/backend/catalog/genbki.pl +++ b/src/backend/catalog/genbki.pl @@ -3,9 +3,9 @@ # # genbki.pl # Perl script that generates postgres.bki, postgres.description, -# postgres.shdescription, and schemapg.h from specially formatted -# header files. The .bki files are used to initialize the postgres -# template database. +# postgres.shdescription, and symbol definition headers from specially +# formatted header files and data files. The BKI files are used to +# initialize the postgres template database. # # Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group # Portions Copyright (c) 1994, Regents of the University of California @@ -20,7 +20,6 @@ use strict; use warnings; my @input_files; -my @include_path; my $output_path = ''; my $major_version; @@ -36,10 +35,6 @@ while (@ARGV) { $output_path = length($arg) > 2 ? substr($arg, 2) : shift @ARGV; } - elsif ($arg =~ /^-I/) - { - push @include_path, length($arg) > 2 ? substr($arg, 2) : shift @ARGV; - } elsif ($arg =~ /^--set-version=(.*)$/) { $major_version = $1; @@ -53,8 +48,7 @@ while (@ARGV) } # Sanity check arguments. -die "No input files.\n" if !@input_files; -die "No include path; you must specify -I at least once.\n" if !@include_path; +die "No input files.\n" if !@input_files; die "--set-version must be specified.\n" if !defined $major_version; # Make sure output_path ends in a slash. @@ -78,25 +72,151 @@ my $shdescrfile = $output_path . 'postgres.shdescription'; open my $shdescr, '>', $shdescrfile . $tmpext or die "can't open $shdescrfile$tmpext: $!"; +# Read all the files into internal data structures. Not all catalogs +# will have a data file. +my @catnames; +my %catalogs; +my %catalog_data; +my @toast_decls; +my @index_decls; +foreach my $header (@input_files) +{ + $header =~ /(.+)\.h$/ + or die "Input files need to be header files.\n"; + my $datfile = "$1.dat"; + + my $catalog = Catalog::ParseHeader($header); + my $catname = $catalog->{catname}; + my $schema = $catalog->{columns}; + + if (defined $catname) + { + push @catnames, $catname; + $catalogs{$catname} = $catalog; + } + + if (-e $datfile) + { + $catalog_data{$catname} = Catalog::ParseData($datfile, $schema, 0); + } + + foreach my $toast_decl (@{ $catalog->{toasting} }) + { + push @toast_decls, $toast_decl; + } + foreach my $index_decl (@{ $catalog->{indexing} }) + { + push @index_decls, $index_decl; + } +} + # Fetch some special data that we will substitute into the output file. # CAUTION: be wary about what symbols you substitute into the .bki file here! # It's okay to substitute things that are expected to be really constant # within a given Postgres release, such as fixed OIDs. Do not substitute # anything that could depend on platform or configuration. (The right place # to handle those sorts of things is in initdb.c's bootstrap_template1().) -# NB: make sure that the files used here are known to be part of the .bki -# file's dependencies by src/backend/catalog/Makefile. -my $BOOTSTRAP_SUPERUSERID = - Catalog::FindDefinedSymbol('pg_authid.h', \@include_path, - 'BOOTSTRAP_SUPERUSERID'); -my $PG_CATALOG_NAMESPACE = - Catalog::FindDefinedSymbol('pg_namespace.h', \@include_path, - 'PG_CATALOG_NAMESPACE'); +my $BOOTSTRAP_SUPERUSERID = Catalog::FindDefinedSymbolFromData( + $catalog_data{pg_authid}, 'BOOTSTRAP_SUPERUSERID'); +my $PG_CATALOG_NAMESPACE = Catalog::FindDefinedSymbolFromData( + $catalog_data{pg_namespace}, 'PG_CATALOG_NAMESPACE'); -# Read all the input header files into internal data structures -my $catalogs = Catalog::Catalogs(@input_files); -# Generate postgres.bki, postgres.description, and postgres.shdescription +# Build lookup tables for OID macro substitutions and for pg_attribute +# copies of pg_type values. + +# index access method OID lookup +my %amoids; +foreach my $row (@{ $catalog_data{pg_am} }) +{ + $amoids{ $row->{amname} } = $row->{oid}; +} + +# opclass OID lookup +my %opcoids; +foreach my $row (@{ $catalog_data{pg_opclass} }) +{ + # There is no unique name, so we need to combine access method + # and opclass name. + my $key = sprintf "%s/%s", + $row->{opcmethod}, $row->{opcname}; + $opcoids{$key} = $row->{oid}; +} + +# operator OID lookup +my %operoids; +foreach my $row (@{ $catalog_data{pg_operator} }) +{ + # There is no unique name, so we need to invent one that contains + # the relevant type names. + my $key = sprintf "%s(%s,%s)", + $row->{oprname}, $row->{oprleft}, $row->{oprright}; + $operoids{$key} = $row->{oid}; +} + +# opfamily OID lookup +my %opfoids; +foreach my $row (@{ $catalog_data{pg_opfamily} }) +{ + # There is no unique name, so we need to combine access method + # and opfamily name. + my $key = sprintf "%s/%s", + $row->{opfmethod}, $row->{opfname}; + $opfoids{$key} = $row->{oid}; +} + +# procedure OID lookup +my %procoids; +foreach my $row (@{ $catalog_data{pg_proc} }) +{ + # Generate an entry under just the proname (corresponds to regproc lookup) + my $prokey = $row->{proname}; + if (defined $procoids{$prokey}) + { + $procoids{$prokey} = 'MULTIPLE'; + } + else + { + $procoids{$prokey} = $row->{oid}; + } + # Also generate an entry using proname(proargtypes). This is not quite + # identical to regprocedure lookup because we don't worry much about + # special SQL names for types etc; we just use the names in the source + # proargtypes field. These *should* be unique, but do a multiplicity + # check anyway. + $prokey .= '(' . join(',', split(/\s+/, $row->{proargtypes})) . ')'; + if (defined $procoids{$prokey}) + { + $procoids{$prokey} = 'MULTIPLE'; + } + else + { + $procoids{$prokey} = $row->{oid}; + } +} + +# type lookups +my %typeoids; +my %types; +foreach my $row (@{ $catalog_data{pg_type} }) +{ + $typeoids{ $row->{typname} } = $row->{oid}; + $types{ $row->{typname} } = $row; +} + +# Map catalog name to OID lookup. +my %lookup_kind = ( + pg_am => \%amoids, + pg_opclass => \%opcoids, + pg_operator => \%operoids, + pg_opfamily => \%opfoids, + pg_proc => \%procoids, + pg_type => \%typeoids +); + + +# Generate postgres.bki, postgres.description, postgres.shdescription, +# and pg_*_d.h headers. # version marker for .bki file print $bki "# PostgreSQL $major_version\n"; @@ -104,32 +224,69 @@ print $bki "# PostgreSQL $major_version\n"; # vars to hold data needed for schemapg.h my %schemapg_entries; my @tables_needing_macros; -my %regprocoids; -my %types; # produce output, one catalog at a time -foreach my $catname (@{ $catalogs->{names} }) +foreach my $catname (@catnames) { + my $catalog = $catalogs{$catname}; + + # Create one definition header with macro definitions for each catalog. + my $def_file = $output_path . $catname . '_d.h'; + open my $def, '>', $def_file . $tmpext + or die "can't open $def_file$tmpext: $!"; + + # Opening boilerplate for pg_*_d.h + printf $def <{relation_oid_macro}, $catalog->{relation_oid} + if $catalog->{relation_oid_macro}; + printf $def "#define %s %s\n", + $catalog->{rowtype_oid_macro}, $catalog->{rowtype_oid} + if $catalog->{rowtype_oid_macro}; + print $def "\n"; # .bki CREATE command for this catalog - my $catalog = $catalogs->{$catname}; print $bki "create $catname $catalog->{relation_oid}" . $catalog->{shared_relation} . $catalog->{bootstrap} . $catalog->{without_oids} - . $catalog->{rowtype_oid} . "\n"; + . $catalog->{rowtype_oid_clause}; - my @attnames; my $first = 1; - print $bki " (\n"; + print $bki "\n (\n"; my $schema = $catalog->{columns}; + my $attnum = 0; foreach my $column (@$schema) { + $attnum++; my $attname = $column->{name}; my $atttype = $column->{type}; - push @attnames, $attname; + # Emit column definitions if (!$first) { print $bki " ,\n"; @@ -146,10 +303,23 @@ foreach my $catname (@{ $catalogs->{names} }) { print $bki " FORCE NULL"; } + + # Emit Anum_* constants + print $def + sprintf("#define Anum_%s_%s %s\n", $catname, $attname, $attnum); } print $bki "\n )\n"; - # Open it, unless bootstrap case (create bootstrap does this + # Emit Natts_* constant + print $def "\n#define Natts_$catname $attnum\n\n"; + + # Emit client code copied from source header + foreach my $line (@{ $catalog->{client_code} }) + { + print $def $line; + } + + # Open it, unless it's a bootstrap catalog (create bootstrap does this # automatically) if (!$catalog->{bootstrap}) { @@ -157,21 +327,15 @@ foreach my $catname (@{ $catalogs->{names} }) } # For pg_attribute.h, we generate data entries ourselves. - # NB: pg_type.h must come before pg_attribute.h in the input list - # of catalog names, since we use info from pg_type.h here. if ($catname eq 'pg_attribute') { - gen_pg_attribute($schema, @attnames); + gen_pg_attribute($schema); } - # Ordinary catalog with DATA line(s) - foreach my $row (@{ $catalog->{data} }) + # Ordinary catalog with a data file + foreach my $row (@{ $catalog_data{$catname} }) { - - # Split line into tokens without interpreting their meaning. - my %bki_values; - @bki_values{@attnames} = - Catalog::SplitDataLine($row->{bki_values}); + my %bki_values = %$row; # Perform required substitutions on fields foreach my $column (@$schema) @@ -184,71 +348,102 @@ foreach my $catname (@{ $catalogs->{names} }) $bki_values{$attname} =~ s/\bPGUID\b/$BOOTSTRAP_SUPERUSERID/g; $bki_values{$attname} =~ s/\bPGNSP\b/$PG_CATALOG_NAMESPACE/g; - # Replace regproc columns' values with OIDs. - # If we don't have a unique value to substitute, - # just do nothing (regprocin will complain). - if ($atttype eq 'regproc') + # Replace OID synonyms with OIDs per the appropriate lookup rule. + # + # If the column type is oidvector or oid[], we have to replace + # each element of the array as per the lookup rule. + if ($column->{lookup}) { - my $procoid = $regprocoids{ $bki_values{$attname} }; - $bki_values{$attname} = $procoid - if defined($procoid) && $procoid ne 'MULTIPLE'; + my $lookup = $lookup_kind{ $column->{lookup} }; + my @lookupnames; + my @lookupoids; + + die "unrecognized BKI_LOOKUP type " . $column->{lookup} + if !defined($lookup); + + if ($atttype eq 'oidvector') + { + @lookupnames = split /\s+/, $bki_values{$attname}; + @lookupoids = lookup_oids($lookup, $catname, + \%bki_values, @lookupnames); + $bki_values{$attname} = join(' ', @lookupoids); + } + elsif ($atttype eq 'oid[]') + { + if ($bki_values{$attname} ne '_null_') + { + $bki_values{$attname} =~ s/[{}]//g; + @lookupnames = split /,/, $bki_values{$attname}; + @lookupoids = lookup_oids($lookup, $catname, + \%bki_values, @lookupnames); + $bki_values{$attname} = + sprintf "{%s}", join(',', @lookupoids); + } + } + else + { + $lookupnames[0] = $bki_values{$attname}; + @lookupoids = lookup_oids($lookup, $catname, + \%bki_values, @lookupnames); + $bki_values{$attname} = $lookupoids[0]; + } } } - # Save pg_proc oids for use in later regproc substitutions. - # This relies on the order we process the files in! - if ($catname eq 'pg_proc') + # Special hack to generate OID symbols for pg_type entries + # that lack one. + if ($catname eq 'pg_type' and !exists $bki_values{oid_symbol}) { - if (defined($regprocoids{ $bki_values{proname} })) - { - $regprocoids{ $bki_values{proname} } = 'MULTIPLE'; - } - else - { - $regprocoids{ $bki_values{proname} } = $row->{oid}; - } - } - - # Save pg_type info for pg_attribute processing below - if ($catname eq 'pg_type') - { - my %type = %bki_values; - $type{oid} = $row->{oid}; - $types{ $type{typname} } = \%type; + my $symbol = form_pg_type_symbol($bki_values{typname}); + $bki_values{oid_symbol} = $symbol + if defined $symbol; } # Write to postgres.bki - my $oid = $row->{oid} ? "OID = $row->{oid} " : ''; - printf $bki "insert %s( %s )\n", $oid, - join(' ', @bki_values{@attnames}); + print_bki_insert(\%bki_values, $schema); # Write comments to postgres.description and # postgres.shdescription - if (defined $row->{descr}) + if (defined $bki_values{descr}) { - printf $descr "%s\t%s\t0\t%s\n", - $row->{oid}, $catname, $row->{descr}; + if ($catalog->{shared_relation}) + { + printf $shdescr "%s\t%s\t%s\n", + $bki_values{oid}, $catname, $bki_values{descr}; + } + else + { + printf $descr "%s\t%s\t0\t%s\n", + $bki_values{oid}, $catname, $bki_values{descr}; + } } - if (defined $row->{shdescr}) + + # Emit OID symbol + if (defined $bki_values{oid_symbol}) { - printf $shdescr "%s\t%s\t%s\n", - $row->{oid}, $catname, $row->{shdescr}; + printf $def "#define %s %s\n", + $bki_values{oid_symbol}, $bki_values{oid}; } } print $bki "close $catname\n"; + print $def sprintf("\n#endif\t\t\t\t\t\t\t/* %s_D_H */\n", uc $catname); + + # Close and rename definition header + close $def; + Catalog::RenameTempFile($def_file, $tmpext); } # Any information needed for the BKI that is not contained in a pg_*.h header # (i.e., not contained in a header with a CATALOG() statement) comes here # Write out declare toast/index statements -foreach my $declaration (@{ $catalogs->{toasting}->{data} }) +foreach my $declaration (@toast_decls) { print $bki $declaration; } -foreach my $declaration (@{ $catalogs->{indexing}->{data} }) +foreach my $declaration (@index_decls) { print $bki $declaration; } @@ -288,7 +483,7 @@ foreach my $table_name (@tables_needing_macros) } # Closing boilerplate for schemapg.h -print $schemapg "\n#endif /* SCHEMAPG_H */\n"; +print $schemapg "\n#endif\t\t\t\t\t\t\t/* SCHEMAPG_H */\n"; # We're done emitting data close $bki; @@ -314,11 +509,16 @@ exit 0; sub gen_pg_attribute { my $schema = shift; - my @attnames = @_; - foreach my $table_name (@{ $catalogs->{names} }) + my @attnames; + foreach my $column (@$schema) { - my $table = $catalogs->{$table_name}; + push @attnames, $column->{name}; + } + + foreach my $table_name (@catnames) + { + my $table = $catalogs{$table_name}; # Currently, all bootstrapped relations also need schemapg.h # entries, so skip if the relation isn't to be in schemapg.h. @@ -341,7 +541,7 @@ sub gen_pg_attribute $priornotnull &= ($row{attnotnull} eq 't'); # If it's bootstrapped, put an entry in postgres.bki. - print_bki_insert(\%row, @attnames) if $table->{bootstrap}; + print_bki_insert(\%row, $schema) if $table->{bootstrap}; # Store schemapg entries for later. morph_row_for_schemapg(\%row, $schema); @@ -377,7 +577,7 @@ sub gen_pg_attribute && $attr->{name} eq 'oid'; morph_row_for_pgattr(\%row, $schema, $attr, 1); - print_bki_insert(\%row, @attnames); + print_bki_insert(\%row, $schema); } } } @@ -441,21 +641,54 @@ sub morph_row_for_pgattr $row->{attnotnull} = 'f'; } - my $error = Catalog::AddDefaultValues($row, $pgattr_schema); - if ($error) - { - die "Failed to form full tuple for pg_attribute: ", $error; - } + Catalog::AddDefaultValues($row, $pgattr_schema, 'pg_attribute'); } -# Write a pg_attribute entry to postgres.bki +# Write an entry to postgres.bki. Adding quotes here allows us to keep +# most double quotes out of the catalog data files for readability. See +# bootscanner.l for what tokens need quoting. sub print_bki_insert { - my $row = shift; - my @attnames = @_; - my $oid = $row->{oid} ? "OID = $row->{oid} " : ''; - my $bki_values = join ' ', @{$row}{@attnames}; - printf $bki "insert %s( %s )\n", $oid, $bki_values; + my $row = shift; + my $schema = shift; + + my @bki_values; + my $oid = $row->{oid} ? "OID = $row->{oid} " : ''; + + foreach my $column (@$schema) + { + my $attname = $column->{name}; + my $atttype = $column->{type}; + my $bki_value = $row->{$attname}; + + # Fold backslash-zero to empty string if it's the entire string, + # since that represents a NUL char in C code. + $bki_value = '' if $bki_value eq '\0'; + + $bki_value = sprintf(qq'"%s"', $bki_value) + if $bki_value ne '_null_' + and $bki_value !~ /^"[^"]+"$/ + and ( length($bki_value) == 0 # Empty string + or $bki_value =~ /\s/ # Contains whitespace + + # To preserve historical formatting, operator names are + # always quoted. Likewise for values of multi-element types, + # even if they only contain a single element. + or $attname eq 'oprname' + or $atttype eq 'oidvector' + or $atttype eq 'int2vector' + or $atttype =~ /\[\]$/ + + # Quote strings that have non-word characters. We make + # exceptions for values that are octals or negative numbers, + # for the same historical reason as above. + or ( $bki_value =~ /\W/ + and $bki_value !~ /^\\\d{3}$/ + and $bki_value !~ /^-\d*$/)); + + push @bki_values, $bki_value; + } + printf $bki "insert %s( %s )\n", $oid, join(' ', @bki_values); } # Given a row reference, modify it so that it becomes a valid entry for @@ -481,8 +714,7 @@ sub morph_row_for_schemapg } elsif ($atttype eq 'char') { - # Replace empty string by zero char constant; add single quotes - $row->{$attname} = '\0' if $row->{$attname} eq q|""|; + # Add single quotes $row->{$attname} = sprintf("'%s'", $row->{$attname}); } @@ -501,18 +733,66 @@ sub morph_row_for_schemapg } } +# Perform OID lookups on an array of OID names. +# If we don't have a unique value to substitute, warn and +# leave the entry unchanged. +sub lookup_oids +{ + my ($lookup, $catname, $bki_values, @lookupnames) = @_; + + my @lookupoids; + foreach my $lookupname (@lookupnames) + { + my $lookupoid = $lookup->{$lookupname}; + if (defined($lookupoid) and $lookupoid ne 'MULTIPLE') + { + push @lookupoids, $lookupoid; + } + else + { + push @lookupoids, $lookupname; + warn sprintf "unresolved OID reference \"%s\" in %s.dat line %s", + $lookupname, $catname, $bki_values->{line_number} + if $lookupname ne '-' and $lookupname ne '0'; + } + } + return @lookupoids; +} + +# Determine canonical pg_type OID #define symbol from the type name. +sub form_pg_type_symbol +{ + my $typename = shift; + + # Skip for rowtypes of bootstrap tables, since they have their + # own naming convention defined elsewhere. + return + if $typename eq 'pg_type' + or $typename eq 'pg_proc' + or $typename eq 'pg_attribute' + or $typename eq 'pg_class'; + + # Transform like so: + # foo_bar -> FOO_BAROID + # _foo_bar -> FOO_BARARRAYOID + $typename =~ /(_)?(.+)/; + my $arraystr = $1 ? 'ARRAY' : ''; + my $name = uc $2; + return $name . $arraystr . 'OID'; +} + sub usage { die <. diff --git a/src/backend/utils/Gen_fmgrtab.pl b/src/backend/utils/Gen_fmgrtab.pl index 4ae86df1f7..3b112c69d8 100644 --- a/src/backend/utils/Gen_fmgrtab.pl +++ b/src/backend/utils/Gen_fmgrtab.pl @@ -3,7 +3,7 @@ # # Gen_fmgrtab.pl # Perl script that generates fmgroids.h, fmgrprotos.h, and fmgrtab.c -# from pg_proc.h +# from pg_proc.dat # # Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group # Portions Copyright (c) 1994, Regents of the University of California @@ -20,7 +20,7 @@ use strict; use warnings; # Collect arguments -my $infile; # pg_proc.h +my @input_files; my $output_path = ''; my @include_path; @@ -29,7 +29,7 @@ while (@ARGV) my $arg = shift @ARGV; if ($arg !~ /^-/) { - $infile = $arg; + push @input_files, $arg; } elsif ($arg =~ /^-o/) { @@ -52,38 +52,50 @@ if ($output_path ne '' && substr($output_path, -1) ne '/') } # Sanity check arguments. -die "No input files.\n" if !$infile; +die "No input files.\n" if !@input_files; die "No include path; you must specify -I at least once.\n" if !@include_path; -my $FirstBootstrapObjectId = - Catalog::FindDefinedSymbol('access/transam.h', \@include_path, 'FirstBootstrapObjectId'); -my $INTERNALlanguageId = - Catalog::FindDefinedSymbol('catalog/pg_language.h', \@include_path, 'INTERNALlanguageId'); - -# Read all the data from the include/catalog files. -my $catalogs = Catalog::Catalogs($infile); - -# Collect the raw data from pg_proc.h. -my @fmgr = (); -my @attnames; -foreach my $column (@{ $catalogs->{pg_proc}->{columns} }) +# Read all the input files into internal data structures. +# Note: We pass data file names as arguments and then look for matching +# headers to parse the schema from. This is backwards from genbki.pl, +# but the Makefile dependencies look more sensible this way. +my %catalogs; +my %catalog_data; +foreach my $datfile (@input_files) { - push @attnames, $column->{name}; + $datfile =~ /(.+)\.dat$/ + or die "Input files need to be data (.dat) files.\n"; + + my $header = "$1.h"; + die "There in no header file corresponding to $datfile" + if ! -e $header; + + my $catalog = Catalog::ParseHeader($header); + my $catname = $catalog->{catname}; + my $schema = $catalog->{columns}; + + $catalogs{$catname} = $catalog; + $catalog_data{$catname} = Catalog::ParseData($datfile, $schema, 0); } -my $data = $catalogs->{pg_proc}->{data}; -foreach my $row (@$data) -{ +# Fetch some values for later. +my $FirstBootstrapObjectId = Catalog::FindDefinedSymbol( + 'access/transam.h', \@include_path, 'FirstBootstrapObjectId'); +my $INTERNALlanguageId = Catalog::FindDefinedSymbolFromData( + $catalog_data{pg_language}, 'INTERNALlanguageId'); - # Split line into tokens without interpreting their meaning. - my %bki_values; - @bki_values{@attnames} = Catalog::SplitDataLine($row->{bki_values}); +# Collect certain fields from pg_proc.dat. +my @fmgr = (); + +foreach my $row (@{ $catalog_data{pg_proc} }) +{ + my %bki_values = %$row; # Select out just the rows for internal-language procedures. next if $bki_values{prolang} ne $INTERNALlanguageId; push @fmgr, - { oid => $row->{oid}, + { oid => $bki_values{oid}, strict => $bki_values{proisstrict}, retset => $bki_values{proretset}, nargs => $bki_values{pronargs}, @@ -281,10 +293,10 @@ Catalog::RenameTempFile($tabfile, $tmpext); sub usage { die <. EOM diff --git a/src/backend/utils/Makefile b/src/backend/utils/Makefile index 163c81a1c2..343637af85 100644 --- a/src/backend/utils/Makefile +++ b/src/backend/utils/Makefile @@ -1,8 +1,13 @@ +#------------------------------------------------------------------------- # -# Makefile for utils +# Makefile for backend/utils +# +# Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group +# Portions Copyright (c) 1994, Regents of the University of California # # src/backend/utils/Makefile # +#------------------------------------------------------------------------- subdir = src/backend/utils top_builddir = ../../.. @@ -20,6 +25,10 @@ all: errcodes.h fmgroids.h fmgrprotos.h probes.h $(SUBDIRS:%=%-recursive): fmgroids.h fmgrprotos.h +FMGR_DATA := $(addprefix $(top_srcdir)/src/include/catalog/,\ + pg_language.dat pg_proc.dat \ + ) + # see notes in src/backend/parser/Makefile fmgrprotos.h: fmgroids.h touch $@ @@ -27,8 +36,8 @@ fmgrprotos.h: fmgroids.h fmgroids.h: fmgrtab.c touch $@ -fmgrtab.c: Gen_fmgrtab.pl $(catalogdir)/Catalog.pm $(top_srcdir)/src/include/catalog/pg_proc.h - $(PERL) -I $(catalogdir) $< -I $(top_srcdir)/src/include/ $(top_srcdir)/src/include/catalog/pg_proc.h +fmgrtab.c: Gen_fmgrtab.pl $(catalogdir)/Catalog.pm $(FMGR_DATA) $(top_srcdir)/src/include/access/transam.h + $(PERL) -I $(catalogdir) $< -I $(top_srcdir)/src/include/ $(FMGR_DATA) errcodes.h: $(top_srcdir)/src/backend/utils/errcodes.txt generate-errcodes.pl $(PERL) $(srcdir)/generate-errcodes.pl $< > $@ diff --git a/src/include/Makefile b/src/include/Makefile index a689d352b6..59e18c73d7 100644 --- a/src/include/Makefile +++ b/src/include/Makefile @@ -54,7 +54,7 @@ install: all installdirs chmod $(INSTALL_DATA_MODE) '$(DESTDIR)$(includedir_server)'/$$dir/*.h || exit; \ done ifeq ($(vpath_build),yes) - for file in dynloader.h catalog/schemapg.h parser/gram.h storage/lwlocknames.h utils/probes.h; do \ + for file in dynloader.h catalog/schemapg.h catalog/pg_*_d.h parser/gram.h storage/lwlocknames.h utils/probes.h; do \ cp $$file '$(DESTDIR)$(includedir_server)'/$$file || exit; \ chmod $(INSTALL_DATA_MODE) '$(DESTDIR)$(includedir_server)'/$$file || exit; \ done @@ -73,7 +73,9 @@ uninstall: clean: - rm -f utils/fmgroids.h utils/fmgrprotos.h utils/errcodes.h parser/gram.h utils/probes.h catalog/schemapg.h + rm -f utils/fmgroids.h utils/fmgrprotos.h utils/errcodes.h + rm -f parser/gram.h storage/lwlocknames.h utils/probes.h + rm -f catalog/schemapg.h catalog/pg_*_d.h catalog/header-stamp distclean maintainer-clean: clean rm -f pg_config.h pg_config_ext.h pg_config_os.h dynloader.h stamp-h stamp-ext-h diff --git a/src/include/catalog/.gitignore b/src/include/catalog/.gitignore index 650202eb75..6c8da5401d 100644 --- a/src/include/catalog/.gitignore +++ b/src/include/catalog/.gitignore @@ -1 +1,3 @@ /schemapg.h +/pg_*_d.h +/header-stamp diff --git a/src/include/catalog/Makefile b/src/include/catalog/Makefile new file mode 100644 index 0000000000..1da3ea7f44 --- /dev/null +++ b/src/include/catalog/Makefile @@ -0,0 +1,31 @@ +#------------------------------------------------------------------------- +# +# Makefile for src/include/catalog +# +# Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group +# Portions Copyright (c) 1994, Regents of the University of California +# +# src/include/catalog/Makefile +# +#------------------------------------------------------------------------- + +subdir = src/include/catalog +top_builddir = ../../.. +include $(top_builddir)/src/Makefile.global + +# location of Catalog.pm +catalogdir = $(top_srcdir)/src/backend/catalog + +# 'make reformat-dat-files' is a convenience target for rewriting the +# catalog data files in our standard format. This includes collapsing +# out any entries that are redundant with a BKI_DEFAULT annotation. +reformat-dat-files: + $(PERL) -I $(catalogdir) reformat_dat_file.pl pg_*.dat + +# 'make expand-dat-files' is a convenience target for expanding out all +# default values in the catalog data files. This should be run before +# altering or removing any BKI_DEFAULT annotation. +expand-dat-files: + $(PERL) -I $(catalogdir) reformat_dat_file.pl pg_*.dat --full-tuples + +.PHONY: reformat-dat-files expand-dat-files diff --git a/src/include/catalog/duplicate_oids b/src/include/catalog/duplicate_oids index 7342d618ed..8c143cf06f 100755 --- a/src/include/catalog/duplicate_oids +++ b/src/include/catalog/duplicate_oids @@ -5,7 +5,7 @@ use warnings; BEGIN { - @ARGV = (glob("pg_*.h"), qw(indexing.h toasting.h)); + @ARGV = (glob("pg_*.h"), glob("pg_*.dat"), qw(indexing.h toasting.h)); } my %oidcounts; @@ -14,8 +14,8 @@ while (<>) { next if /^CATALOG\(.*BKI_BOOTSTRAP/; next - unless /^DATA\(insert *OID *= *(\d+)/ - || /^CATALOG\([^,]*, *(\d+).*BKI_ROWTYPE_OID\((\d+)\)/ + unless /\boid *=> *'(\d+)'/ + || /^CATALOG\([^,]*, *(\d+).*BKI_ROWTYPE_OID\((\d+),/ || /^CATALOG\([^,]*, *(\d+)/ || /^DECLARE_INDEX\([^,]*, *(\d+)/ || /^DECLARE_UNIQUE_INDEX\([^,]*, *(\d+)/ diff --git a/src/include/catalog/genbki.h b/src/include/catalog/genbki.h index 96ac4025de..b1e2cbdb62 100644 --- a/src/include/catalog/genbki.h +++ b/src/include/catalog/genbki.h @@ -3,7 +3,7 @@ * genbki.h * Required include file for all POSTGRES catalog header files * - * genbki.h defines CATALOG(), DATA(), BKI_BOOTSTRAP and related macros + * genbki.h defines CATALOG(), BKI_BOOTSTRAP and related macros * so that the catalog header files can be read by the C compiler. * (These same words are recognized by genbki.pl to build the BKI * bootstrap file from these header files.) @@ -20,23 +20,26 @@ #define GENBKI_H /* Introduces a catalog's structure definition */ -#define CATALOG(name,oid) typedef struct CppConcat(FormData_,name) +#define CATALOG(name,oid,oidmacro) typedef struct CppConcat(FormData_,name) /* Options that may appear after CATALOG (on the same line) */ #define BKI_BOOTSTRAP #define BKI_SHARED_RELATION #define BKI_WITHOUT_OIDS -#define BKI_ROWTYPE_OID(oid) +#define BKI_ROWTYPE_OID(oid,oidmacro) #define BKI_SCHEMA_MACRO + +/* Options that may appear after an attribute (on the same line) */ #define BKI_FORCE_NULL #define BKI_FORCE_NOT_NULL - /* Specifies a default value for a catalog field */ #define BKI_DEFAULT(value) +/* Indicates how to perform name lookups for an OID or OID-array field */ +#define BKI_LOOKUP(catalog) + +/* The following are never defined; they are here only for documentation. */ /* - * This is never defined; it's here only for documentation. - * * Variable-length catalog fields (except possibly the first not nullable one) * should not be visible in C structures, so they are made invisible by #ifdefs * of an undefined symbol. See also MARKNOTNULL in bootstrap.c for how this is @@ -44,10 +47,14 @@ */ #undef CATALOG_VARLEN -/* Declarations that provide the initial content of a catalog */ -/* In C, these need to expand into some harmless, repeatable declaration */ -#define DATA(x) extern int no_such_variable -#define DESCR(x) extern int no_such_variable -#define SHDESCR(x) extern int no_such_variable +/* + * There is code in some catalog headers that needs to be visible to clients, + * but we don't want clients to include the full header because of safety + * issues with other code in the header. To handle that, surround code that + * should be visible to clients with "#ifdef EXPOSE_TO_CLIENT_CODE". That + * instructs genbki.pl to copy the section when generating the corresponding + * "_d" header, which can be included by both client and backend code. + */ +#undef EXPOSE_TO_CLIENT_CODE #endif /* GENBKI_H */ diff --git a/src/include/catalog/indexing.h b/src/include/catalog/indexing.h index 7dd9d108d6..42499e235f 100644 --- a/src/include/catalog/indexing.h +++ b/src/include/catalog/indexing.h @@ -43,7 +43,7 @@ extern void CatalogTupleDelete(Relation heapRel, ItemPointer tid); /* * These macros are just to keep the C compiler from spitting up on the - * upcoming commands for genbki.pl. + * upcoming commands for Catalog.pm. */ #define DECLARE_INDEX(name,oid,decl) extern int no_such_variable #define DECLARE_UNIQUE_INDEX(name,oid,decl) extern int no_such_variable diff --git a/src/include/catalog/pg_aggregate.dat b/src/include/catalog/pg_aggregate.dat new file mode 100644 index 0000000000..f8d20410ef --- /dev/null +++ b/src/include/catalog/pg_aggregate.dat @@ -0,0 +1,598 @@ +#---------------------------------------------------------------------- +# +# pg_aggregate.dat +# Initial contents of the pg_aggregate system relation. +# +# Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group +# Portions Copyright (c) 1994, Regents of the University of California +# +# src/include/catalog/pg_aggregate.dat +# +#---------------------------------------------------------------------- + +[ + +# avg +{ aggfnoid => 'avg(int8)', aggtransfn => 'int8_avg_accum', + aggfinalfn => 'numeric_poly_avg', aggcombinefn => 'int8_avg_combine', + aggserialfn => 'int8_avg_serialize', aggdeserialfn => 'int8_avg_deserialize', + aggmtransfn => 'int8_avg_accum', aggminvtransfn => 'int8_avg_accum_inv', + aggmfinalfn => 'numeric_poly_avg', aggtranstype => 'internal', + aggtransspace => '48', aggmtranstype => 'internal', aggmtransspace => '48' }, +{ aggfnoid => 'avg(int4)', aggtransfn => 'int4_avg_accum', + aggfinalfn => 'int8_avg', aggcombinefn => 'int4_avg_combine', + aggmtransfn => 'int4_avg_accum', aggminvtransfn => 'int4_avg_accum_inv', + aggmfinalfn => 'int8_avg', aggtranstype => '_int8', aggmtranstype => '_int8', + agginitval => '{0,0}', aggminitval => '{0,0}' }, +{ aggfnoid => 'avg(int2)', aggtransfn => 'int2_avg_accum', + aggfinalfn => 'int8_avg', aggcombinefn => 'int4_avg_combine', + aggmtransfn => 'int2_avg_accum', aggminvtransfn => 'int2_avg_accum_inv', + aggmfinalfn => 'int8_avg', aggtranstype => '_int8', aggmtranstype => '_int8', + agginitval => '{0,0}', aggminitval => '{0,0}' }, +{ aggfnoid => 'avg(numeric)', aggtransfn => 'numeric_avg_accum', + aggfinalfn => 'numeric_avg', aggcombinefn => 'numeric_avg_combine', + aggserialfn => 'numeric_avg_serialize', + aggdeserialfn => 'numeric_avg_deserialize', + aggmtransfn => 'numeric_avg_accum', aggminvtransfn => 'numeric_accum_inv', + aggmfinalfn => 'numeric_avg', aggtranstype => 'internal', + aggtransspace => '128', aggmtranstype => 'internal', + aggmtransspace => '128' }, +{ aggfnoid => 'avg(float4)', aggtransfn => 'float4_accum', + aggfinalfn => 'float8_avg', aggcombinefn => 'float8_combine', + aggtranstype => '_float8', agginitval => '{0,0,0}' }, +{ aggfnoid => 'avg(float8)', aggtransfn => 'float8_accum', + aggfinalfn => 'float8_avg', aggcombinefn => 'float8_combine', + aggtranstype => '_float8', agginitval => '{0,0,0}' }, +{ aggfnoid => 'avg(interval)', aggtransfn => 'interval_accum', + aggfinalfn => 'interval_avg', aggcombinefn => 'interval_combine', + aggmtransfn => 'interval_accum', aggminvtransfn => 'interval_accum_inv', + aggmfinalfn => 'interval_avg', aggtranstype => '_interval', + aggmtranstype => '_interval', agginitval => '{0 second,0 second}', + aggminitval => '{0 second,0 second}' }, + +# sum +{ aggfnoid => 'sum(int8)', aggtransfn => 'int8_avg_accum', + aggfinalfn => 'numeric_poly_sum', aggcombinefn => 'int8_avg_combine', + aggserialfn => 'int8_avg_serialize', aggdeserialfn => 'int8_avg_deserialize', + aggmtransfn => 'int8_avg_accum', aggminvtransfn => 'int8_avg_accum_inv', + aggmfinalfn => 'numeric_poly_sum', aggtranstype => 'internal', + aggtransspace => '48', aggmtranstype => 'internal', aggmtransspace => '48' }, +{ aggfnoid => 'sum(int4)', aggtransfn => 'int4_sum', aggcombinefn => 'int8pl', + aggmtransfn => 'int4_avg_accum', aggminvtransfn => 'int4_avg_accum_inv', + aggmfinalfn => 'int2int4_sum', aggtranstype => 'int8', + aggmtranstype => '_int8', aggminitval => '{0,0}' }, +{ aggfnoid => 'sum(int2)', aggtransfn => 'int2_sum', aggcombinefn => 'int8pl', + aggmtransfn => 'int2_avg_accum', aggminvtransfn => 'int2_avg_accum_inv', + aggmfinalfn => 'int2int4_sum', aggtranstype => 'int8', + aggmtranstype => '_int8', aggminitval => '{0,0}' }, +{ aggfnoid => 'sum(float4)', aggtransfn => 'float4pl', + aggcombinefn => 'float4pl', aggtranstype => 'float4' }, +{ aggfnoid => 'sum(float8)', aggtransfn => 'float8pl', + aggcombinefn => 'float8pl', aggtranstype => 'float8' }, +{ aggfnoid => 'sum(money)', aggtransfn => 'cash_pl', aggcombinefn => 'cash_pl', + aggmtransfn => 'cash_pl', aggminvtransfn => 'cash_mi', + aggtranstype => 'money', aggmtranstype => 'money' }, +{ aggfnoid => 'sum(interval)', aggtransfn => 'interval_pl', + aggcombinefn => 'interval_pl', aggmtransfn => 'interval_pl', + aggminvtransfn => 'interval_mi', aggtranstype => 'interval', + aggmtranstype => 'interval' }, +{ aggfnoid => 'sum(numeric)', aggtransfn => 'numeric_avg_accum', + aggfinalfn => 'numeric_sum', aggcombinefn => 'numeric_avg_combine', + aggserialfn => 'numeric_avg_serialize', + aggdeserialfn => 'numeric_avg_deserialize', + aggmtransfn => 'numeric_avg_accum', aggminvtransfn => 'numeric_accum_inv', + aggmfinalfn => 'numeric_sum', aggtranstype => 'internal', + aggtransspace => '128', aggmtranstype => 'internal', + aggmtransspace => '128' }, + +# max +{ aggfnoid => 'max(int8)', aggtransfn => 'int8larger', + aggcombinefn => 'int8larger', aggsortop => '>(int8,int8)', + aggtranstype => 'int8' }, +{ aggfnoid => 'max(int4)', aggtransfn => 'int4larger', + aggcombinefn => 'int4larger', aggsortop => '>(int4,int4)', + aggtranstype => 'int4' }, +{ aggfnoid => 'max(int2)', aggtransfn => 'int2larger', + aggcombinefn => 'int2larger', aggsortop => '>(int2,int2)', + aggtranstype => 'int2' }, +{ aggfnoid => 'max(oid)', aggtransfn => 'oidlarger', + aggcombinefn => 'oidlarger', aggsortop => '>(oid,oid)', + aggtranstype => 'oid' }, +{ aggfnoid => 'max(float4)', aggtransfn => 'float4larger', + aggcombinefn => 'float4larger', aggsortop => '>(float4,float4)', + aggtranstype => 'float4' }, +{ aggfnoid => 'max(float8)', aggtransfn => 'float8larger', + aggcombinefn => 'float8larger', aggsortop => '>(float8,float8)', + aggtranstype => 'float8' }, +{ aggfnoid => 'max(abstime)', aggtransfn => 'int4larger', + aggcombinefn => 'int4larger', aggsortop => '>(abstime,abstime)', + aggtranstype => 'abstime' }, +{ aggfnoid => 'max(date)', aggtransfn => 'date_larger', + aggcombinefn => 'date_larger', aggsortop => '>(date,date)', + aggtranstype => 'date' }, +{ aggfnoid => 'max(time)', aggtransfn => 'time_larger', + aggcombinefn => 'time_larger', aggsortop => '>(time,time)', + aggtranstype => 'time' }, +{ aggfnoid => 'max(timetz)', aggtransfn => 'timetz_larger', + aggcombinefn => 'timetz_larger', aggsortop => '>(timetz,timetz)', + aggtranstype => 'timetz' }, +{ aggfnoid => 'max(money)', aggtransfn => 'cashlarger', + aggcombinefn => 'cashlarger', aggsortop => '>(money,money)', + aggtranstype => 'money' }, +{ aggfnoid => 'max(timestamp)', aggtransfn => 'timestamp_larger', + aggcombinefn => 'timestamp_larger', aggsortop => '>(timestamp,timestamp)', + aggtranstype => 'timestamp' }, +{ aggfnoid => 'max(timestamptz)', aggtransfn => 'timestamptz_larger', + aggcombinefn => 'timestamptz_larger', + aggsortop => '>(timestamptz,timestamptz)', aggtranstype => 'timestamptz' }, +{ aggfnoid => 'max(interval)', aggtransfn => 'interval_larger', + aggcombinefn => 'interval_larger', aggsortop => '>(interval,interval)', + aggtranstype => 'interval' }, +{ aggfnoid => 'max(text)', aggtransfn => 'text_larger', + aggcombinefn => 'text_larger', aggsortop => '>(text,text)', + aggtranstype => 'text' }, +{ aggfnoid => 'max(numeric)', aggtransfn => 'numeric_larger', + aggcombinefn => 'numeric_larger', aggsortop => '>(numeric,numeric)', + aggtranstype => 'numeric' }, +{ aggfnoid => 'max(anyarray)', aggtransfn => 'array_larger', + aggcombinefn => 'array_larger', aggsortop => '>(anyarray,anyarray)', + aggtranstype => 'anyarray' }, +{ aggfnoid => 'max(bpchar)', aggtransfn => 'bpchar_larger', + aggcombinefn => 'bpchar_larger', aggsortop => '>(bpchar,bpchar)', + aggtranstype => 'bpchar' }, +{ aggfnoid => 'max(tid)', aggtransfn => 'tidlarger', + aggcombinefn => 'tidlarger', aggsortop => '>(tid,tid)', + aggtranstype => 'tid' }, +{ aggfnoid => 'max(anyenum)', aggtransfn => 'enum_larger', + aggcombinefn => 'enum_larger', aggsortop => '>(anyenum,anyenum)', + aggtranstype => 'anyenum' }, +{ aggfnoid => 'max(inet)', aggtransfn => 'network_larger', + aggcombinefn => 'network_larger', aggsortop => '>(inet,inet)', + aggtranstype => 'inet' }, + +# min +{ aggfnoid => 'min(int8)', aggtransfn => 'int8smaller', + aggcombinefn => 'int8smaller', aggsortop => '<(int8,int8)', + aggtranstype => 'int8' }, +{ aggfnoid => 'min(int4)', aggtransfn => 'int4smaller', + aggcombinefn => 'int4smaller', aggsortop => '<(int4,int4)', + aggtranstype => 'int4' }, +{ aggfnoid => 'min(int2)', aggtransfn => 'int2smaller', + aggcombinefn => 'int2smaller', aggsortop => '<(int2,int2)', + aggtranstype => 'int2' }, +{ aggfnoid => 'min(oid)', aggtransfn => 'oidsmaller', + aggcombinefn => 'oidsmaller', aggsortop => '<(oid,oid)', + aggtranstype => 'oid' }, +{ aggfnoid => 'min(float4)', aggtransfn => 'float4smaller', + aggcombinefn => 'float4smaller', aggsortop => '<(float4,float4)', + aggtranstype => 'float4' }, +{ aggfnoid => 'min(float8)', aggtransfn => 'float8smaller', + aggcombinefn => 'float8smaller', aggsortop => '<(float8,float8)', + aggtranstype => 'float8' }, +{ aggfnoid => 'min(abstime)', aggtransfn => 'int4smaller', + aggcombinefn => 'int4smaller', aggsortop => '<(abstime,abstime)', + aggtranstype => 'abstime' }, +{ aggfnoid => 'min(date)', aggtransfn => 'date_smaller', + aggcombinefn => 'date_smaller', aggsortop => '<(date,date)', + aggtranstype => 'date' }, +{ aggfnoid => 'min(time)', aggtransfn => 'time_smaller', + aggcombinefn => 'time_smaller', aggsortop => '<(time,time)', + aggtranstype => 'time' }, +{ aggfnoid => 'min(timetz)', aggtransfn => 'timetz_smaller', + aggcombinefn => 'timetz_smaller', aggsortop => '<(timetz,timetz)', + aggtranstype => 'timetz' }, +{ aggfnoid => 'min(money)', aggtransfn => 'cashsmaller', + aggcombinefn => 'cashsmaller', aggsortop => '<(money,money)', + aggtranstype => 'money' }, +{ aggfnoid => 'min(timestamp)', aggtransfn => 'timestamp_smaller', + aggcombinefn => 'timestamp_smaller', aggsortop => '<(timestamp,timestamp)', + aggtranstype => 'timestamp' }, +{ aggfnoid => 'min(timestamptz)', aggtransfn => 'timestamptz_smaller', + aggcombinefn => 'timestamptz_smaller', + aggsortop => '<(timestamptz,timestamptz)', aggtranstype => 'timestamptz' }, +{ aggfnoid => 'min(interval)', aggtransfn => 'interval_smaller', + aggcombinefn => 'interval_smaller', aggsortop => '<(interval,interval)', + aggtranstype => 'interval' }, +{ aggfnoid => 'min(text)', aggtransfn => 'text_smaller', + aggcombinefn => 'text_smaller', aggsortop => '<(text,text)', + aggtranstype => 'text' }, +{ aggfnoid => 'min(numeric)', aggtransfn => 'numeric_smaller', + aggcombinefn => 'numeric_smaller', aggsortop => '<(numeric,numeric)', + aggtranstype => 'numeric' }, +{ aggfnoid => 'min(anyarray)', aggtransfn => 'array_smaller', + aggcombinefn => 'array_smaller', aggsortop => '<(anyarray,anyarray)', + aggtranstype => 'anyarray' }, +{ aggfnoid => 'min(bpchar)', aggtransfn => 'bpchar_smaller', + aggcombinefn => 'bpchar_smaller', aggsortop => '<(bpchar,bpchar)', + aggtranstype => 'bpchar' }, +{ aggfnoid => 'min(tid)', aggtransfn => 'tidsmaller', + aggcombinefn => 'tidsmaller', aggsortop => '<(tid,tid)', + aggtranstype => 'tid' }, +{ aggfnoid => 'min(anyenum)', aggtransfn => 'enum_smaller', + aggcombinefn => 'enum_smaller', aggsortop => '<(anyenum,anyenum)', + aggtranstype => 'anyenum' }, +{ aggfnoid => 'min(inet)', aggtransfn => 'network_smaller', + aggcombinefn => 'network_smaller', aggsortop => '<(inet,inet)', + aggtranstype => 'inet' }, + +# count +{ aggfnoid => 'count(any)', aggtransfn => 'int8inc_any', + aggcombinefn => 'int8pl', aggmtransfn => 'int8inc_any', + aggminvtransfn => 'int8dec_any', aggtranstype => 'int8', + aggmtranstype => 'int8', agginitval => '0', aggminitval => '0' }, +{ aggfnoid => 'count()', aggtransfn => 'int8inc', aggcombinefn => 'int8pl', + aggmtransfn => 'int8inc', aggminvtransfn => 'int8dec', aggtranstype => 'int8', + aggmtranstype => 'int8', agginitval => '0', aggminitval => '0' }, + +# var_pop +{ aggfnoid => 'var_pop(int8)', aggtransfn => 'int8_accum', + aggfinalfn => 'numeric_var_pop', aggcombinefn => 'numeric_combine', + aggserialfn => 'numeric_serialize', aggdeserialfn => 'numeric_deserialize', + aggmtransfn => 'int8_accum', aggminvtransfn => 'int8_accum_inv', + aggmfinalfn => 'numeric_var_pop', aggtranstype => 'internal', + aggtransspace => '128', aggmtranstype => 'internal', + aggmtransspace => '128' }, +{ aggfnoid => 'var_pop(int4)', aggtransfn => 'int4_accum', + aggfinalfn => 'numeric_poly_var_pop', aggcombinefn => 'numeric_poly_combine', + aggserialfn => 'numeric_poly_serialize', + aggdeserialfn => 'numeric_poly_deserialize', aggmtransfn => 'int4_accum', + aggminvtransfn => 'int4_accum_inv', aggmfinalfn => 'numeric_poly_var_pop', + aggtranstype => 'internal', aggtransspace => '48', + aggmtranstype => 'internal', aggmtransspace => '48' }, +{ aggfnoid => 'var_pop(int2)', aggtransfn => 'int2_accum', + aggfinalfn => 'numeric_poly_var_pop', aggcombinefn => 'numeric_poly_combine', + aggserialfn => 'numeric_poly_serialize', + aggdeserialfn => 'numeric_poly_deserialize', aggmtransfn => 'int2_accum', + aggminvtransfn => 'int2_accum_inv', aggmfinalfn => 'numeric_poly_var_pop', + aggtranstype => 'internal', aggtransspace => '48', + aggmtranstype => 'internal', aggmtransspace => '48' }, +{ aggfnoid => 'var_pop(float4)', aggtransfn => 'float4_accum', + aggfinalfn => 'float8_var_pop', aggcombinefn => 'float8_combine', + aggtranstype => '_float8', agginitval => '{0,0,0}' }, +{ aggfnoid => 'var_pop(float8)', aggtransfn => 'float8_accum', + aggfinalfn => 'float8_var_pop', aggcombinefn => 'float8_combine', + aggtranstype => '_float8', agginitval => '{0,0,0}' }, +{ aggfnoid => 'var_pop(numeric)', aggtransfn => 'numeric_accum', + aggfinalfn => 'numeric_var_pop', aggcombinefn => 'numeric_combine', + aggserialfn => 'numeric_serialize', aggdeserialfn => 'numeric_deserialize', + aggmtransfn => 'numeric_accum', aggminvtransfn => 'numeric_accum_inv', + aggmfinalfn => 'numeric_var_pop', aggtranstype => 'internal', + aggtransspace => '128', aggmtranstype => 'internal', + aggmtransspace => '128' }, + +# var_samp +{ aggfnoid => 'var_samp(int8)', aggtransfn => 'int8_accum', + aggfinalfn => 'numeric_var_samp', aggcombinefn => 'numeric_combine', + aggserialfn => 'numeric_serialize', aggdeserialfn => 'numeric_deserialize', + aggmtransfn => 'int8_accum', aggminvtransfn => 'int8_accum_inv', + aggmfinalfn => 'numeric_var_samp', aggtranstype => 'internal', + aggtransspace => '128', aggmtranstype => 'internal', + aggmtransspace => '128' }, +{ aggfnoid => 'var_samp(int4)', aggtransfn => 'int4_accum', + aggfinalfn => 'numeric_poly_var_samp', aggcombinefn => 'numeric_poly_combine', + aggserialfn => 'numeric_poly_serialize', + aggdeserialfn => 'numeric_poly_deserialize', aggmtransfn => 'int4_accum', + aggminvtransfn => 'int4_accum_inv', aggmfinalfn => 'numeric_poly_var_samp', + aggtranstype => 'internal', aggtransspace => '48', + aggmtranstype => 'internal', aggmtransspace => '48' }, +{ aggfnoid => 'var_samp(int2)', aggtransfn => 'int2_accum', + aggfinalfn => 'numeric_poly_var_samp', aggcombinefn => 'numeric_poly_combine', + aggserialfn => 'numeric_poly_serialize', + aggdeserialfn => 'numeric_poly_deserialize', aggmtransfn => 'int2_accum', + aggminvtransfn => 'int2_accum_inv', aggmfinalfn => 'numeric_poly_var_samp', + aggtranstype => 'internal', aggtransspace => '48', + aggmtranstype => 'internal', aggmtransspace => '48' }, +{ aggfnoid => 'var_samp(float4)', aggtransfn => 'float4_accum', + aggfinalfn => 'float8_var_samp', aggcombinefn => 'float8_combine', + aggtranstype => '_float8', agginitval => '{0,0,0}' }, +{ aggfnoid => 'var_samp(float8)', aggtransfn => 'float8_accum', + aggfinalfn => 'float8_var_samp', aggcombinefn => 'float8_combine', + aggtranstype => '_float8', agginitval => '{0,0,0}' }, +{ aggfnoid => 'var_samp(numeric)', aggtransfn => 'numeric_accum', + aggfinalfn => 'numeric_var_samp', aggcombinefn => 'numeric_combine', + aggserialfn => 'numeric_serialize', aggdeserialfn => 'numeric_deserialize', + aggmtransfn => 'numeric_accum', aggminvtransfn => 'numeric_accum_inv', + aggmfinalfn => 'numeric_var_samp', aggtranstype => 'internal', + aggtransspace => '128', aggmtranstype => 'internal', + aggmtransspace => '128' }, + +# variance: historical Postgres syntax for var_samp +{ aggfnoid => 'variance(int8)', aggtransfn => 'int8_accum', + aggfinalfn => 'numeric_var_samp', aggcombinefn => 'numeric_combine', + aggserialfn => 'numeric_serialize', aggdeserialfn => 'numeric_deserialize', + aggmtransfn => 'int8_accum', aggminvtransfn => 'int8_accum_inv', + aggmfinalfn => 'numeric_var_samp', aggtranstype => 'internal', + aggtransspace => '128', aggmtranstype => 'internal', + aggmtransspace => '128' }, +{ aggfnoid => 'variance(int4)', aggtransfn => 'int4_accum', + aggfinalfn => 'numeric_poly_var_samp', aggcombinefn => 'numeric_poly_combine', + aggserialfn => 'numeric_poly_serialize', + aggdeserialfn => 'numeric_poly_deserialize', aggmtransfn => 'int4_accum', + aggminvtransfn => 'int4_accum_inv', aggmfinalfn => 'numeric_poly_var_samp', + aggtranstype => 'internal', aggtransspace => '48', + aggmtranstype => 'internal', aggmtransspace => '48' }, +{ aggfnoid => 'variance(int2)', aggtransfn => 'int2_accum', + aggfinalfn => 'numeric_poly_var_samp', aggcombinefn => 'numeric_poly_combine', + aggserialfn => 'numeric_poly_serialize', + aggdeserialfn => 'numeric_poly_deserialize', aggmtransfn => 'int2_accum', + aggminvtransfn => 'int2_accum_inv', aggmfinalfn => 'numeric_poly_var_samp', + aggtranstype => 'internal', aggtransspace => '48', + aggmtranstype => 'internal', aggmtransspace => '48' }, +{ aggfnoid => 'variance(float4)', aggtransfn => 'float4_accum', + aggfinalfn => 'float8_var_samp', aggcombinefn => 'float8_combine', + aggtranstype => '_float8', agginitval => '{0,0,0}' }, +{ aggfnoid => 'variance(float8)', aggtransfn => 'float8_accum', + aggfinalfn => 'float8_var_samp', aggcombinefn => 'float8_combine', + aggtranstype => '_float8', agginitval => '{0,0,0}' }, +{ aggfnoid => 'variance(numeric)', aggtransfn => 'numeric_accum', + aggfinalfn => 'numeric_var_samp', aggcombinefn => 'numeric_combine', + aggserialfn => 'numeric_serialize', aggdeserialfn => 'numeric_deserialize', + aggmtransfn => 'numeric_accum', aggminvtransfn => 'numeric_accum_inv', + aggmfinalfn => 'numeric_var_samp', aggtranstype => 'internal', + aggtransspace => '128', aggmtranstype => 'internal', + aggmtransspace => '128' }, + +# stddev_pop +{ aggfnoid => 'stddev_pop(int8)', aggtransfn => 'int8_accum', + aggfinalfn => 'numeric_stddev_pop', aggcombinefn => 'numeric_combine', + aggserialfn => 'numeric_serialize', aggdeserialfn => 'numeric_deserialize', + aggmtransfn => 'int8_accum', aggminvtransfn => 'int8_accum_inv', + aggmfinalfn => 'numeric_stddev_pop', aggtranstype => 'internal', + aggtransspace => '128', aggmtranstype => 'internal', + aggmtransspace => '128' }, +{ aggfnoid => 'stddev_pop(int4)', aggtransfn => 'int4_accum', + aggfinalfn => 'numeric_poly_stddev_pop', + aggcombinefn => 'numeric_poly_combine', + aggserialfn => 'numeric_poly_serialize', + aggdeserialfn => 'numeric_poly_deserialize', aggmtransfn => 'int4_accum', + aggminvtransfn => 'int4_accum_inv', aggmfinalfn => 'numeric_poly_stddev_pop', + aggtranstype => 'internal', aggtransspace => '48', + aggmtranstype => 'internal', aggmtransspace => '48' }, +{ aggfnoid => 'stddev_pop(int2)', aggtransfn => 'int2_accum', + aggfinalfn => 'numeric_poly_stddev_pop', + aggcombinefn => 'numeric_poly_combine', + aggserialfn => 'numeric_poly_serialize', + aggdeserialfn => 'numeric_poly_deserialize', aggmtransfn => 'int2_accum', + aggminvtransfn => 'int2_accum_inv', aggmfinalfn => 'numeric_poly_stddev_pop', + aggtranstype => 'internal', aggtransspace => '48', + aggmtranstype => 'internal', aggmtransspace => '48' }, +{ aggfnoid => 'stddev_pop(float4)', aggtransfn => 'float4_accum', + aggfinalfn => 'float8_stddev_pop', aggcombinefn => 'float8_combine', + aggtranstype => '_float8', agginitval => '{0,0,0}' }, +{ aggfnoid => 'stddev_pop(float8)', aggtransfn => 'float8_accum', + aggfinalfn => 'float8_stddev_pop', aggcombinefn => 'float8_combine', + aggtranstype => '_float8', agginitval => '{0,0,0}' }, +{ aggfnoid => 'stddev_pop(numeric)', aggtransfn => 'numeric_accum', + aggfinalfn => 'numeric_stddev_pop', aggcombinefn => 'numeric_combine', + aggserialfn => 'numeric_serialize', aggdeserialfn => 'numeric_deserialize', + aggmtransfn => 'numeric_accum', aggminvtransfn => 'numeric_accum_inv', + aggmfinalfn => 'numeric_stddev_pop', aggtranstype => 'internal', + aggtransspace => '128', aggmtranstype => 'internal', + aggmtransspace => '128' }, + +# stddev_samp +{ aggfnoid => 'stddev_samp(int8)', aggtransfn => 'int8_accum', + aggfinalfn => 'numeric_stddev_samp', aggcombinefn => 'numeric_combine', + aggserialfn => 'numeric_serialize', aggdeserialfn => 'numeric_deserialize', + aggmtransfn => 'int8_accum', aggminvtransfn => 'int8_accum_inv', + aggmfinalfn => 'numeric_stddev_samp', aggtranstype => 'internal', + aggtransspace => '128', aggmtranstype => 'internal', + aggmtransspace => '128' }, +{ aggfnoid => 'stddev_samp(int4)', aggtransfn => 'int4_accum', + aggfinalfn => 'numeric_poly_stddev_samp', + aggcombinefn => 'numeric_poly_combine', + aggserialfn => 'numeric_poly_serialize', + aggdeserialfn => 'numeric_poly_deserialize', aggmtransfn => 'int4_accum', + aggminvtransfn => 'int4_accum_inv', aggmfinalfn => 'numeric_poly_stddev_samp', + aggtranstype => 'internal', aggtransspace => '48', + aggmtranstype => 'internal', aggmtransspace => '48' }, +{ aggfnoid => 'stddev_samp(int2)', aggtransfn => 'int2_accum', + aggfinalfn => 'numeric_poly_stddev_samp', + aggcombinefn => 'numeric_poly_combine', + aggserialfn => 'numeric_poly_serialize', + aggdeserialfn => 'numeric_poly_deserialize', aggmtransfn => 'int2_accum', + aggminvtransfn => 'int2_accum_inv', aggmfinalfn => 'numeric_poly_stddev_samp', + aggtranstype => 'internal', aggtransspace => '48', + aggmtranstype => 'internal', aggmtransspace => '48' }, +{ aggfnoid => 'stddev_samp(float4)', aggtransfn => 'float4_accum', + aggfinalfn => 'float8_stddev_samp', aggcombinefn => 'float8_combine', + aggtranstype => '_float8', agginitval => '{0,0,0}' }, +{ aggfnoid => 'stddev_samp(float8)', aggtransfn => 'float8_accum', + aggfinalfn => 'float8_stddev_samp', aggcombinefn => 'float8_combine', + aggtranstype => '_float8', agginitval => '{0,0,0}' }, +{ aggfnoid => 'stddev_samp(numeric)', aggtransfn => 'numeric_accum', + aggfinalfn => 'numeric_stddev_samp', aggcombinefn => 'numeric_combine', + aggserialfn => 'numeric_serialize', aggdeserialfn => 'numeric_deserialize', + aggmtransfn => 'numeric_accum', aggminvtransfn => 'numeric_accum_inv', + aggmfinalfn => 'numeric_stddev_samp', aggtranstype => 'internal', + aggtransspace => '128', aggmtranstype => 'internal', + aggmtransspace => '128' }, + +# stddev: historical Postgres syntax for stddev_samp +{ aggfnoid => 'stddev(int8)', aggtransfn => 'int8_accum', + aggfinalfn => 'numeric_stddev_samp', aggcombinefn => 'numeric_combine', + aggserialfn => 'numeric_serialize', aggdeserialfn => 'numeric_deserialize', + aggmtransfn => 'int8_accum', aggminvtransfn => 'int8_accum_inv', + aggmfinalfn => 'numeric_stddev_samp', aggtranstype => 'internal', + aggtransspace => '128', aggmtranstype => 'internal', + aggmtransspace => '128' }, +{ aggfnoid => 'stddev(int4)', aggtransfn => 'int4_accum', + aggfinalfn => 'numeric_poly_stddev_samp', + aggcombinefn => 'numeric_poly_combine', + aggserialfn => 'numeric_poly_serialize', + aggdeserialfn => 'numeric_poly_deserialize', aggmtransfn => 'int4_accum', + aggminvtransfn => 'int4_accum_inv', aggmfinalfn => 'numeric_poly_stddev_samp', + aggtranstype => 'internal', aggtransspace => '48', + aggmtranstype => 'internal', aggmtransspace => '48' }, +{ aggfnoid => 'stddev(int2)', aggtransfn => 'int2_accum', + aggfinalfn => 'numeric_poly_stddev_samp', + aggcombinefn => 'numeric_poly_combine', + aggserialfn => 'numeric_poly_serialize', + aggdeserialfn => 'numeric_poly_deserialize', aggmtransfn => 'int2_accum', + aggminvtransfn => 'int2_accum_inv', aggmfinalfn => 'numeric_poly_stddev_samp', + aggtranstype => 'internal', aggtransspace => '48', + aggmtranstype => 'internal', aggmtransspace => '48' }, +{ aggfnoid => 'stddev(float4)', aggtransfn => 'float4_accum', + aggfinalfn => 'float8_stddev_samp', aggcombinefn => 'float8_combine', + aggtranstype => '_float8', agginitval => '{0,0,0}' }, +{ aggfnoid => 'stddev(float8)', aggtransfn => 'float8_accum', + aggfinalfn => 'float8_stddev_samp', aggcombinefn => 'float8_combine', + aggtranstype => '_float8', agginitval => '{0,0,0}' }, +{ aggfnoid => 'stddev(numeric)', aggtransfn => 'numeric_accum', + aggfinalfn => 'numeric_stddev_samp', aggcombinefn => 'numeric_combine', + aggserialfn => 'numeric_serialize', aggdeserialfn => 'numeric_deserialize', + aggmtransfn => 'numeric_accum', aggminvtransfn => 'numeric_accum_inv', + aggmfinalfn => 'numeric_stddev_samp', aggtranstype => 'internal', + aggtransspace => '128', aggmtranstype => 'internal', + aggmtransspace => '128' }, + +# SQL2003 binary regression aggregates +{ aggfnoid => 'regr_count', aggtransfn => 'int8inc_float8_float8', + aggcombinefn => 'int8pl', aggtranstype => 'int8', agginitval => '0' }, +{ aggfnoid => 'regr_sxx', aggtransfn => 'float8_regr_accum', + aggfinalfn => 'float8_regr_sxx', aggcombinefn => 'float8_regr_combine', + aggtranstype => '_float8', agginitval => '{0,0,0,0,0,0}' }, +{ aggfnoid => 'regr_syy', aggtransfn => 'float8_regr_accum', + aggfinalfn => 'float8_regr_syy', aggcombinefn => 'float8_regr_combine', + aggtranstype => '_float8', agginitval => '{0,0,0,0,0,0}' }, +{ aggfnoid => 'regr_sxy', aggtransfn => 'float8_regr_accum', + aggfinalfn => 'float8_regr_sxy', aggcombinefn => 'float8_regr_combine', + aggtranstype => '_float8', agginitval => '{0,0,0,0,0,0}' }, +{ aggfnoid => 'regr_avgx', aggtransfn => 'float8_regr_accum', + aggfinalfn => 'float8_regr_avgx', aggcombinefn => 'float8_regr_combine', + aggtranstype => '_float8', agginitval => '{0,0,0,0,0,0}' }, +{ aggfnoid => 'regr_avgy', aggtransfn => 'float8_regr_accum', + aggfinalfn => 'float8_regr_avgy', aggcombinefn => 'float8_regr_combine', + aggtranstype => '_float8', agginitval => '{0,0,0,0,0,0}' }, +{ aggfnoid => 'regr_r2', aggtransfn => 'float8_regr_accum', + aggfinalfn => 'float8_regr_r2', aggcombinefn => 'float8_regr_combine', + aggtranstype => '_float8', agginitval => '{0,0,0,0,0,0}' }, +{ aggfnoid => 'regr_slope', aggtransfn => 'float8_regr_accum', + aggfinalfn => 'float8_regr_slope', aggcombinefn => 'float8_regr_combine', + aggtranstype => '_float8', agginitval => '{0,0,0,0,0,0}' }, +{ aggfnoid => 'regr_intercept', aggtransfn => 'float8_regr_accum', + aggfinalfn => 'float8_regr_intercept', aggcombinefn => 'float8_regr_combine', + aggtranstype => '_float8', agginitval => '{0,0,0,0,0,0}' }, +{ aggfnoid => 'covar_pop', aggtransfn => 'float8_regr_accum', + aggfinalfn => 'float8_covar_pop', aggcombinefn => 'float8_regr_combine', + aggtranstype => '_float8', agginitval => '{0,0,0,0,0,0}' }, +{ aggfnoid => 'covar_samp', aggtransfn => 'float8_regr_accum', + aggfinalfn => 'float8_covar_samp', aggcombinefn => 'float8_regr_combine', + aggtranstype => '_float8', agginitval => '{0,0,0,0,0,0}' }, +{ aggfnoid => 'corr', aggtransfn => 'float8_regr_accum', + aggfinalfn => 'float8_corr', aggcombinefn => 'float8_regr_combine', + aggtranstype => '_float8', agginitval => '{0,0,0,0,0,0}' }, + +# boolean-and and boolean-or +{ aggfnoid => 'bool_and', aggtransfn => 'booland_statefunc', + aggcombinefn => 'booland_statefunc', aggmtransfn => 'bool_accum', + aggminvtransfn => 'bool_accum_inv', aggmfinalfn => 'bool_alltrue', + aggsortop => '<(bool,bool)', aggtranstype => 'bool', + aggmtranstype => 'internal', aggmtransspace => '16' }, +{ aggfnoid => 'bool_or', aggtransfn => 'boolor_statefunc', + aggcombinefn => 'boolor_statefunc', aggmtransfn => 'bool_accum', + aggminvtransfn => 'bool_accum_inv', aggmfinalfn => 'bool_anytrue', + aggsortop => '>(bool,bool)', aggtranstype => 'bool', + aggmtranstype => 'internal', aggmtransspace => '16' }, +{ aggfnoid => 'every', aggtransfn => 'booland_statefunc', + aggcombinefn => 'booland_statefunc', aggmtransfn => 'bool_accum', + aggminvtransfn => 'bool_accum_inv', aggmfinalfn => 'bool_alltrue', + aggsortop => '<(bool,bool)', aggtranstype => 'bool', + aggmtranstype => 'internal', aggmtransspace => '16' }, + +# bitwise integer +{ aggfnoid => 'bit_and(int2)', aggtransfn => 'int2and', + aggcombinefn => 'int2and', aggtranstype => 'int2' }, +{ aggfnoid => 'bit_or(int2)', aggtransfn => 'int2or', aggcombinefn => 'int2or', + aggtranstype => 'int2' }, +{ aggfnoid => 'bit_and(int4)', aggtransfn => 'int4and', + aggcombinefn => 'int4and', aggtranstype => 'int4' }, +{ aggfnoid => 'bit_or(int4)', aggtransfn => 'int4or', aggcombinefn => 'int4or', + aggtranstype => 'int4' }, +{ aggfnoid => 'bit_and(int8)', aggtransfn => 'int8and', + aggcombinefn => 'int8and', aggtranstype => 'int8' }, +{ aggfnoid => 'bit_or(int8)', aggtransfn => 'int8or', aggcombinefn => 'int8or', + aggtranstype => 'int8' }, +{ aggfnoid => 'bit_and(bit)', aggtransfn => 'bitand', aggcombinefn => 'bitand', + aggtranstype => 'bit' }, +{ aggfnoid => 'bit_or(bit)', aggtransfn => 'bitor', aggcombinefn => 'bitor', + aggtranstype => 'bit' }, + +# xml +{ aggfnoid => 'xmlagg', aggtransfn => 'xmlconcat2', aggtranstype => 'xml' }, + +# array +{ aggfnoid => 'array_agg(anynonarray)', aggtransfn => 'array_agg_transfn', + aggfinalfn => 'array_agg_finalfn', aggfinalextra => 't', + aggtranstype => 'internal' }, +{ aggfnoid => 'array_agg(anyarray)', aggtransfn => 'array_agg_array_transfn', + aggfinalfn => 'array_agg_array_finalfn', aggfinalextra => 't', + aggtranstype => 'internal' }, + +# text +{ aggfnoid => 'string_agg(text,text)', aggtransfn => 'string_agg_transfn', + aggfinalfn => 'string_agg_finalfn', aggtranstype => 'internal' }, + +# bytea +{ aggfnoid => 'string_agg(bytea,bytea)', + aggtransfn => 'bytea_string_agg_transfn', + aggfinalfn => 'bytea_string_agg_finalfn', aggtranstype => 'internal' }, + +# json +{ aggfnoid => 'json_agg', aggtransfn => 'json_agg_transfn', + aggfinalfn => 'json_agg_finalfn', aggtranstype => 'internal' }, +{ aggfnoid => 'json_object_agg', aggtransfn => 'json_object_agg_transfn', + aggfinalfn => 'json_object_agg_finalfn', aggtranstype => 'internal' }, + +# jsonb +{ aggfnoid => 'jsonb_agg', aggtransfn => 'jsonb_agg_transfn', + aggfinalfn => 'jsonb_agg_finalfn', aggtranstype => 'internal' }, +{ aggfnoid => 'jsonb_object_agg', aggtransfn => 'jsonb_object_agg_transfn', + aggfinalfn => 'jsonb_object_agg_finalfn', aggtranstype => 'internal' }, + +# ordered-set and hypothetical-set aggregates +{ aggfnoid => 'percentile_disc(float8,anyelement)', aggkind => 'o', + aggnumdirectargs => '1', aggtransfn => 'ordered_set_transition', + aggfinalfn => 'percentile_disc_final', aggfinalextra => 't', + aggfinalmodify => 's', aggmfinalmodify => 's', aggtranstype => 'internal' }, +{ aggfnoid => 'percentile_cont(float8,float8)', aggkind => 'o', + aggnumdirectargs => '1', aggtransfn => 'ordered_set_transition', + aggfinalfn => 'percentile_cont_float8_final', aggfinalmodify => 's', + aggmfinalmodify => 's', aggtranstype => 'internal' }, +{ aggfnoid => 'percentile_cont(float8,interval)', aggkind => 'o', + aggnumdirectargs => '1', aggtransfn => 'ordered_set_transition', + aggfinalfn => 'percentile_cont_interval_final', aggfinalmodify => 's', + aggmfinalmodify => 's', aggtranstype => 'internal' }, +{ aggfnoid => 'percentile_disc(_float8,anyelement)', aggkind => 'o', + aggnumdirectargs => '1', aggtransfn => 'ordered_set_transition', + aggfinalfn => 'percentile_disc_multi_final', aggfinalextra => 't', + aggfinalmodify => 's', aggmfinalmodify => 's', aggtranstype => 'internal' }, +{ aggfnoid => 'percentile_cont(_float8,float8)', aggkind => 'o', + aggnumdirectargs => '1', aggtransfn => 'ordered_set_transition', + aggfinalfn => 'percentile_cont_float8_multi_final', aggfinalmodify => 's', + aggmfinalmodify => 's', aggtranstype => 'internal' }, +{ aggfnoid => 'percentile_cont(_float8,interval)', aggkind => 'o', + aggnumdirectargs => '1', aggtransfn => 'ordered_set_transition', + aggfinalfn => 'percentile_cont_interval_multi_final', aggfinalmodify => 's', + aggmfinalmodify => 's', aggtranstype => 'internal' }, +{ aggfnoid => 'mode', aggkind => 'o', aggtransfn => 'ordered_set_transition', + aggfinalfn => 'mode_final', aggfinalextra => 't', aggfinalmodify => 's', + aggmfinalmodify => 's', aggtranstype => 'internal' }, +{ aggfnoid => 'rank(any)', aggkind => 'h', aggnumdirectargs => '1', + aggtransfn => 'ordered_set_transition_multi', aggfinalfn => 'rank_final', + aggfinalextra => 't', aggfinalmodify => 'w', aggmfinalmodify => 'w', + aggtranstype => 'internal' }, +{ aggfnoid => 'percent_rank(any)', aggkind => 'h', aggnumdirectargs => '1', + aggtransfn => 'ordered_set_transition_multi', + aggfinalfn => 'percent_rank_final', aggfinalextra => 't', + aggfinalmodify => 'w', aggmfinalmodify => 'w', aggtranstype => 'internal' }, +{ aggfnoid => 'cume_dist(any)', aggkind => 'h', aggnumdirectargs => '1', + aggtransfn => 'ordered_set_transition_multi', aggfinalfn => 'cume_dist_final', + aggfinalextra => 't', aggfinalmodify => 'w', aggmfinalmodify => 'w', + aggtranstype => 'internal' }, +{ aggfnoid => 'dense_rank(any)', aggkind => 'h', aggnumdirectargs => '1', + aggtransfn => 'ordered_set_transition_multi', + aggfinalfn => 'dense_rank_final', aggfinalextra => 't', aggfinalmodify => 'w', + aggmfinalmodify => 'w', aggtranstype => 'internal' }, + +] diff --git a/src/include/catalog/pg_aggregate.h b/src/include/catalog/pg_aggregate.h index 67a0850c18..79f9ce0c14 100644 --- a/src/include/catalog/pg_aggregate.h +++ b/src/include/catalog/pg_aggregate.h @@ -2,7 +2,6 @@ * * pg_aggregate.h * definition of the system "aggregate" relation (pg_aggregate) - * along with the relation's initial contents. * * * Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group @@ -11,8 +10,8 @@ * src/include/catalog/pg_aggregate.h * * NOTES - * the genbki.pl script reads this file and generates .bki - * information from the DATA() statements. + * The Catalog.pm module reads this file and derives schema + * information. * *------------------------------------------------------------------------- */ @@ -20,64 +19,82 @@ #define PG_AGGREGATE_H #include "catalog/genbki.h" +#include "catalog/pg_aggregate_d.h" /* ---------------------------------------------------------------- * pg_aggregate definition. - * * cpp turns this into typedef struct FormData_pg_aggregate - * - * aggfnoid pg_proc OID of the aggregate itself - * aggkind aggregate kind, see AGGKIND_ categories below - * aggnumdirectargs number of arguments that are "direct" arguments - * aggtransfn transition function - * aggfinalfn final function (0 if none) - * aggcombinefn combine function (0 if none) - * aggserialfn function to convert transtype to bytea (0 if none) - * aggdeserialfn function to convert bytea to transtype (0 if none) - * aggmtransfn forward function for moving-aggregate mode (0 if none) - * aggminvtransfn inverse function for moving-aggregate mode (0 if none) - * aggmfinalfn final function for moving-aggregate mode (0 if none) - * aggfinalextra true to pass extra dummy arguments to aggfinalfn - * aggmfinalextra true to pass extra dummy arguments to aggmfinalfn - * aggfinalmodify tells whether aggfinalfn modifies transition state - * aggmfinalmodify tells whether aggmfinalfn modifies transition state - * aggsortop associated sort operator (0 if none) - * aggtranstype type of aggregate's transition (state) data - * aggtransspace estimated size of state data (0 for default estimate) - * aggmtranstype type of moving-aggregate state data (0 if none) - * aggmtransspace estimated size of moving-agg state (0 for default est) - * agginitval initial value for transition state (can be NULL) - * aggminitval initial value for moving-agg state (can be NULL) * ---------------------------------------------------------------- */ -#define AggregateRelationId 2600 - -CATALOG(pg_aggregate,2600) BKI_WITHOUT_OIDS +CATALOG(pg_aggregate,2600,AggregateRelationId) BKI_WITHOUT_OIDS { - regproc aggfnoid; - char aggkind; - int16 aggnumdirectargs; - regproc aggtransfn; - regproc aggfinalfn; - regproc aggcombinefn; - regproc aggserialfn; - regproc aggdeserialfn; - regproc aggmtransfn; - regproc aggminvtransfn; - regproc aggmfinalfn; - bool aggfinalextra; - bool aggmfinalextra; - char aggfinalmodify; - char aggmfinalmodify; - Oid aggsortop; - Oid aggtranstype; - int32 aggtransspace; - Oid aggmtranstype; - int32 aggmtransspace; + /* pg_proc OID of the aggregate itself */ + regproc aggfnoid BKI_LOOKUP(pg_proc); + + /* aggregate kind, see AGGKIND_ categories below */ + char aggkind BKI_DEFAULT(n); + + /* number of arguments that are "direct" arguments */ + int16 aggnumdirectargs BKI_DEFAULT(0); + + /* transition function */ + regproc aggtransfn BKI_LOOKUP(pg_proc); + + /* final function (0 if none) */ + regproc aggfinalfn BKI_DEFAULT(-) BKI_LOOKUP(pg_proc); + + /* combine function (0 if none) */ + regproc aggcombinefn BKI_DEFAULT(-) BKI_LOOKUP(pg_proc); + + /* function to convert transtype to bytea (0 if none) */ + regproc aggserialfn BKI_DEFAULT(-) BKI_LOOKUP(pg_proc); + + /* function to convert bytea to transtype (0 if none) */ + regproc aggdeserialfn BKI_DEFAULT(-) BKI_LOOKUP(pg_proc); + + /* forward function for moving-aggregate mode (0 if none) */ + regproc aggmtransfn BKI_DEFAULT(-) BKI_LOOKUP(pg_proc); + + /* inverse function for moving-aggregate mode (0 if none) */ + regproc aggminvtransfn BKI_DEFAULT(-) BKI_LOOKUP(pg_proc); + + /* final function for moving-aggregate mode (0 if none) */ + regproc aggmfinalfn BKI_DEFAULT(-) BKI_LOOKUP(pg_proc); + + /* true to pass extra dummy arguments to aggfinalfn */ + bool aggfinalextra BKI_DEFAULT(f); + + /* true to pass extra dummy arguments to aggmfinalfn */ + bool aggmfinalextra BKI_DEFAULT(f); + + /* tells whether aggfinalfn modifies transition state */ + char aggfinalmodify BKI_DEFAULT(r); + + /* tells whether aggmfinalfn modifies transition state */ + char aggmfinalmodify BKI_DEFAULT(r); + + /* associated sort operator (0 if none) */ + Oid aggsortop BKI_DEFAULT(0) BKI_LOOKUP(pg_operator); + + /* type of aggregate's transition (state) data */ + Oid aggtranstype BKI_LOOKUP(pg_type); + + /* estimated size of state data (0 for default estimate) */ + int32 aggtransspace BKI_DEFAULT(0); + + /* type of moving-aggregate state data (0 if none) */ + Oid aggmtranstype BKI_DEFAULT(0) BKI_LOOKUP(pg_type); + + /* estimated size of moving-agg state (0 for default est) */ + int32 aggmtransspace BKI_DEFAULT(0); #ifdef CATALOG_VARLEN /* variable-length fields start here */ - text agginitval; - text aggminitval; + + /* initial value for transition state (can be NULL) */ + text agginitval BKI_DEFAULT(_null_); + + /* initial value for moving-agg state (can be NULL) */ + text aggminitval BKI_DEFAULT(_null_); #endif } FormData_pg_aggregate; @@ -88,34 +105,7 @@ CATALOG(pg_aggregate,2600) BKI_WITHOUT_OIDS */ typedef FormData_pg_aggregate *Form_pg_aggregate; -/* ---------------- - * compiler constants for pg_aggregate - * ---------------- - */ - -#define Natts_pg_aggregate 22 -#define Anum_pg_aggregate_aggfnoid 1 -#define Anum_pg_aggregate_aggkind 2 -#define Anum_pg_aggregate_aggnumdirectargs 3 -#define Anum_pg_aggregate_aggtransfn 4 -#define Anum_pg_aggregate_aggfinalfn 5 -#define Anum_pg_aggregate_aggcombinefn 6 -#define Anum_pg_aggregate_aggserialfn 7 -#define Anum_pg_aggregate_aggdeserialfn 8 -#define Anum_pg_aggregate_aggmtransfn 9 -#define Anum_pg_aggregate_aggminvtransfn 10 -#define Anum_pg_aggregate_aggmfinalfn 11 -#define Anum_pg_aggregate_aggfinalextra 12 -#define Anum_pg_aggregate_aggmfinalextra 13 -#define Anum_pg_aggregate_aggfinalmodify 14 -#define Anum_pg_aggregate_aggmfinalmodify 15 -#define Anum_pg_aggregate_aggsortop 16 -#define Anum_pg_aggregate_aggtranstype 17 -#define Anum_pg_aggregate_aggtransspace 18 -#define Anum_pg_aggregate_aggmtranstype 19 -#define Anum_pg_aggregate_aggmtransspace 20 -#define Anum_pg_aggregate_agginitval 21 -#define Anum_pg_aggregate_aggminitval 22 +#ifdef EXPOSE_TO_CLIENT_CODE /* * Symbolic values for aggkind column. We distinguish normal aggregates @@ -144,190 +134,6 @@ typedef FormData_pg_aggregate *Form_pg_aggregate; #define AGGMODIFY_SHARABLE 's' #define AGGMODIFY_READ_WRITE 'w' - -/* ---------------- - * initial contents of pg_aggregate - * --------------- - */ - -/* avg */ -DATA(insert ( 2100 n 0 int8_avg_accum numeric_poly_avg int8_avg_combine int8_avg_serialize int8_avg_deserialize int8_avg_accum int8_avg_accum_inv numeric_poly_avg f f r r 0 2281 48 2281 48 _null_ _null_ )); -DATA(insert ( 2101 n 0 int4_avg_accum int8_avg int4_avg_combine - - int4_avg_accum int4_avg_accum_inv int8_avg f f r r 0 1016 0 1016 0 "{0,0}" "{0,0}" )); -DATA(insert ( 2102 n 0 int2_avg_accum int8_avg int4_avg_combine - - int2_avg_accum int2_avg_accum_inv int8_avg f f r r 0 1016 0 1016 0 "{0,0}" "{0,0}" )); -DATA(insert ( 2103 n 0 numeric_avg_accum numeric_avg numeric_avg_combine numeric_avg_serialize numeric_avg_deserialize numeric_avg_accum numeric_accum_inv numeric_avg f f r r 0 2281 128 2281 128 _null_ _null_ )); -DATA(insert ( 2104 n 0 float4_accum float8_avg float8_combine - - - - - f f r r 0 1022 0 0 0 "{0,0,0}" _null_ )); -DATA(insert ( 2105 n 0 float8_accum float8_avg float8_combine - - - - - f f r r 0 1022 0 0 0 "{0,0,0}" _null_ )); -DATA(insert ( 2106 n 0 interval_accum interval_avg interval_combine - - interval_accum interval_accum_inv interval_avg f f r r 0 1187 0 1187 0 "{0 second,0 second}" "{0 second,0 second}" )); - -/* sum */ -DATA(insert ( 2107 n 0 int8_avg_accum numeric_poly_sum int8_avg_combine int8_avg_serialize int8_avg_deserialize int8_avg_accum int8_avg_accum_inv numeric_poly_sum f f r r 0 2281 48 2281 48 _null_ _null_ )); -DATA(insert ( 2108 n 0 int4_sum - int8pl - - int4_avg_accum int4_avg_accum_inv int2int4_sum f f r r 0 20 0 1016 0 _null_ "{0,0}" )); -DATA(insert ( 2109 n 0 int2_sum - int8pl - - int2_avg_accum int2_avg_accum_inv int2int4_sum f f r r 0 20 0 1016 0 _null_ "{0,0}" )); -DATA(insert ( 2110 n 0 float4pl - float4pl - - - - - f f r r 0 700 0 0 0 _null_ _null_ )); -DATA(insert ( 2111 n 0 float8pl - float8pl - - - - - f f r r 0 701 0 0 0 _null_ _null_ )); -DATA(insert ( 2112 n 0 cash_pl - cash_pl - - cash_pl cash_mi - f f r r 0 790 0 790 0 _null_ _null_ )); -DATA(insert ( 2113 n 0 interval_pl - interval_pl - - interval_pl interval_mi - f f r r 0 1186 0 1186 0 _null_ _null_ )); -DATA(insert ( 2114 n 0 numeric_avg_accum numeric_sum numeric_avg_combine numeric_avg_serialize numeric_avg_deserialize numeric_avg_accum numeric_accum_inv numeric_sum f f r r 0 2281 128 2281 128 _null_ _null_ )); - -/* max */ -DATA(insert ( 2115 n 0 int8larger - int8larger - - - - - f f r r 413 20 0 0 0 _null_ _null_ )); -DATA(insert ( 2116 n 0 int4larger - int4larger - - - - - f f r r 521 23 0 0 0 _null_ _null_ )); -DATA(insert ( 2117 n 0 int2larger - int2larger - - - - - f f r r 520 21 0 0 0 _null_ _null_ )); -DATA(insert ( 2118 n 0 oidlarger - oidlarger - - - - - f f r r 610 26 0 0 0 _null_ _null_ )); -DATA(insert ( 2119 n 0 float4larger - float4larger - - - - - f f r r 623 700 0 0 0 _null_ _null_ )); -DATA(insert ( 2120 n 0 float8larger - float8larger - - - - - f f r r 674 701 0 0 0 _null_ _null_ )); -DATA(insert ( 2121 n 0 int4larger - int4larger - - - - - f f r r 563 702 0 0 0 _null_ _null_ )); -DATA(insert ( 2122 n 0 date_larger - date_larger - - - - - f f r r 1097 1082 0 0 0 _null_ _null_ )); -DATA(insert ( 2123 n 0 time_larger - time_larger - - - - - f f r r 1112 1083 0 0 0 _null_ _null_ )); -DATA(insert ( 2124 n 0 timetz_larger - timetz_larger - - - - - f f r r 1554 1266 0 0 0 _null_ _null_ )); -DATA(insert ( 2125 n 0 cashlarger - cashlarger - - - - - f f r r 903 790 0 0 0 _null_ _null_ )); -DATA(insert ( 2126 n 0 timestamp_larger - timestamp_larger - - - - - f f r r 2064 1114 0 0 0 _null_ _null_ )); -DATA(insert ( 2127 n 0 timestamptz_larger - timestamptz_larger - - - - - f f r r 1324 1184 0 0 0 _null_ _null_ )); -DATA(insert ( 2128 n 0 interval_larger - interval_larger - - - - - f f r r 1334 1186 0 0 0 _null_ _null_ )); -DATA(insert ( 2129 n 0 text_larger - text_larger - - - - - f f r r 666 25 0 0 0 _null_ _null_ )); -DATA(insert ( 2130 n 0 numeric_larger - numeric_larger - - - - - f f r r 1756 1700 0 0 0 _null_ _null_ )); -DATA(insert ( 2050 n 0 array_larger - array_larger - - - - - f f r r 1073 2277 0 0 0 _null_ _null_ )); -DATA(insert ( 2244 n 0 bpchar_larger - bpchar_larger - - - - - f f r r 1060 1042 0 0 0 _null_ _null_ )); -DATA(insert ( 2797 n 0 tidlarger - tidlarger - - - - - f f r r 2800 27 0 0 0 _null_ _null_ )); -DATA(insert ( 3526 n 0 enum_larger - enum_larger - - - - - f f r r 3519 3500 0 0 0 _null_ _null_ )); -DATA(insert ( 3564 n 0 network_larger - network_larger - - - - - f f r r 1205 869 0 0 0 _null_ _null_ )); - -/* min */ -DATA(insert ( 2131 n 0 int8smaller - int8smaller - - - - - f f r r 412 20 0 0 0 _null_ _null_ )); -DATA(insert ( 2132 n 0 int4smaller - int4smaller - - - - - f f r r 97 23 0 0 0 _null_ _null_ )); -DATA(insert ( 2133 n 0 int2smaller - int2smaller - - - - - f f r r 95 21 0 0 0 _null_ _null_ )); -DATA(insert ( 2134 n 0 oidsmaller - oidsmaller - - - - - f f r r 609 26 0 0 0 _null_ _null_ )); -DATA(insert ( 2135 n 0 float4smaller - float4smaller - - - - - f f r r 622 700 0 0 0 _null_ _null_ )); -DATA(insert ( 2136 n 0 float8smaller - float8smaller - - - - - f f r r 672 701 0 0 0 _null_ _null_ )); -DATA(insert ( 2137 n 0 int4smaller - int4smaller - - - - - f f r r 562 702 0 0 0 _null_ _null_ )); -DATA(insert ( 2138 n 0 date_smaller - date_smaller - - - - - f f r r 1095 1082 0 0 0 _null_ _null_ )); -DATA(insert ( 2139 n 0 time_smaller - time_smaller - - - - - f f r r 1110 1083 0 0 0 _null_ _null_ )); -DATA(insert ( 2140 n 0 timetz_smaller - timetz_smaller - - - - - f f r r 1552 1266 0 0 0 _null_ _null_ )); -DATA(insert ( 2141 n 0 cashsmaller - cashsmaller - - - - - f f r r 902 790 0 0 0 _null_ _null_ )); -DATA(insert ( 2142 n 0 timestamp_smaller - timestamp_smaller - - - - - f f r r 2062 1114 0 0 0 _null_ _null_ )); -DATA(insert ( 2143 n 0 timestamptz_smaller - timestamptz_smaller - - - - - f f r r 1322 1184 0 0 0 _null_ _null_ )); -DATA(insert ( 2144 n 0 interval_smaller - interval_smaller - - - - - f f r r 1332 1186 0 0 0 _null_ _null_ )); -DATA(insert ( 2145 n 0 text_smaller - text_smaller - - - - - f f r r 664 25 0 0 0 _null_ _null_ )); -DATA(insert ( 2146 n 0 numeric_smaller - numeric_smaller - - - - - f f r r 1754 1700 0 0 0 _null_ _null_ )); -DATA(insert ( 2051 n 0 array_smaller - array_smaller - - - - - f f r r 1072 2277 0 0 0 _null_ _null_ )); -DATA(insert ( 2245 n 0 bpchar_smaller - bpchar_smaller - - - - - f f r r 1058 1042 0 0 0 _null_ _null_ )); -DATA(insert ( 2798 n 0 tidsmaller - tidsmaller - - - - - f f r r 2799 27 0 0 0 _null_ _null_ )); -DATA(insert ( 3527 n 0 enum_smaller - enum_smaller - - - - - f f r r 3518 3500 0 0 0 _null_ _null_ )); -DATA(insert ( 3565 n 0 network_smaller - network_smaller - - - - - f f r r 1203 869 0 0 0 _null_ _null_ )); - -/* count */ -DATA(insert ( 2147 n 0 int8inc_any - int8pl - - int8inc_any int8dec_any - f f r r 0 20 0 20 0 0 0 )); -DATA(insert ( 2803 n 0 int8inc - int8pl - - int8inc int8dec - f f r r 0 20 0 20 0 0 0 )); - -/* var_pop */ -DATA(insert ( 2718 n 0 int8_accum numeric_var_pop numeric_combine numeric_serialize numeric_deserialize int8_accum int8_accum_inv numeric_var_pop f f r r 0 2281 128 2281 128 _null_ _null_ )); -DATA(insert ( 2719 n 0 int4_accum numeric_poly_var_pop numeric_poly_combine numeric_poly_serialize numeric_poly_deserialize int4_accum int4_accum_inv numeric_poly_var_pop f f r r 0 2281 48 2281 48 _null_ _null_ )); -DATA(insert ( 2720 n 0 int2_accum numeric_poly_var_pop numeric_poly_combine numeric_poly_serialize numeric_poly_deserialize int2_accum int2_accum_inv numeric_poly_var_pop f f r r 0 2281 48 2281 48 _null_ _null_ )); -DATA(insert ( 2721 n 0 float4_accum float8_var_pop float8_combine - - - - - f f r r 0 1022 0 0 0 "{0,0,0}" _null_ )); -DATA(insert ( 2722 n 0 float8_accum float8_var_pop float8_combine - - - - - f f r r 0 1022 0 0 0 "{0,0,0}" _null_ )); -DATA(insert ( 2723 n 0 numeric_accum numeric_var_pop numeric_combine numeric_serialize numeric_deserialize numeric_accum numeric_accum_inv numeric_var_pop f f r r 0 2281 128 2281 128 _null_ _null_ )); - -/* var_samp */ -DATA(insert ( 2641 n 0 int8_accum numeric_var_samp numeric_combine numeric_serialize numeric_deserialize int8_accum int8_accum_inv numeric_var_samp f f r r 0 2281 128 2281 128 _null_ _null_ )); -DATA(insert ( 2642 n 0 int4_accum numeric_poly_var_samp numeric_poly_combine numeric_poly_serialize numeric_poly_deserialize int4_accum int4_accum_inv numeric_poly_var_samp f f r r 0 2281 48 2281 48 _null_ _null_ )); -DATA(insert ( 2643 n 0 int2_accum numeric_poly_var_samp numeric_poly_combine numeric_poly_serialize numeric_poly_deserialize int2_accum int2_accum_inv numeric_poly_var_samp f f r r 0 2281 48 2281 48 _null_ _null_ )); -DATA(insert ( 2644 n 0 float4_accum float8_var_samp float8_combine - - - - - f f r r 0 1022 0 0 0 "{0,0,0}" _null_ )); -DATA(insert ( 2645 n 0 float8_accum float8_var_samp float8_combine - - - - - f f r r 0 1022 0 0 0 "{0,0,0}" _null_ )); -DATA(insert ( 2646 n 0 numeric_accum numeric_var_samp numeric_combine numeric_serialize numeric_deserialize numeric_accum numeric_accum_inv numeric_var_samp f f r r 0 2281 128 2281 128 _null_ _null_ )); - -/* variance: historical Postgres syntax for var_samp */ -DATA(insert ( 2148 n 0 int8_accum numeric_var_samp numeric_combine numeric_serialize numeric_deserialize int8_accum int8_accum_inv numeric_var_samp f f r r 0 2281 128 2281 128 _null_ _null_ )); -DATA(insert ( 2149 n 0 int4_accum numeric_poly_var_samp numeric_poly_combine numeric_poly_serialize numeric_poly_deserialize int4_accum int4_accum_inv numeric_poly_var_samp f f r r 0 2281 48 2281 48 _null_ _null_ )); -DATA(insert ( 2150 n 0 int2_accum numeric_poly_var_samp numeric_poly_combine numeric_poly_serialize numeric_poly_deserialize int2_accum int2_accum_inv numeric_poly_var_samp f f r r 0 2281 48 2281 48 _null_ _null_ )); -DATA(insert ( 2151 n 0 float4_accum float8_var_samp float8_combine - - - - - f f r r 0 1022 0 0 0 "{0,0,0}" _null_ )); -DATA(insert ( 2152 n 0 float8_accum float8_var_samp float8_combine - - - - - f f r r 0 1022 0 0 0 "{0,0,0}" _null_ )); -DATA(insert ( 2153 n 0 numeric_accum numeric_var_samp numeric_combine numeric_serialize numeric_deserialize numeric_accum numeric_accum_inv numeric_var_samp f f r r 0 2281 128 2281 128 _null_ _null_ )); - -/* stddev_pop */ -DATA(insert ( 2724 n 0 int8_accum numeric_stddev_pop numeric_combine numeric_serialize numeric_deserialize int8_accum int8_accum_inv numeric_stddev_pop f f r r 0 2281 128 2281 128 _null_ _null_ )); -DATA(insert ( 2725 n 0 int4_accum numeric_poly_stddev_pop numeric_poly_combine numeric_poly_serialize numeric_poly_deserialize int4_accum int4_accum_inv numeric_poly_stddev_pop f f r r 0 2281 48 2281 48 _null_ _null_ )); -DATA(insert ( 2726 n 0 int2_accum numeric_poly_stddev_pop numeric_poly_combine numeric_poly_serialize numeric_poly_deserialize int2_accum int2_accum_inv numeric_poly_stddev_pop f f r r 0 2281 48 2281 48 _null_ _null_ )); -DATA(insert ( 2727 n 0 float4_accum float8_stddev_pop float8_combine - - - - - f f r r 0 1022 0 0 0 "{0,0,0}" _null_ )); -DATA(insert ( 2728 n 0 float8_accum float8_stddev_pop float8_combine - - - - - f f r r 0 1022 0 0 0 "{0,0,0}" _null_ )); -DATA(insert ( 2729 n 0 numeric_accum numeric_stddev_pop numeric_combine numeric_serialize numeric_deserialize numeric_accum numeric_accum_inv numeric_stddev_pop f f r r 0 2281 128 2281 128 _null_ _null_ )); - -/* stddev_samp */ -DATA(insert ( 2712 n 0 int8_accum numeric_stddev_samp numeric_combine numeric_serialize numeric_deserialize int8_accum int8_accum_inv numeric_stddev_samp f f r r 0 2281 128 2281 128 _null_ _null_ )); -DATA(insert ( 2713 n 0 int4_accum numeric_poly_stddev_samp numeric_poly_combine numeric_poly_serialize numeric_poly_deserialize int4_accum int4_accum_inv numeric_poly_stddev_samp f f r r 0 2281 48 2281 48 _null_ _null_ )); -DATA(insert ( 2714 n 0 int2_accum numeric_poly_stddev_samp numeric_poly_combine numeric_poly_serialize numeric_poly_deserialize int2_accum int2_accum_inv numeric_poly_stddev_samp f f r r 0 2281 48 2281 48 _null_ _null_ )); -DATA(insert ( 2715 n 0 float4_accum float8_stddev_samp float8_combine - - - - - f f r r 0 1022 0 0 0 "{0,0,0}" _null_ )); -DATA(insert ( 2716 n 0 float8_accum float8_stddev_samp float8_combine - - - - - f f r r 0 1022 0 0 0 "{0,0,0}" _null_ )); -DATA(insert ( 2717 n 0 numeric_accum numeric_stddev_samp numeric_combine numeric_serialize numeric_deserialize numeric_accum numeric_accum_inv numeric_stddev_samp f f r r 0 2281 128 2281 128 _null_ _null_ )); - -/* stddev: historical Postgres syntax for stddev_samp */ -DATA(insert ( 2154 n 0 int8_accum numeric_stddev_samp numeric_combine numeric_serialize numeric_deserialize int8_accum int8_accum_inv numeric_stddev_samp f f r r 0 2281 128 2281 128 _null_ _null_ )); -DATA(insert ( 2155 n 0 int4_accum numeric_poly_stddev_samp numeric_poly_combine numeric_poly_serialize numeric_poly_deserialize int4_accum int4_accum_inv numeric_poly_stddev_samp f f r r 0 2281 48 2281 48 _null_ _null_ )); -DATA(insert ( 2156 n 0 int2_accum numeric_poly_stddev_samp numeric_poly_combine numeric_poly_serialize numeric_poly_deserialize int2_accum int2_accum_inv numeric_poly_stddev_samp f f r r 0 2281 48 2281 48 _null_ _null_ )); -DATA(insert ( 2157 n 0 float4_accum float8_stddev_samp float8_combine - - - - - f f r r 0 1022 0 0 0 "{0,0,0}" _null_ )); -DATA(insert ( 2158 n 0 float8_accum float8_stddev_samp float8_combine - - - - - f f r r 0 1022 0 0 0 "{0,0,0}" _null_ )); -DATA(insert ( 2159 n 0 numeric_accum numeric_stddev_samp numeric_combine numeric_serialize numeric_deserialize numeric_accum numeric_accum_inv numeric_stddev_samp f f r r 0 2281 128 2281 128 _null_ _null_ )); - -/* SQL2003 binary regression aggregates */ -DATA(insert ( 2818 n 0 int8inc_float8_float8 - int8pl - - - - - f f r r 0 20 0 0 0 0 _null_ )); -DATA(insert ( 2819 n 0 float8_regr_accum float8_regr_sxx float8_regr_combine - - - - - f f r r 0 1022 0 0 0 "{0,0,0,0,0,0}" _null_ )); -DATA(insert ( 2820 n 0 float8_regr_accum float8_regr_syy float8_regr_combine - - - - - f f r r 0 1022 0 0 0 "{0,0,0,0,0,0}" _null_ )); -DATA(insert ( 2821 n 0 float8_regr_accum float8_regr_sxy float8_regr_combine - - - - - f f r r 0 1022 0 0 0 "{0,0,0,0,0,0}" _null_ )); -DATA(insert ( 2822 n 0 float8_regr_accum float8_regr_avgx float8_regr_combine - - - - - f f r r 0 1022 0 0 0 "{0,0,0,0,0,0}" _null_ )); -DATA(insert ( 2823 n 0 float8_regr_accum float8_regr_avgy float8_regr_combine - - - - - f f r r 0 1022 0 0 0 "{0,0,0,0,0,0}" _null_ )); -DATA(insert ( 2824 n 0 float8_regr_accum float8_regr_r2 float8_regr_combine - - - - - f f r r 0 1022 0 0 0 "{0,0,0,0,0,0}" _null_ )); -DATA(insert ( 2825 n 0 float8_regr_accum float8_regr_slope float8_regr_combine - - - - - f f r r 0 1022 0 0 0 "{0,0,0,0,0,0}" _null_ )); -DATA(insert ( 2826 n 0 float8_regr_accum float8_regr_intercept float8_regr_combine - - - - - f f r r 0 1022 0 0 0 "{0,0,0,0,0,0}" _null_ )); -DATA(insert ( 2827 n 0 float8_regr_accum float8_covar_pop float8_regr_combine - - - - - f f r r 0 1022 0 0 0 "{0,0,0,0,0,0}" _null_ )); -DATA(insert ( 2828 n 0 float8_regr_accum float8_covar_samp float8_regr_combine - - - - - f f r r 0 1022 0 0 0 "{0,0,0,0,0,0}" _null_ )); -DATA(insert ( 2829 n 0 float8_regr_accum float8_corr float8_regr_combine - - - - - f f r r 0 1022 0 0 0 "{0,0,0,0,0,0}" _null_ )); - -/* boolean-and and boolean-or */ -DATA(insert ( 2517 n 0 booland_statefunc - booland_statefunc - - bool_accum bool_accum_inv bool_alltrue f f r r 58 16 0 2281 16 _null_ _null_ )); -DATA(insert ( 2518 n 0 boolor_statefunc - boolor_statefunc - - bool_accum bool_accum_inv bool_anytrue f f r r 59 16 0 2281 16 _null_ _null_ )); -DATA(insert ( 2519 n 0 booland_statefunc - booland_statefunc - - bool_accum bool_accum_inv bool_alltrue f f r r 58 16 0 2281 16 _null_ _null_ )); - -/* bitwise integer */ -DATA(insert ( 2236 n 0 int2and - int2and - - - - - f f r r 0 21 0 0 0 _null_ _null_ )); -DATA(insert ( 2237 n 0 int2or - int2or - - - - - f f r r 0 21 0 0 0 _null_ _null_ )); -DATA(insert ( 2238 n 0 int4and - int4and - - - - - f f r r 0 23 0 0 0 _null_ _null_ )); -DATA(insert ( 2239 n 0 int4or - int4or - - - - - f f r r 0 23 0 0 0 _null_ _null_ )); -DATA(insert ( 2240 n 0 int8and - int8and - - - - - f f r r 0 20 0 0 0 _null_ _null_ )); -DATA(insert ( 2241 n 0 int8or - int8or - - - - - f f r r 0 20 0 0 0 _null_ _null_ )); -DATA(insert ( 2242 n 0 bitand - bitand - - - - - f f r r 0 1560 0 0 0 _null_ _null_ )); -DATA(insert ( 2243 n 0 bitor - bitor - - - - - f f r r 0 1560 0 0 0 _null_ _null_ )); - -/* xml */ -DATA(insert ( 2901 n 0 xmlconcat2 - - - - - - - f f r r 0 142 0 0 0 _null_ _null_ )); - -/* array */ -DATA(insert ( 2335 n 0 array_agg_transfn array_agg_finalfn - - - - - - t f r r 0 2281 0 0 0 _null_ _null_ )); -DATA(insert ( 4053 n 0 array_agg_array_transfn array_agg_array_finalfn - - - - - - t f r r 0 2281 0 0 0 _null_ _null_ )); - -/* text */ -DATA(insert ( 3538 n 0 string_agg_transfn string_agg_finalfn - - - - - - f f r r 0 2281 0 0 0 _null_ _null_ )); - -/* bytea */ -DATA(insert ( 3545 n 0 bytea_string_agg_transfn bytea_string_agg_finalfn - - - - - - f f r r 0 2281 0 0 0 _null_ _null_ )); - -/* json */ -DATA(insert ( 3175 n 0 json_agg_transfn json_agg_finalfn - - - - - - f f r r 0 2281 0 0 0 _null_ _null_ )); -DATA(insert ( 3197 n 0 json_object_agg_transfn json_object_agg_finalfn - - - - - - f f r r 0 2281 0 0 0 _null_ _null_ )); - -/* jsonb */ -DATA(insert ( 3267 n 0 jsonb_agg_transfn jsonb_agg_finalfn - - - - - - f f r r 0 2281 0 0 0 _null_ _null_ )); -DATA(insert ( 3270 n 0 jsonb_object_agg_transfn jsonb_object_agg_finalfn - - - - - - f f r r 0 2281 0 0 0 _null_ _null_ )); - -/* ordered-set and hypothetical-set aggregates */ -DATA(insert ( 3972 o 1 ordered_set_transition percentile_disc_final - - - - - - t f s s 0 2281 0 0 0 _null_ _null_ )); -DATA(insert ( 3974 o 1 ordered_set_transition percentile_cont_float8_final - - - - - - f f s s 0 2281 0 0 0 _null_ _null_ )); -DATA(insert ( 3976 o 1 ordered_set_transition percentile_cont_interval_final - - - - - - f f s s 0 2281 0 0 0 _null_ _null_ )); -DATA(insert ( 3978 o 1 ordered_set_transition percentile_disc_multi_final - - - - - - t f s s 0 2281 0 0 0 _null_ _null_ )); -DATA(insert ( 3980 o 1 ordered_set_transition percentile_cont_float8_multi_final - - - - - - f f s s 0 2281 0 0 0 _null_ _null_ )); -DATA(insert ( 3982 o 1 ordered_set_transition percentile_cont_interval_multi_final - - - - - - f f s s 0 2281 0 0 0 _null_ _null_ )); -DATA(insert ( 3984 o 0 ordered_set_transition mode_final - - - - - - t f s s 0 2281 0 0 0 _null_ _null_ )); -DATA(insert ( 3986 h 1 ordered_set_transition_multi rank_final - - - - - - t f w w 0 2281 0 0 0 _null_ _null_ )); -DATA(insert ( 3988 h 1 ordered_set_transition_multi percent_rank_final - - - - - - t f w w 0 2281 0 0 0 _null_ _null_ )); -DATA(insert ( 3990 h 1 ordered_set_transition_multi cume_dist_final - - - - - - t f w w 0 2281 0 0 0 _null_ _null_ )); -DATA(insert ( 3992 h 1 ordered_set_transition_multi dense_rank_final - - - - - - t f w w 0 2281 0 0 0 _null_ _null_ )); +#endif /* EXPOSE_TO_CLIENT_CODE */ #endif /* PG_AGGREGATE_H */ diff --git a/src/include/catalog/pg_am.dat b/src/include/catalog/pg_am.dat new file mode 100644 index 0000000000..8722cacaae --- /dev/null +++ b/src/include/catalog/pg_am.dat @@ -0,0 +1,34 @@ +#---------------------------------------------------------------------- +# +# pg_am.dat +# Initial contents of the pg_am system relation. +# +# Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group +# Portions Copyright (c) 1994, Regents of the University of California +# +# src/include/catalog/pg_am.dat +# +#---------------------------------------------------------------------- + +[ + +{ oid => '403', oid_symbol => 'BTREE_AM_OID', + descr => 'b-tree index access method', + amname => 'btree', amhandler => 'bthandler', amtype => 'i' }, +{ oid => '405', oid_symbol => 'HASH_AM_OID', + descr => 'hash index access method', + amname => 'hash', amhandler => 'hashhandler', amtype => 'i' }, +{ oid => '783', oid_symbol => 'GIST_AM_OID', + descr => 'GiST index access method', + amname => 'gist', amhandler => 'gisthandler', amtype => 'i' }, +{ oid => '2742', oid_symbol => 'GIN_AM_OID', + descr => 'GIN index access method', + amname => 'gin', amhandler => 'ginhandler', amtype => 'i' }, +{ oid => '4000', oid_symbol => 'SPGIST_AM_OID', + descr => 'SP-GiST index access method', + amname => 'spgist', amhandler => 'spghandler', amtype => 'i' }, +{ oid => '3580', oid_symbol => 'BRIN_AM_OID', + descr => 'block range index (BRIN) access method', + amname => 'brin', amhandler => 'brinhandler', amtype => 'i' }, + +] diff --git a/src/include/catalog/pg_am.h b/src/include/catalog/pg_am.h index 2e785c4cec..f821749af8 100644 --- a/src/include/catalog/pg_am.h +++ b/src/include/catalog/pg_am.h @@ -2,7 +2,6 @@ * * pg_am.h * definition of the system "access method" relation (pg_am) - * along with the relation's initial contents. * * * Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group @@ -11,11 +10,8 @@ * src/include/catalog/pg_am.h * * NOTES - * the genbki.pl script reads this file and generates .bki - * information from the DATA() statements. - * - * XXX do NOT break up DATA() statements into multiple lines! - * the scripts are not as smart as you might think... + * The Catalog.pm module reads this file and derives schema + * information. * *------------------------------------------------------------------------- */ @@ -23,19 +19,23 @@ #define PG_AM_H #include "catalog/genbki.h" +#include "catalog/pg_am_d.h" /* ---------------- * pg_am definition. cpp turns this into * typedef struct FormData_pg_am * ---------------- */ -#define AccessMethodRelationId 2601 - -CATALOG(pg_am,2601) +CATALOG(pg_am,2601,AccessMethodRelationId) { - NameData amname; /* access method name */ - regproc amhandler; /* handler function */ - char amtype; /* see AMTYPE_xxx constants below */ + /* access method name */ + NameData amname; + + /* handler function */ + regproc amhandler BKI_LOOKUP(pg_proc); + + /* see AMTYPE_xxx constants below */ + char amtype; } FormData_pg_am; /* ---------------- @@ -45,43 +45,13 @@ CATALOG(pg_am,2601) */ typedef FormData_pg_am *Form_pg_am; -/* ---------------- - * compiler constants for pg_am - * ---------------- - */ -#define Natts_pg_am 3 -#define Anum_pg_am_amname 1 -#define Anum_pg_am_amhandler 2 -#define Anum_pg_am_amtype 3 +#ifdef EXPOSE_TO_CLIENT_CODE -/* ---------------- - * compiler constant for amtype - * ---------------- +/* + * Allowed values for amtype */ #define AMTYPE_INDEX 'i' /* index access method */ -/* ---------------- - * initial contents of pg_am - * ---------------- - */ - -DATA(insert OID = 403 ( btree bthandler i )); -DESCR("b-tree index access method"); -#define BTREE_AM_OID 403 -DATA(insert OID = 405 ( hash hashhandler i )); -DESCR("hash index access method"); -#define HASH_AM_OID 405 -DATA(insert OID = 783 ( gist gisthandler i )); -DESCR("GiST index access method"); -#define GIST_AM_OID 783 -DATA(insert OID = 2742 ( gin ginhandler i )); -DESCR("GIN index access method"); -#define GIN_AM_OID 2742 -DATA(insert OID = 4000 ( spgist spghandler i )); -DESCR("SP-GiST index access method"); -#define SPGIST_AM_OID 4000 -DATA(insert OID = 3580 ( brin brinhandler i )); -DESCR("block range index (BRIN) access method"); -#define BRIN_AM_OID 3580 +#endif /* EXPOSE_TO_CLIENT_CODE */ #endif /* PG_AM_H */ diff --git a/src/include/catalog/pg_amop.dat b/src/include/catalog/pg_amop.dat new file mode 100644 index 0000000000..b1cf8ec5fc --- /dev/null +++ b/src/include/catalog/pg_amop.dat @@ -0,0 +1,2472 @@ +#---------------------------------------------------------------------- +# +# pg_amop.dat +# Initial contents of the pg_amop system relation. +# +# Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group +# Portions Copyright (c) 1994, Regents of the University of California +# +# src/include/catalog/pg_amop.dat +# +#---------------------------------------------------------------------- + +[ + +# btree integer_ops + +# default operators int2 +{ amopfamily => 'btree/integer_ops', amoplefttype => 'int2', + amoprighttype => 'int2', amopstrategy => '1', amopopr => '<(int2,int2)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/integer_ops', amoplefttype => 'int2', + amoprighttype => 'int2', amopstrategy => '2', amopopr => '<=(int2,int2)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/integer_ops', amoplefttype => 'int2', + amoprighttype => 'int2', amopstrategy => '3', amopopr => '=(int2,int2)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/integer_ops', amoplefttype => 'int2', + amoprighttype => 'int2', amopstrategy => '4', amopopr => '>=(int2,int2)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/integer_ops', amoplefttype => 'int2', + amoprighttype => 'int2', amopstrategy => '5', amopopr => '>(int2,int2)', + amopmethod => 'btree' }, + +# crosstype operators int24 +{ amopfamily => 'btree/integer_ops', amoplefttype => 'int2', + amoprighttype => 'int4', amopstrategy => '1', amopopr => '<(int2,int4)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/integer_ops', amoplefttype => 'int2', + amoprighttype => 'int4', amopstrategy => '2', amopopr => '<=(int2,int4)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/integer_ops', amoplefttype => 'int2', + amoprighttype => 'int4', amopstrategy => '3', amopopr => '=(int2,int4)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/integer_ops', amoplefttype => 'int2', + amoprighttype => 'int4', amopstrategy => '4', amopopr => '>=(int2,int4)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/integer_ops', amoplefttype => 'int2', + amoprighttype => 'int4', amopstrategy => '5', amopopr => '>(int2,int4)', + amopmethod => 'btree' }, + +# crosstype operators int28 +{ amopfamily => 'btree/integer_ops', amoplefttype => 'int2', + amoprighttype => 'int8', amopstrategy => '1', amopopr => '<(int2,int8)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/integer_ops', amoplefttype => 'int2', + amoprighttype => 'int8', amopstrategy => '2', amopopr => '<=(int2,int8)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/integer_ops', amoplefttype => 'int2', + amoprighttype => 'int8', amopstrategy => '3', amopopr => '=(int2,int8)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/integer_ops', amoplefttype => 'int2', + amoprighttype => 'int8', amopstrategy => '4', amopopr => '>=(int2,int8)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/integer_ops', amoplefttype => 'int2', + amoprighttype => 'int8', amopstrategy => '5', amopopr => '>(int2,int8)', + amopmethod => 'btree' }, + +# default operators int4 +{ amopfamily => 'btree/integer_ops', amoplefttype => 'int4', + amoprighttype => 'int4', amopstrategy => '1', amopopr => '<(int4,int4)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/integer_ops', amoplefttype => 'int4', + amoprighttype => 'int4', amopstrategy => '2', amopopr => '<=(int4,int4)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/integer_ops', amoplefttype => 'int4', + amoprighttype => 'int4', amopstrategy => '3', amopopr => '=(int4,int4)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/integer_ops', amoplefttype => 'int4', + amoprighttype => 'int4', amopstrategy => '4', amopopr => '>=(int4,int4)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/integer_ops', amoplefttype => 'int4', + amoprighttype => 'int4', amopstrategy => '5', amopopr => '>(int4,int4)', + amopmethod => 'btree' }, + +# crosstype operators int42 +{ amopfamily => 'btree/integer_ops', amoplefttype => 'int4', + amoprighttype => 'int2', amopstrategy => '1', amopopr => '<(int4,int2)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/integer_ops', amoplefttype => 'int4', + amoprighttype => 'int2', amopstrategy => '2', amopopr => '<=(int4,int2)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/integer_ops', amoplefttype => 'int4', + amoprighttype => 'int2', amopstrategy => '3', amopopr => '=(int4,int2)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/integer_ops', amoplefttype => 'int4', + amoprighttype => 'int2', amopstrategy => '4', amopopr => '>=(int4,int2)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/integer_ops', amoplefttype => 'int4', + amoprighttype => 'int2', amopstrategy => '5', amopopr => '>(int4,int2)', + amopmethod => 'btree' }, + +# crosstype operators int48 +{ amopfamily => 'btree/integer_ops', amoplefttype => 'int4', + amoprighttype => 'int8', amopstrategy => '1', amopopr => '<(int4,int8)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/integer_ops', amoplefttype => 'int4', + amoprighttype => 'int8', amopstrategy => '2', amopopr => '<=(int4,int8)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/integer_ops', amoplefttype => 'int4', + amoprighttype => 'int8', amopstrategy => '3', amopopr => '=(int4,int8)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/integer_ops', amoplefttype => 'int4', + amoprighttype => 'int8', amopstrategy => '4', amopopr => '>=(int4,int8)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/integer_ops', amoplefttype => 'int4', + amoprighttype => 'int8', amopstrategy => '5', amopopr => '>(int4,int8)', + amopmethod => 'btree' }, + +# default operators int8 +{ amopfamily => 'btree/integer_ops', amoplefttype => 'int8', + amoprighttype => 'int8', amopstrategy => '1', amopopr => '<(int8,int8)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/integer_ops', amoplefttype => 'int8', + amoprighttype => 'int8', amopstrategy => '2', amopopr => '<=(int8,int8)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/integer_ops', amoplefttype => 'int8', + amoprighttype => 'int8', amopstrategy => '3', amopopr => '=(int8,int8)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/integer_ops', amoplefttype => 'int8', + amoprighttype => 'int8', amopstrategy => '4', amopopr => '>=(int8,int8)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/integer_ops', amoplefttype => 'int8', + amoprighttype => 'int8', amopstrategy => '5', amopopr => '>(int8,int8)', + amopmethod => 'btree' }, + +# crosstype operators int82 +{ amopfamily => 'btree/integer_ops', amoplefttype => 'int8', + amoprighttype => 'int2', amopstrategy => '1', amopopr => '<(int8,int2)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/integer_ops', amoplefttype => 'int8', + amoprighttype => 'int2', amopstrategy => '2', amopopr => '<=(int8,int2)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/integer_ops', amoplefttype => 'int8', + amoprighttype => 'int2', amopstrategy => '3', amopopr => '=(int8,int2)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/integer_ops', amoplefttype => 'int8', + amoprighttype => 'int2', amopstrategy => '4', amopopr => '>=(int8,int2)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/integer_ops', amoplefttype => 'int8', + amoprighttype => 'int2', amopstrategy => '5', amopopr => '>(int8,int2)', + amopmethod => 'btree' }, + +# crosstype operators int84 +{ amopfamily => 'btree/integer_ops', amoplefttype => 'int8', + amoprighttype => 'int4', amopstrategy => '1', amopopr => '<(int8,int4)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/integer_ops', amoplefttype => 'int8', + amoprighttype => 'int4', amopstrategy => '2', amopopr => '<=(int8,int4)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/integer_ops', amoplefttype => 'int8', + amoprighttype => 'int4', amopstrategy => '3', amopopr => '=(int8,int4)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/integer_ops', amoplefttype => 'int8', + amoprighttype => 'int4', amopstrategy => '4', amopopr => '>=(int8,int4)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/integer_ops', amoplefttype => 'int8', + amoprighttype => 'int4', amopstrategy => '5', amopopr => '>(int8,int4)', + amopmethod => 'btree' }, + +# btree oid_ops + +{ amopfamily => 'btree/oid_ops', amoplefttype => 'oid', amoprighttype => 'oid', + amopstrategy => '1', amopopr => '<(oid,oid)', amopmethod => 'btree' }, +{ amopfamily => 'btree/oid_ops', amoplefttype => 'oid', amoprighttype => 'oid', + amopstrategy => '2', amopopr => '<=(oid,oid)', amopmethod => 'btree' }, +{ amopfamily => 'btree/oid_ops', amoplefttype => 'oid', amoprighttype => 'oid', + amopstrategy => '3', amopopr => '=(oid,oid)', amopmethod => 'btree' }, +{ amopfamily => 'btree/oid_ops', amoplefttype => 'oid', amoprighttype => 'oid', + amopstrategy => '4', amopopr => '>=(oid,oid)', amopmethod => 'btree' }, +{ amopfamily => 'btree/oid_ops', amoplefttype => 'oid', amoprighttype => 'oid', + amopstrategy => '5', amopopr => '>(oid,oid)', amopmethod => 'btree' }, + +# btree tid_ops + +{ amopfamily => 'btree/tid_ops', amoplefttype => 'tid', amoprighttype => 'tid', + amopstrategy => '1', amopopr => '<(tid,tid)', amopmethod => 'btree' }, +{ amopfamily => 'btree/tid_ops', amoplefttype => 'tid', amoprighttype => 'tid', + amopstrategy => '2', amopopr => '<=(tid,tid)', amopmethod => 'btree' }, +{ amopfamily => 'btree/tid_ops', amoplefttype => 'tid', amoprighttype => 'tid', + amopstrategy => '3', amopopr => '=(tid,tid)', amopmethod => 'btree' }, +{ amopfamily => 'btree/tid_ops', amoplefttype => 'tid', amoprighttype => 'tid', + amopstrategy => '4', amopopr => '>=(tid,tid)', amopmethod => 'btree' }, +{ amopfamily => 'btree/tid_ops', amoplefttype => 'tid', amoprighttype => 'tid', + amopstrategy => '5', amopopr => '>(tid,tid)', amopmethod => 'btree' }, + +# btree oidvector_ops + +{ amopfamily => 'btree/oidvector_ops', amoplefttype => 'oidvector', + amoprighttype => 'oidvector', amopstrategy => '1', + amopopr => '<(oidvector,oidvector)', amopmethod => 'btree' }, +{ amopfamily => 'btree/oidvector_ops', amoplefttype => 'oidvector', + amoprighttype => 'oidvector', amopstrategy => '2', + amopopr => '<=(oidvector,oidvector)', amopmethod => 'btree' }, +{ amopfamily => 'btree/oidvector_ops', amoplefttype => 'oidvector', + amoprighttype => 'oidvector', amopstrategy => '3', + amopopr => '=(oidvector,oidvector)', amopmethod => 'btree' }, +{ amopfamily => 'btree/oidvector_ops', amoplefttype => 'oidvector', + amoprighttype => 'oidvector', amopstrategy => '4', + amopopr => '>=(oidvector,oidvector)', amopmethod => 'btree' }, +{ amopfamily => 'btree/oidvector_ops', amoplefttype => 'oidvector', + amoprighttype => 'oidvector', amopstrategy => '5', + amopopr => '>(oidvector,oidvector)', amopmethod => 'btree' }, + +# btree float_ops + +# default operators float4 +{ amopfamily => 'btree/float_ops', amoplefttype => 'float4', + amoprighttype => 'float4', amopstrategy => '1', amopopr => '<(float4,float4)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/float_ops', amoplefttype => 'float4', + amoprighttype => 'float4', amopstrategy => '2', + amopopr => '<=(float4,float4)', amopmethod => 'btree' }, +{ amopfamily => 'btree/float_ops', amoplefttype => 'float4', + amoprighttype => 'float4', amopstrategy => '3', amopopr => '=(float4,float4)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/float_ops', amoplefttype => 'float4', + amoprighttype => 'float4', amopstrategy => '4', + amopopr => '>=(float4,float4)', amopmethod => 'btree' }, +{ amopfamily => 'btree/float_ops', amoplefttype => 'float4', + amoprighttype => 'float4', amopstrategy => '5', amopopr => '>(float4,float4)', + amopmethod => 'btree' }, + +# crosstype operators float48 +{ amopfamily => 'btree/float_ops', amoplefttype => 'float4', + amoprighttype => 'float8', amopstrategy => '1', amopopr => '<(float4,float8)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/float_ops', amoplefttype => 'float4', + amoprighttype => 'float8', amopstrategy => '2', + amopopr => '<=(float4,float8)', amopmethod => 'btree' }, +{ amopfamily => 'btree/float_ops', amoplefttype => 'float4', + amoprighttype => 'float8', amopstrategy => '3', amopopr => '=(float4,float8)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/float_ops', amoplefttype => 'float4', + amoprighttype => 'float8', amopstrategy => '4', + amopopr => '>=(float4,float8)', amopmethod => 'btree' }, +{ amopfamily => 'btree/float_ops', amoplefttype => 'float4', + amoprighttype => 'float8', amopstrategy => '5', amopopr => '>(float4,float8)', + amopmethod => 'btree' }, + +# default operators float8 +{ amopfamily => 'btree/float_ops', amoplefttype => 'float8', + amoprighttype => 'float8', amopstrategy => '1', amopopr => '<(float8,float8)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/float_ops', amoplefttype => 'float8', + amoprighttype => 'float8', amopstrategy => '2', + amopopr => '<=(float8,float8)', amopmethod => 'btree' }, +{ amopfamily => 'btree/float_ops', amoplefttype => 'float8', + amoprighttype => 'float8', amopstrategy => '3', amopopr => '=(float8,float8)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/float_ops', amoplefttype => 'float8', + amoprighttype => 'float8', amopstrategy => '4', + amopopr => '>=(float8,float8)', amopmethod => 'btree' }, +{ amopfamily => 'btree/float_ops', amoplefttype => 'float8', + amoprighttype => 'float8', amopstrategy => '5', amopopr => '>(float8,float8)', + amopmethod => 'btree' }, + +# crosstype operators float84 +{ amopfamily => 'btree/float_ops', amoplefttype => 'float8', + amoprighttype => 'float4', amopstrategy => '1', amopopr => '<(float8,float4)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/float_ops', amoplefttype => 'float8', + amoprighttype => 'float4', amopstrategy => '2', + amopopr => '<=(float8,float4)', amopmethod => 'btree' }, +{ amopfamily => 'btree/float_ops', amoplefttype => 'float8', + amoprighttype => 'float4', amopstrategy => '3', amopopr => '=(float8,float4)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/float_ops', amoplefttype => 'float8', + amoprighttype => 'float4', amopstrategy => '4', + amopopr => '>=(float8,float4)', amopmethod => 'btree' }, +{ amopfamily => 'btree/float_ops', amoplefttype => 'float8', + amoprighttype => 'float4', amopstrategy => '5', amopopr => '>(float8,float4)', + amopmethod => 'btree' }, + +# btree char_ops + +{ amopfamily => 'btree/char_ops', amoplefttype => 'char', + amoprighttype => 'char', amopstrategy => '1', amopopr => '<(char,char)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/char_ops', amoplefttype => 'char', + amoprighttype => 'char', amopstrategy => '2', amopopr => '<=(char,char)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/char_ops', amoplefttype => 'char', + amoprighttype => 'char', amopstrategy => '3', amopopr => '=(char,char)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/char_ops', amoplefttype => 'char', + amoprighttype => 'char', amopstrategy => '4', amopopr => '>=(char,char)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/char_ops', amoplefttype => 'char', + amoprighttype => 'char', amopstrategy => '5', amopopr => '>(char,char)', + amopmethod => 'btree' }, + +# btree name_ops + +{ amopfamily => 'btree/name_ops', amoplefttype => 'name', + amoprighttype => 'name', amopstrategy => '1', amopopr => '<(name,name)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/name_ops', amoplefttype => 'name', + amoprighttype => 'name', amopstrategy => '2', amopopr => '<=(name,name)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/name_ops', amoplefttype => 'name', + amoprighttype => 'name', amopstrategy => '3', amopopr => '=(name,name)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/name_ops', amoplefttype => 'name', + amoprighttype => 'name', amopstrategy => '4', amopopr => '>=(name,name)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/name_ops', amoplefttype => 'name', + amoprighttype => 'name', amopstrategy => '5', amopopr => '>(name,name)', + amopmethod => 'btree' }, + +# btree text_ops + +{ amopfamily => 'btree/text_ops', amoplefttype => 'text', + amoprighttype => 'text', amopstrategy => '1', amopopr => '<(text,text)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/text_ops', amoplefttype => 'text', + amoprighttype => 'text', amopstrategy => '2', amopopr => '<=(text,text)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/text_ops', amoplefttype => 'text', + amoprighttype => 'text', amopstrategy => '3', amopopr => '=(text,text)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/text_ops', amoplefttype => 'text', + amoprighttype => 'text', amopstrategy => '4', amopopr => '>=(text,text)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/text_ops', amoplefttype => 'text', + amoprighttype => 'text', amopstrategy => '5', amopopr => '>(text,text)', + amopmethod => 'btree' }, + +# btree bpchar_ops + +{ amopfamily => 'btree/bpchar_ops', amoplefttype => 'bpchar', + amoprighttype => 'bpchar', amopstrategy => '1', amopopr => '<(bpchar,bpchar)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/bpchar_ops', amoplefttype => 'bpchar', + amoprighttype => 'bpchar', amopstrategy => '2', + amopopr => '<=(bpchar,bpchar)', amopmethod => 'btree' }, +{ amopfamily => 'btree/bpchar_ops', amoplefttype => 'bpchar', + amoprighttype => 'bpchar', amopstrategy => '3', amopopr => '=(bpchar,bpchar)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/bpchar_ops', amoplefttype => 'bpchar', + amoprighttype => 'bpchar', amopstrategy => '4', + amopopr => '>=(bpchar,bpchar)', amopmethod => 'btree' }, +{ amopfamily => 'btree/bpchar_ops', amoplefttype => 'bpchar', + amoprighttype => 'bpchar', amopstrategy => '5', amopopr => '>(bpchar,bpchar)', + amopmethod => 'btree' }, + +# btree bytea_ops + +{ amopfamily => 'btree/bytea_ops', amoplefttype => 'bytea', + amoprighttype => 'bytea', amopstrategy => '1', amopopr => '<(bytea,bytea)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/bytea_ops', amoplefttype => 'bytea', + amoprighttype => 'bytea', amopstrategy => '2', amopopr => '<=(bytea,bytea)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/bytea_ops', amoplefttype => 'bytea', + amoprighttype => 'bytea', amopstrategy => '3', amopopr => '=(bytea,bytea)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/bytea_ops', amoplefttype => 'bytea', + amoprighttype => 'bytea', amopstrategy => '4', amopopr => '>=(bytea,bytea)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/bytea_ops', amoplefttype => 'bytea', + amoprighttype => 'bytea', amopstrategy => '5', amopopr => '>(bytea,bytea)', + amopmethod => 'btree' }, + +# btree abstime_ops + +{ amopfamily => 'btree/abstime_ops', amoplefttype => 'abstime', + amoprighttype => 'abstime', amopstrategy => '1', + amopopr => '<(abstime,abstime)', amopmethod => 'btree' }, +{ amopfamily => 'btree/abstime_ops', amoplefttype => 'abstime', + amoprighttype => 'abstime', amopstrategy => '2', + amopopr => '<=(abstime,abstime)', amopmethod => 'btree' }, +{ amopfamily => 'btree/abstime_ops', amoplefttype => 'abstime', + amoprighttype => 'abstime', amopstrategy => '3', + amopopr => '=(abstime,abstime)', amopmethod => 'btree' }, +{ amopfamily => 'btree/abstime_ops', amoplefttype => 'abstime', + amoprighttype => 'abstime', amopstrategy => '4', + amopopr => '>=(abstime,abstime)', amopmethod => 'btree' }, +{ amopfamily => 'btree/abstime_ops', amoplefttype => 'abstime', + amoprighttype => 'abstime', amopstrategy => '5', + amopopr => '>(abstime,abstime)', amopmethod => 'btree' }, + +# btree datetime_ops + +# default operators date +{ amopfamily => 'btree/datetime_ops', amoplefttype => 'date', + amoprighttype => 'date', amopstrategy => '1', amopopr => '<(date,date)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/datetime_ops', amoplefttype => 'date', + amoprighttype => 'date', amopstrategy => '2', amopopr => '<=(date,date)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/datetime_ops', amoplefttype => 'date', + amoprighttype => 'date', amopstrategy => '3', amopopr => '=(date,date)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/datetime_ops', amoplefttype => 'date', + amoprighttype => 'date', amopstrategy => '4', amopopr => '>=(date,date)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/datetime_ops', amoplefttype => 'date', + amoprighttype => 'date', amopstrategy => '5', amopopr => '>(date,date)', + amopmethod => 'btree' }, + +# crosstype operators vs timestamp +{ amopfamily => 'btree/datetime_ops', amoplefttype => 'date', + amoprighttype => 'timestamp', amopstrategy => '1', + amopopr => '<(date,timestamp)', amopmethod => 'btree' }, +{ amopfamily => 'btree/datetime_ops', amoplefttype => 'date', + amoprighttype => 'timestamp', amopstrategy => '2', + amopopr => '<=(date,timestamp)', amopmethod => 'btree' }, +{ amopfamily => 'btree/datetime_ops', amoplefttype => 'date', + amoprighttype => 'timestamp', amopstrategy => '3', + amopopr => '=(date,timestamp)', amopmethod => 'btree' }, +{ amopfamily => 'btree/datetime_ops', amoplefttype => 'date', + amoprighttype => 'timestamp', amopstrategy => '4', + amopopr => '>=(date,timestamp)', amopmethod => 'btree' }, +{ amopfamily => 'btree/datetime_ops', amoplefttype => 'date', + amoprighttype => 'timestamp', amopstrategy => '5', + amopopr => '>(date,timestamp)', amopmethod => 'btree' }, + +# crosstype operators vs timestamptz +{ amopfamily => 'btree/datetime_ops', amoplefttype => 'date', + amoprighttype => 'timestamptz', amopstrategy => '1', + amopopr => '<(date,timestamptz)', amopmethod => 'btree' }, +{ amopfamily => 'btree/datetime_ops', amoplefttype => 'date', + amoprighttype => 'timestamptz', amopstrategy => '2', + amopopr => '<=(date,timestamptz)', amopmethod => 'btree' }, +{ amopfamily => 'btree/datetime_ops', amoplefttype => 'date', + amoprighttype => 'timestamptz', amopstrategy => '3', + amopopr => '=(date,timestamptz)', amopmethod => 'btree' }, +{ amopfamily => 'btree/datetime_ops', amoplefttype => 'date', + amoprighttype => 'timestamptz', amopstrategy => '4', + amopopr => '>=(date,timestamptz)', amopmethod => 'btree' }, +{ amopfamily => 'btree/datetime_ops', amoplefttype => 'date', + amoprighttype => 'timestamptz', amopstrategy => '5', + amopopr => '>(date,timestamptz)', amopmethod => 'btree' }, + +# default operators timestamp +{ amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamp', + amoprighttype => 'timestamp', amopstrategy => '1', + amopopr => '<(timestamp,timestamp)', amopmethod => 'btree' }, +{ amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamp', + amoprighttype => 'timestamp', amopstrategy => '2', + amopopr => '<=(timestamp,timestamp)', amopmethod => 'btree' }, +{ amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamp', + amoprighttype => 'timestamp', amopstrategy => '3', + amopopr => '=(timestamp,timestamp)', amopmethod => 'btree' }, +{ amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamp', + amoprighttype => 'timestamp', amopstrategy => '4', + amopopr => '>=(timestamp,timestamp)', amopmethod => 'btree' }, +{ amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamp', + amoprighttype => 'timestamp', amopstrategy => '5', + amopopr => '>(timestamp,timestamp)', amopmethod => 'btree' }, + +# crosstype operators vs date +{ amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamp', + amoprighttype => 'date', amopstrategy => '1', amopopr => '<(timestamp,date)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamp', + amoprighttype => 'date', amopstrategy => '2', amopopr => '<=(timestamp,date)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamp', + amoprighttype => 'date', amopstrategy => '3', amopopr => '=(timestamp,date)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamp', + amoprighttype => 'date', amopstrategy => '4', amopopr => '>=(timestamp,date)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamp', + amoprighttype => 'date', amopstrategy => '5', amopopr => '>(timestamp,date)', + amopmethod => 'btree' }, + +# crosstype operators vs timestamptz +{ amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamp', + amoprighttype => 'timestamptz', amopstrategy => '1', + amopopr => '<(timestamp,timestamptz)', amopmethod => 'btree' }, +{ amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamp', + amoprighttype => 'timestamptz', amopstrategy => '2', + amopopr => '<=(timestamp,timestamptz)', amopmethod => 'btree' }, +{ amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamp', + amoprighttype => 'timestamptz', amopstrategy => '3', + amopopr => '=(timestamp,timestamptz)', amopmethod => 'btree' }, +{ amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamp', + amoprighttype => 'timestamptz', amopstrategy => '4', + amopopr => '>=(timestamp,timestamptz)', amopmethod => 'btree' }, +{ amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamp', + amoprighttype => 'timestamptz', amopstrategy => '5', + amopopr => '>(timestamp,timestamptz)', amopmethod => 'btree' }, + +# default operators timestamptz +{ amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamptz', + amoprighttype => 'timestamptz', amopstrategy => '1', + amopopr => '<(timestamptz,timestamptz)', amopmethod => 'btree' }, +{ amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamptz', + amoprighttype => 'timestamptz', amopstrategy => '2', + amopopr => '<=(timestamptz,timestamptz)', amopmethod => 'btree' }, +{ amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamptz', + amoprighttype => 'timestamptz', amopstrategy => '3', + amopopr => '=(timestamptz,timestamptz)', amopmethod => 'btree' }, +{ amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamptz', + amoprighttype => 'timestamptz', amopstrategy => '4', + amopopr => '>=(timestamptz,timestamptz)', amopmethod => 'btree' }, +{ amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamptz', + amoprighttype => 'timestamptz', amopstrategy => '5', + amopopr => '>(timestamptz,timestamptz)', amopmethod => 'btree' }, + +# crosstype operators vs date +{ amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamptz', + amoprighttype => 'date', amopstrategy => '1', + amopopr => '<(timestamptz,date)', amopmethod => 'btree' }, +{ amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamptz', + amoprighttype => 'date', amopstrategy => '2', + amopopr => '<=(timestamptz,date)', amopmethod => 'btree' }, +{ amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamptz', + amoprighttype => 'date', amopstrategy => '3', + amopopr => '=(timestamptz,date)', amopmethod => 'btree' }, +{ amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamptz', + amoprighttype => 'date', amopstrategy => '4', + amopopr => '>=(timestamptz,date)', amopmethod => 'btree' }, +{ amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamptz', + amoprighttype => 'date', amopstrategy => '5', + amopopr => '>(timestamptz,date)', amopmethod => 'btree' }, + +# crosstype operators vs timestamp +{ amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamptz', + amoprighttype => 'timestamp', amopstrategy => '1', + amopopr => '<(timestamptz,timestamp)', amopmethod => 'btree' }, +{ amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamptz', + amoprighttype => 'timestamp', amopstrategy => '2', + amopopr => '<=(timestamptz,timestamp)', amopmethod => 'btree' }, +{ amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamptz', + amoprighttype => 'timestamp', amopstrategy => '3', + amopopr => '=(timestamptz,timestamp)', amopmethod => 'btree' }, +{ amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamptz', + amoprighttype => 'timestamp', amopstrategy => '4', + amopopr => '>=(timestamptz,timestamp)', amopmethod => 'btree' }, +{ amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamptz', + amoprighttype => 'timestamp', amopstrategy => '5', + amopopr => '>(timestamptz,timestamp)', amopmethod => 'btree' }, + +# btree time_ops + +{ amopfamily => 'btree/time_ops', amoplefttype => 'time', + amoprighttype => 'time', amopstrategy => '1', amopopr => '<(time,time)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/time_ops', amoplefttype => 'time', + amoprighttype => 'time', amopstrategy => '2', amopopr => '<=(time,time)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/time_ops', amoplefttype => 'time', + amoprighttype => 'time', amopstrategy => '3', amopopr => '=(time,time)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/time_ops', amoplefttype => 'time', + amoprighttype => 'time', amopstrategy => '4', amopopr => '>=(time,time)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/time_ops', amoplefttype => 'time', + amoprighttype => 'time', amopstrategy => '5', amopopr => '>(time,time)', + amopmethod => 'btree' }, + +# btree timetz_ops + +{ amopfamily => 'btree/timetz_ops', amoplefttype => 'timetz', + amoprighttype => 'timetz', amopstrategy => '1', amopopr => '<(timetz,timetz)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/timetz_ops', amoplefttype => 'timetz', + amoprighttype => 'timetz', amopstrategy => '2', + amopopr => '<=(timetz,timetz)', amopmethod => 'btree' }, +{ amopfamily => 'btree/timetz_ops', amoplefttype => 'timetz', + amoprighttype => 'timetz', amopstrategy => '3', amopopr => '=(timetz,timetz)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/timetz_ops', amoplefttype => 'timetz', + amoprighttype => 'timetz', amopstrategy => '4', + amopopr => '>=(timetz,timetz)', amopmethod => 'btree' }, +{ amopfamily => 'btree/timetz_ops', amoplefttype => 'timetz', + amoprighttype => 'timetz', amopstrategy => '5', amopopr => '>(timetz,timetz)', + amopmethod => 'btree' }, + +# btree interval_ops + +{ amopfamily => 'btree/interval_ops', amoplefttype => 'interval', + amoprighttype => 'interval', amopstrategy => '1', + amopopr => '<(interval,interval)', amopmethod => 'btree' }, +{ amopfamily => 'btree/interval_ops', amoplefttype => 'interval', + amoprighttype => 'interval', amopstrategy => '2', + amopopr => '<=(interval,interval)', amopmethod => 'btree' }, +{ amopfamily => 'btree/interval_ops', amoplefttype => 'interval', + amoprighttype => 'interval', amopstrategy => '3', + amopopr => '=(interval,interval)', amopmethod => 'btree' }, +{ amopfamily => 'btree/interval_ops', amoplefttype => 'interval', + amoprighttype => 'interval', amopstrategy => '4', + amopopr => '>=(interval,interval)', amopmethod => 'btree' }, +{ amopfamily => 'btree/interval_ops', amoplefttype => 'interval', + amoprighttype => 'interval', amopstrategy => '5', + amopopr => '>(interval,interval)', amopmethod => 'btree' }, + +# btree macaddr + +{ amopfamily => 'btree/macaddr_ops', amoplefttype => 'macaddr', + amoprighttype => 'macaddr', amopstrategy => '1', + amopopr => '<(macaddr,macaddr)', amopmethod => 'btree' }, +{ amopfamily => 'btree/macaddr_ops', amoplefttype => 'macaddr', + amoprighttype => 'macaddr', amopstrategy => '2', + amopopr => '<=(macaddr,macaddr)', amopmethod => 'btree' }, +{ amopfamily => 'btree/macaddr_ops', amoplefttype => 'macaddr', + amoprighttype => 'macaddr', amopstrategy => '3', + amopopr => '=(macaddr,macaddr)', amopmethod => 'btree' }, +{ amopfamily => 'btree/macaddr_ops', amoplefttype => 'macaddr', + amoprighttype => 'macaddr', amopstrategy => '4', + amopopr => '>=(macaddr,macaddr)', amopmethod => 'btree' }, +{ amopfamily => 'btree/macaddr_ops', amoplefttype => 'macaddr', + amoprighttype => 'macaddr', amopstrategy => '5', + amopopr => '>(macaddr,macaddr)', amopmethod => 'btree' }, + +# btree macaddr8 + +{ amopfamily => 'btree/macaddr8_ops', amoplefttype => 'macaddr8', + amoprighttype => 'macaddr8', amopstrategy => '1', + amopopr => '<(macaddr8,macaddr8)', amopmethod => 'btree' }, +{ amopfamily => 'btree/macaddr8_ops', amoplefttype => 'macaddr8', + amoprighttype => 'macaddr8', amopstrategy => '2', + amopopr => '<=(macaddr8,macaddr8)', amopmethod => 'btree' }, +{ amopfamily => 'btree/macaddr8_ops', amoplefttype => 'macaddr8', + amoprighttype => 'macaddr8', amopstrategy => '3', + amopopr => '=(macaddr8,macaddr8)', amopmethod => 'btree' }, +{ amopfamily => 'btree/macaddr8_ops', amoplefttype => 'macaddr8', + amoprighttype => 'macaddr8', amopstrategy => '4', + amopopr => '>=(macaddr8,macaddr8)', amopmethod => 'btree' }, +{ amopfamily => 'btree/macaddr8_ops', amoplefttype => 'macaddr8', + amoprighttype => 'macaddr8', amopstrategy => '5', + amopopr => '>(macaddr8,macaddr8)', amopmethod => 'btree' }, + +# btree network + +{ amopfamily => 'btree/network_ops', amoplefttype => 'inet', + amoprighttype => 'inet', amopstrategy => '1', amopopr => '<(inet,inet)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/network_ops', amoplefttype => 'inet', + amoprighttype => 'inet', amopstrategy => '2', amopopr => '<=(inet,inet)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/network_ops', amoplefttype => 'inet', + amoprighttype => 'inet', amopstrategy => '3', amopopr => '=(inet,inet)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/network_ops', amoplefttype => 'inet', + amoprighttype => 'inet', amopstrategy => '4', amopopr => '>=(inet,inet)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/network_ops', amoplefttype => 'inet', + amoprighttype => 'inet', amopstrategy => '5', amopopr => '>(inet,inet)', + amopmethod => 'btree' }, + +# btree numeric + +{ amopfamily => 'btree/numeric_ops', amoplefttype => 'numeric', + amoprighttype => 'numeric', amopstrategy => '1', + amopopr => '<(numeric,numeric)', amopmethod => 'btree' }, +{ amopfamily => 'btree/numeric_ops', amoplefttype => 'numeric', + amoprighttype => 'numeric', amopstrategy => '2', + amopopr => '<=(numeric,numeric)', amopmethod => 'btree' }, +{ amopfamily => 'btree/numeric_ops', amoplefttype => 'numeric', + amoprighttype => 'numeric', amopstrategy => '3', + amopopr => '=(numeric,numeric)', amopmethod => 'btree' }, +{ amopfamily => 'btree/numeric_ops', amoplefttype => 'numeric', + amoprighttype => 'numeric', amopstrategy => '4', + amopopr => '>=(numeric,numeric)', amopmethod => 'btree' }, +{ amopfamily => 'btree/numeric_ops', amoplefttype => 'numeric', + amoprighttype => 'numeric', amopstrategy => '5', + amopopr => '>(numeric,numeric)', amopmethod => 'btree' }, + +# btree bool + +{ amopfamily => 'btree/bool_ops', amoplefttype => 'bool', + amoprighttype => 'bool', amopstrategy => '1', amopopr => '<(bool,bool)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/bool_ops', amoplefttype => 'bool', + amoprighttype => 'bool', amopstrategy => '2', amopopr => '<=(bool,bool)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/bool_ops', amoplefttype => 'bool', + amoprighttype => 'bool', amopstrategy => '3', amopopr => '=(bool,bool)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/bool_ops', amoplefttype => 'bool', + amoprighttype => 'bool', amopstrategy => '4', amopopr => '>=(bool,bool)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/bool_ops', amoplefttype => 'bool', + amoprighttype => 'bool', amopstrategy => '5', amopopr => '>(bool,bool)', + amopmethod => 'btree' }, + +# btree bit + +{ amopfamily => 'btree/bit_ops', amoplefttype => 'bit', amoprighttype => 'bit', + amopstrategy => '1', amopopr => '<(bit,bit)', amopmethod => 'btree' }, +{ amopfamily => 'btree/bit_ops', amoplefttype => 'bit', amoprighttype => 'bit', + amopstrategy => '2', amopopr => '<=(bit,bit)', amopmethod => 'btree' }, +{ amopfamily => 'btree/bit_ops', amoplefttype => 'bit', amoprighttype => 'bit', + amopstrategy => '3', amopopr => '=(bit,bit)', amopmethod => 'btree' }, +{ amopfamily => 'btree/bit_ops', amoplefttype => 'bit', amoprighttype => 'bit', + amopstrategy => '4', amopopr => '>=(bit,bit)', amopmethod => 'btree' }, +{ amopfamily => 'btree/bit_ops', amoplefttype => 'bit', amoprighttype => 'bit', + amopstrategy => '5', amopopr => '>(bit,bit)', amopmethod => 'btree' }, + +# btree varbit + +{ amopfamily => 'btree/varbit_ops', amoplefttype => 'varbit', + amoprighttype => 'varbit', amopstrategy => '1', amopopr => '<(varbit,varbit)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/varbit_ops', amoplefttype => 'varbit', + amoprighttype => 'varbit', amopstrategy => '2', + amopopr => '<=(varbit,varbit)', amopmethod => 'btree' }, +{ amopfamily => 'btree/varbit_ops', amoplefttype => 'varbit', + amoprighttype => 'varbit', amopstrategy => '3', amopopr => '=(varbit,varbit)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/varbit_ops', amoplefttype => 'varbit', + amoprighttype => 'varbit', amopstrategy => '4', + amopopr => '>=(varbit,varbit)', amopmethod => 'btree' }, +{ amopfamily => 'btree/varbit_ops', amoplefttype => 'varbit', + amoprighttype => 'varbit', amopstrategy => '5', amopopr => '>(varbit,varbit)', + amopmethod => 'btree' }, + +# btree text pattern + +{ amopfamily => 'btree/text_pattern_ops', amoplefttype => 'text', + amoprighttype => 'text', amopstrategy => '1', amopopr => '~<~(text,text)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/text_pattern_ops', amoplefttype => 'text', + amoprighttype => 'text', amopstrategy => '2', amopopr => '~<=~(text,text)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/text_pattern_ops', amoplefttype => 'text', + amoprighttype => 'text', amopstrategy => '3', amopopr => '=(text,text)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/text_pattern_ops', amoplefttype => 'text', + amoprighttype => 'text', amopstrategy => '4', amopopr => '~>=~(text,text)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/text_pattern_ops', amoplefttype => 'text', + amoprighttype => 'text', amopstrategy => '5', amopopr => '~>~(text,text)', + amopmethod => 'btree' }, + +# btree bpchar pattern + +{ amopfamily => 'btree/bpchar_pattern_ops', amoplefttype => 'bpchar', + amoprighttype => 'bpchar', amopstrategy => '1', + amopopr => '~<~(bpchar,bpchar)', amopmethod => 'btree' }, +{ amopfamily => 'btree/bpchar_pattern_ops', amoplefttype => 'bpchar', + amoprighttype => 'bpchar', amopstrategy => '2', + amopopr => '~<=~(bpchar,bpchar)', amopmethod => 'btree' }, +{ amopfamily => 'btree/bpchar_pattern_ops', amoplefttype => 'bpchar', + amoprighttype => 'bpchar', amopstrategy => '3', amopopr => '=(bpchar,bpchar)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/bpchar_pattern_ops', amoplefttype => 'bpchar', + amoprighttype => 'bpchar', amopstrategy => '4', + amopopr => '~>=~(bpchar,bpchar)', amopmethod => 'btree' }, +{ amopfamily => 'btree/bpchar_pattern_ops', amoplefttype => 'bpchar', + amoprighttype => 'bpchar', amopstrategy => '5', + amopopr => '~>~(bpchar,bpchar)', amopmethod => 'btree' }, + +# btree money_ops + +{ amopfamily => 'btree/money_ops', amoplefttype => 'money', + amoprighttype => 'money', amopstrategy => '1', amopopr => '<(money,money)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/money_ops', amoplefttype => 'money', + amoprighttype => 'money', amopstrategy => '2', amopopr => '<=(money,money)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/money_ops', amoplefttype => 'money', + amoprighttype => 'money', amopstrategy => '3', amopopr => '=(money,money)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/money_ops', amoplefttype => 'money', + amoprighttype => 'money', amopstrategy => '4', amopopr => '>=(money,money)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/money_ops', amoplefttype => 'money', + amoprighttype => 'money', amopstrategy => '5', amopopr => '>(money,money)', + amopmethod => 'btree' }, + +# btree reltime_ops + +{ amopfamily => 'btree/reltime_ops', amoplefttype => 'reltime', + amoprighttype => 'reltime', amopstrategy => '1', + amopopr => '<(reltime,reltime)', amopmethod => 'btree' }, +{ amopfamily => 'btree/reltime_ops', amoplefttype => 'reltime', + amoprighttype => 'reltime', amopstrategy => '2', + amopopr => '<=(reltime,reltime)', amopmethod => 'btree' }, +{ amopfamily => 'btree/reltime_ops', amoplefttype => 'reltime', + amoprighttype => 'reltime', amopstrategy => '3', + amopopr => '=(reltime,reltime)', amopmethod => 'btree' }, +{ amopfamily => 'btree/reltime_ops', amoplefttype => 'reltime', + amoprighttype => 'reltime', amopstrategy => '4', + amopopr => '>=(reltime,reltime)', amopmethod => 'btree' }, +{ amopfamily => 'btree/reltime_ops', amoplefttype => 'reltime', + amoprighttype => 'reltime', amopstrategy => '5', + amopopr => '>(reltime,reltime)', amopmethod => 'btree' }, + +# btree tinterval_ops + +{ amopfamily => 'btree/tinterval_ops', amoplefttype => 'tinterval', + amoprighttype => 'tinterval', amopstrategy => '1', + amopopr => '<(tinterval,tinterval)', amopmethod => 'btree' }, +{ amopfamily => 'btree/tinterval_ops', amoplefttype => 'tinterval', + amoprighttype => 'tinterval', amopstrategy => '2', + amopopr => '<=(tinterval,tinterval)', amopmethod => 'btree' }, +{ amopfamily => 'btree/tinterval_ops', amoplefttype => 'tinterval', + amoprighttype => 'tinterval', amopstrategy => '3', + amopopr => '=(tinterval,tinterval)', amopmethod => 'btree' }, +{ amopfamily => 'btree/tinterval_ops', amoplefttype => 'tinterval', + amoprighttype => 'tinterval', amopstrategy => '4', + amopopr => '>=(tinterval,tinterval)', amopmethod => 'btree' }, +{ amopfamily => 'btree/tinterval_ops', amoplefttype => 'tinterval', + amoprighttype => 'tinterval', amopstrategy => '5', + amopopr => '>(tinterval,tinterval)', amopmethod => 'btree' }, + +# btree array_ops + +{ amopfamily => 'btree/array_ops', amoplefttype => 'anyarray', + amoprighttype => 'anyarray', amopstrategy => '1', + amopopr => '<(anyarray,anyarray)', amopmethod => 'btree' }, +{ amopfamily => 'btree/array_ops', amoplefttype => 'anyarray', + amoprighttype => 'anyarray', amopstrategy => '2', + amopopr => '<=(anyarray,anyarray)', amopmethod => 'btree' }, +{ amopfamily => 'btree/array_ops', amoplefttype => 'anyarray', + amoprighttype => 'anyarray', amopstrategy => '3', + amopopr => '=(anyarray,anyarray)', amopmethod => 'btree' }, +{ amopfamily => 'btree/array_ops', amoplefttype => 'anyarray', + amoprighttype => 'anyarray', amopstrategy => '4', + amopopr => '>=(anyarray,anyarray)', amopmethod => 'btree' }, +{ amopfamily => 'btree/array_ops', amoplefttype => 'anyarray', + amoprighttype => 'anyarray', amopstrategy => '5', + amopopr => '>(anyarray,anyarray)', amopmethod => 'btree' }, + +# btree record_ops + +{ amopfamily => 'btree/record_ops', amoplefttype => 'record', + amoprighttype => 'record', amopstrategy => '1', amopopr => '<(record,record)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/record_ops', amoplefttype => 'record', + amoprighttype => 'record', amopstrategy => '2', + amopopr => '<=(record,record)', amopmethod => 'btree' }, +{ amopfamily => 'btree/record_ops', amoplefttype => 'record', + amoprighttype => 'record', amopstrategy => '3', amopopr => '=(record,record)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/record_ops', amoplefttype => 'record', + amoprighttype => 'record', amopstrategy => '4', + amopopr => '>=(record,record)', amopmethod => 'btree' }, +{ amopfamily => 'btree/record_ops', amoplefttype => 'record', + amoprighttype => 'record', amopstrategy => '5', amopopr => '>(record,record)', + amopmethod => 'btree' }, + +# btree record_image_ops + +{ amopfamily => 'btree/record_image_ops', amoplefttype => 'record', + amoprighttype => 'record', amopstrategy => '1', + amopopr => '*<(record,record)', amopmethod => 'btree' }, +{ amopfamily => 'btree/record_image_ops', amoplefttype => 'record', + amoprighttype => 'record', amopstrategy => '2', + amopopr => '*<=(record,record)', amopmethod => 'btree' }, +{ amopfamily => 'btree/record_image_ops', amoplefttype => 'record', + amoprighttype => 'record', amopstrategy => '3', + amopopr => '*=(record,record)', amopmethod => 'btree' }, +{ amopfamily => 'btree/record_image_ops', amoplefttype => 'record', + amoprighttype => 'record', amopstrategy => '4', + amopopr => '*>=(record,record)', amopmethod => 'btree' }, +{ amopfamily => 'btree/record_image_ops', amoplefttype => 'record', + amoprighttype => 'record', amopstrategy => '5', + amopopr => '*>(record,record)', amopmethod => 'btree' }, + +# btree uuid_ops + +{ amopfamily => 'btree/uuid_ops', amoplefttype => 'uuid', + amoprighttype => 'uuid', amopstrategy => '1', amopopr => '<(uuid,uuid)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/uuid_ops', amoplefttype => 'uuid', + amoprighttype => 'uuid', amopstrategy => '2', amopopr => '<=(uuid,uuid)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/uuid_ops', amoplefttype => 'uuid', + amoprighttype => 'uuid', amopstrategy => '3', amopopr => '=(uuid,uuid)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/uuid_ops', amoplefttype => 'uuid', + amoprighttype => 'uuid', amopstrategy => '4', amopopr => '>=(uuid,uuid)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/uuid_ops', amoplefttype => 'uuid', + amoprighttype => 'uuid', amopstrategy => '5', amopopr => '>(uuid,uuid)', + amopmethod => 'btree' }, + +# btree pg_lsn_ops + +{ amopfamily => 'btree/pg_lsn_ops', amoplefttype => 'pg_lsn', + amoprighttype => 'pg_lsn', amopstrategy => '1', amopopr => '<(pg_lsn,pg_lsn)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/pg_lsn_ops', amoplefttype => 'pg_lsn', + amoprighttype => 'pg_lsn', amopstrategy => '2', + amopopr => '<=(pg_lsn,pg_lsn)', amopmethod => 'btree' }, +{ amopfamily => 'btree/pg_lsn_ops', amoplefttype => 'pg_lsn', + amoprighttype => 'pg_lsn', amopstrategy => '3', amopopr => '=(pg_lsn,pg_lsn)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/pg_lsn_ops', amoplefttype => 'pg_lsn', + amoprighttype => 'pg_lsn', amopstrategy => '4', + amopopr => '>=(pg_lsn,pg_lsn)', amopmethod => 'btree' }, +{ amopfamily => 'btree/pg_lsn_ops', amoplefttype => 'pg_lsn', + amoprighttype => 'pg_lsn', amopstrategy => '5', amopopr => '>(pg_lsn,pg_lsn)', + amopmethod => 'btree' }, + +# hash index_ops + +# bpchar_ops +{ amopfamily => 'hash/bpchar_ops', amoplefttype => 'bpchar', + amoprighttype => 'bpchar', amopstrategy => '1', amopopr => '=(bpchar,bpchar)', + amopmethod => 'hash' }, + +# char_ops +{ amopfamily => 'hash/char_ops', amoplefttype => 'char', + amoprighttype => 'char', amopstrategy => '1', amopopr => '=(char,char)', + amopmethod => 'hash' }, + +# date_ops +{ amopfamily => 'hash/date_ops', amoplefttype => 'date', + amoprighttype => 'date', amopstrategy => '1', amopopr => '=(date,date)', + amopmethod => 'hash' }, + +# float_ops +{ amopfamily => 'hash/float_ops', amoplefttype => 'float4', + amoprighttype => 'float4', amopstrategy => '1', amopopr => '=(float4,float4)', + amopmethod => 'hash' }, +{ amopfamily => 'hash/float_ops', amoplefttype => 'float8', + amoprighttype => 'float8', amopstrategy => '1', amopopr => '=(float8,float8)', + amopmethod => 'hash' }, +{ amopfamily => 'hash/float_ops', amoplefttype => 'float4', + amoprighttype => 'float8', amopstrategy => '1', amopopr => '=(float4,float8)', + amopmethod => 'hash' }, +{ amopfamily => 'hash/float_ops', amoplefttype => 'float8', + amoprighttype => 'float4', amopstrategy => '1', amopopr => '=(float8,float4)', + amopmethod => 'hash' }, + +# network_ops +{ amopfamily => 'hash/network_ops', amoplefttype => 'inet', + amoprighttype => 'inet', amopstrategy => '1', amopopr => '=(inet,inet)', + amopmethod => 'hash' }, + +# integer_ops +{ amopfamily => 'hash/integer_ops', amoplefttype => 'int2', + amoprighttype => 'int2', amopstrategy => '1', amopopr => '=(int2,int2)', + amopmethod => 'hash' }, +{ amopfamily => 'hash/integer_ops', amoplefttype => 'int4', + amoprighttype => 'int4', amopstrategy => '1', amopopr => '=(int4,int4)', + amopmethod => 'hash' }, +{ amopfamily => 'hash/integer_ops', amoplefttype => 'int8', + amoprighttype => 'int8', amopstrategy => '1', amopopr => '=(int8,int8)', + amopmethod => 'hash' }, +{ amopfamily => 'hash/integer_ops', amoplefttype => 'int2', + amoprighttype => 'int4', amopstrategy => '1', amopopr => '=(int2,int4)', + amopmethod => 'hash' }, +{ amopfamily => 'hash/integer_ops', amoplefttype => 'int2', + amoprighttype => 'int8', amopstrategy => '1', amopopr => '=(int2,int8)', + amopmethod => 'hash' }, +{ amopfamily => 'hash/integer_ops', amoplefttype => 'int4', + amoprighttype => 'int2', amopstrategy => '1', amopopr => '=(int4,int2)', + amopmethod => 'hash' }, +{ amopfamily => 'hash/integer_ops', amoplefttype => 'int4', + amoprighttype => 'int8', amopstrategy => '1', amopopr => '=(int4,int8)', + amopmethod => 'hash' }, +{ amopfamily => 'hash/integer_ops', amoplefttype => 'int8', + amoprighttype => 'int2', amopstrategy => '1', amopopr => '=(int8,int2)', + amopmethod => 'hash' }, +{ amopfamily => 'hash/integer_ops', amoplefttype => 'int8', + amoprighttype => 'int4', amopstrategy => '1', amopopr => '=(int8,int4)', + amopmethod => 'hash' }, + +# interval_ops +{ amopfamily => 'hash/interval_ops', amoplefttype => 'interval', + amoprighttype => 'interval', amopstrategy => '1', + amopopr => '=(interval,interval)', amopmethod => 'hash' }, + +# macaddr_ops +{ amopfamily => 'hash/macaddr_ops', amoplefttype => 'macaddr', + amoprighttype => 'macaddr', amopstrategy => '1', + amopopr => '=(macaddr,macaddr)', amopmethod => 'hash' }, + +# macaddr8_ops +{ amopfamily => 'hash/macaddr8_ops', amoplefttype => 'macaddr8', + amoprighttype => 'macaddr8', amopstrategy => '1', + amopopr => '=(macaddr8,macaddr8)', amopmethod => 'hash' }, + +# name_ops +{ amopfamily => 'hash/name_ops', amoplefttype => 'name', + amoprighttype => 'name', amopstrategy => '1', amopopr => '=(name,name)', + amopmethod => 'hash' }, + +# oid_ops +{ amopfamily => 'hash/oid_ops', amoplefttype => 'oid', amoprighttype => 'oid', + amopstrategy => '1', amopopr => '=(oid,oid)', amopmethod => 'hash' }, + +# oidvector_ops +{ amopfamily => 'hash/oidvector_ops', amoplefttype => 'oidvector', + amoprighttype => 'oidvector', amopstrategy => '1', + amopopr => '=(oidvector,oidvector)', amopmethod => 'hash' }, + +# text_ops +{ amopfamily => 'hash/text_ops', amoplefttype => 'text', + amoprighttype => 'text', amopstrategy => '1', amopopr => '=(text,text)', + amopmethod => 'hash' }, + +# time_ops +{ amopfamily => 'hash/time_ops', amoplefttype => 'time', + amoprighttype => 'time', amopstrategy => '1', amopopr => '=(time,time)', + amopmethod => 'hash' }, + +# timestamptz_ops +{ amopfamily => 'hash/timestamptz_ops', amoplefttype => 'timestamptz', + amoprighttype => 'timestamptz', amopstrategy => '1', + amopopr => '=(timestamptz,timestamptz)', amopmethod => 'hash' }, + +# timetz_ops +{ amopfamily => 'hash/timetz_ops', amoplefttype => 'timetz', + amoprighttype => 'timetz', amopstrategy => '1', amopopr => '=(timetz,timetz)', + amopmethod => 'hash' }, + +# timestamp_ops +{ amopfamily => 'hash/timestamp_ops', amoplefttype => 'timestamp', + amoprighttype => 'timestamp', amopstrategy => '1', + amopopr => '=(timestamp,timestamp)', amopmethod => 'hash' }, + +# bool_ops +{ amopfamily => 'hash/bool_ops', amoplefttype => 'bool', + amoprighttype => 'bool', amopstrategy => '1', amopopr => '=(bool,bool)', + amopmethod => 'hash' }, + +# bytea_ops +{ amopfamily => 'hash/bytea_ops', amoplefttype => 'bytea', + amoprighttype => 'bytea', amopstrategy => '1', amopopr => '=(bytea,bytea)', + amopmethod => 'hash' }, + +# xid_ops +{ amopfamily => 'hash/xid_ops', amoplefttype => 'xid', amoprighttype => 'xid', + amopstrategy => '1', amopopr => '=(xid,xid)', amopmethod => 'hash' }, + +# cid_ops +{ amopfamily => 'hash/cid_ops', amoplefttype => 'cid', amoprighttype => 'cid', + amopstrategy => '1', amopopr => '=(cid,cid)', amopmethod => 'hash' }, + +# abstime_ops +{ amopfamily => 'hash/abstime_ops', amoplefttype => 'abstime', + amoprighttype => 'abstime', amopstrategy => '1', + amopopr => '=(abstime,abstime)', amopmethod => 'hash' }, + +# reltime_ops +{ amopfamily => 'hash/reltime_ops', amoplefttype => 'reltime', + amoprighttype => 'reltime', amopstrategy => '1', + amopopr => '=(reltime,reltime)', amopmethod => 'hash' }, + +# text_pattern_ops +{ amopfamily => 'hash/text_pattern_ops', amoplefttype => 'text', + amoprighttype => 'text', amopstrategy => '1', amopopr => '=(text,text)', + amopmethod => 'hash' }, + +# bpchar_pattern_ops +{ amopfamily => 'hash/bpchar_pattern_ops', amoplefttype => 'bpchar', + amoprighttype => 'bpchar', amopstrategy => '1', amopopr => '=(bpchar,bpchar)', + amopmethod => 'hash' }, + +# aclitem_ops +{ amopfamily => 'hash/aclitem_ops', amoplefttype => 'aclitem', + amoprighttype => 'aclitem', amopstrategy => '1', + amopopr => '=(aclitem,aclitem)', amopmethod => 'hash' }, + +# uuid_ops +{ amopfamily => 'hash/uuid_ops', amoplefttype => 'uuid', + amoprighttype => 'uuid', amopstrategy => '1', amopopr => '=(uuid,uuid)', + amopmethod => 'hash' }, + +# pg_lsn_ops +{ amopfamily => 'hash/pg_lsn_ops', amoplefttype => 'pg_lsn', + amoprighttype => 'pg_lsn', amopstrategy => '1', amopopr => '=(pg_lsn,pg_lsn)', + amopmethod => 'hash' }, + +# numeric_ops +{ amopfamily => 'hash/numeric_ops', amoplefttype => 'numeric', + amoprighttype => 'numeric', amopstrategy => '1', + amopopr => '=(numeric,numeric)', amopmethod => 'hash' }, + +# array_ops +{ amopfamily => 'hash/array_ops', amoplefttype => 'anyarray', + amoprighttype => 'anyarray', amopstrategy => '1', + amopopr => '=(anyarray,anyarray)', amopmethod => 'hash' }, + +# gist box_ops +{ amopfamily => 'gist/box_ops', amoplefttype => 'box', amoprighttype => 'box', + amopstrategy => '1', amopopr => '<<(box,box)', amopmethod => 'gist' }, +{ amopfamily => 'gist/box_ops', amoplefttype => 'box', amoprighttype => 'box', + amopstrategy => '2', amopopr => '&<(box,box)', amopmethod => 'gist' }, +{ amopfamily => 'gist/box_ops', amoplefttype => 'box', amoprighttype => 'box', + amopstrategy => '3', amopopr => '&&(box,box)', amopmethod => 'gist' }, +{ amopfamily => 'gist/box_ops', amoplefttype => 'box', amoprighttype => 'box', + amopstrategy => '4', amopopr => '&>(box,box)', amopmethod => 'gist' }, +{ amopfamily => 'gist/box_ops', amoplefttype => 'box', amoprighttype => 'box', + amopstrategy => '5', amopopr => '>>(box,box)', amopmethod => 'gist' }, +{ amopfamily => 'gist/box_ops', amoplefttype => 'box', amoprighttype => 'box', + amopstrategy => '6', amopopr => '~=(box,box)', amopmethod => 'gist' }, +{ amopfamily => 'gist/box_ops', amoplefttype => 'box', amoprighttype => 'box', + amopstrategy => '7', amopopr => '@>(box,box)', amopmethod => 'gist' }, +{ amopfamily => 'gist/box_ops', amoplefttype => 'box', amoprighttype => 'box', + amopstrategy => '8', amopopr => '<@(box,box)', amopmethod => 'gist' }, +{ amopfamily => 'gist/box_ops', amoplefttype => 'box', amoprighttype => 'box', + amopstrategy => '9', amopopr => '&<|(box,box)', amopmethod => 'gist' }, +{ amopfamily => 'gist/box_ops', amoplefttype => 'box', amoprighttype => 'box', + amopstrategy => '10', amopopr => '<<|(box,box)', amopmethod => 'gist' }, +{ amopfamily => 'gist/box_ops', amoplefttype => 'box', amoprighttype => 'box', + amopstrategy => '11', amopopr => '|>>(box,box)', amopmethod => 'gist' }, +{ amopfamily => 'gist/box_ops', amoplefttype => 'box', amoprighttype => 'box', + amopstrategy => '12', amopopr => '|&>(box,box)', amopmethod => 'gist' }, +{ amopfamily => 'gist/box_ops', amoplefttype => 'box', amoprighttype => 'box', + amopstrategy => '13', amopopr => '~(box,box)', amopmethod => 'gist' }, +{ amopfamily => 'gist/box_ops', amoplefttype => 'box', amoprighttype => 'box', + amopstrategy => '14', amopopr => '@(box,box)', amopmethod => 'gist' }, + +# gist point_ops +{ amopfamily => 'gist/point_ops', amoplefttype => 'point', + amoprighttype => 'point', amopstrategy => '11', amopopr => '>^(point,point)', + amopmethod => 'gist' }, +{ amopfamily => 'gist/point_ops', amoplefttype => 'point', + amoprighttype => 'point', amopstrategy => '1', amopopr => '<<(point,point)', + amopmethod => 'gist' }, +{ amopfamily => 'gist/point_ops', amoplefttype => 'point', + amoprighttype => 'point', amopstrategy => '5', amopopr => '>>(point,point)', + amopmethod => 'gist' }, +{ amopfamily => 'gist/point_ops', amoplefttype => 'point', + amoprighttype => 'point', amopstrategy => '10', amopopr => '<^(point,point)', + amopmethod => 'gist' }, +{ amopfamily => 'gist/point_ops', amoplefttype => 'point', + amoprighttype => 'point', amopstrategy => '6', amopopr => '~=(point,point)', + amopmethod => 'gist' }, +{ amopfamily => 'gist/point_ops', amoplefttype => 'point', + amoprighttype => 'point', amopstrategy => '15', amoppurpose => 'o', + amopopr => '<->(point,point)', amopmethod => 'gist', + amopsortfamily => 'btree/float_ops' }, +{ amopfamily => 'gist/point_ops', amoplefttype => 'point', + amoprighttype => 'box', amopstrategy => '28', amopopr => '<@(point,box)', + amopmethod => 'gist' }, +{ amopfamily => 'gist/point_ops', amoplefttype => 'point', + amoprighttype => 'polygon', amopstrategy => '48', + amopopr => '<@(point,polygon)', amopmethod => 'gist' }, +{ amopfamily => 'gist/point_ops', amoplefttype => 'point', + amoprighttype => 'circle', amopstrategy => '68', + amopopr => '<@(point,circle)', amopmethod => 'gist' }, + +# gist poly_ops (supports polygons) +{ amopfamily => 'gist/poly_ops', amoplefttype => 'polygon', + amoprighttype => 'polygon', amopstrategy => '1', + amopopr => '<<(polygon,polygon)', amopmethod => 'gist' }, +{ amopfamily => 'gist/poly_ops', amoplefttype => 'polygon', + amoprighttype => 'polygon', amopstrategy => '2', + amopopr => '&<(polygon,polygon)', amopmethod => 'gist' }, +{ amopfamily => 'gist/poly_ops', amoplefttype => 'polygon', + amoprighttype => 'polygon', amopstrategy => '3', + amopopr => '&&(polygon,polygon)', amopmethod => 'gist' }, +{ amopfamily => 'gist/poly_ops', amoplefttype => 'polygon', + amoprighttype => 'polygon', amopstrategy => '4', + amopopr => '&>(polygon,polygon)', amopmethod => 'gist' }, +{ amopfamily => 'gist/poly_ops', amoplefttype => 'polygon', + amoprighttype => 'polygon', amopstrategy => '5', + amopopr => '>>(polygon,polygon)', amopmethod => 'gist' }, +{ amopfamily => 'gist/poly_ops', amoplefttype => 'polygon', + amoprighttype => 'polygon', amopstrategy => '6', + amopopr => '~=(polygon,polygon)', amopmethod => 'gist' }, +{ amopfamily => 'gist/poly_ops', amoplefttype => 'polygon', + amoprighttype => 'polygon', amopstrategy => '7', + amopopr => '@>(polygon,polygon)', amopmethod => 'gist' }, +{ amopfamily => 'gist/poly_ops', amoplefttype => 'polygon', + amoprighttype => 'polygon', amopstrategy => '8', + amopopr => '<@(polygon,polygon)', amopmethod => 'gist' }, +{ amopfamily => 'gist/poly_ops', amoplefttype => 'polygon', + amoprighttype => 'polygon', amopstrategy => '9', + amopopr => '&<|(polygon,polygon)', amopmethod => 'gist' }, +{ amopfamily => 'gist/poly_ops', amoplefttype => 'polygon', + amoprighttype => 'polygon', amopstrategy => '10', + amopopr => '<<|(polygon,polygon)', amopmethod => 'gist' }, +{ amopfamily => 'gist/poly_ops', amoplefttype => 'polygon', + amoprighttype => 'polygon', amopstrategy => '11', + amopopr => '|>>(polygon,polygon)', amopmethod => 'gist' }, +{ amopfamily => 'gist/poly_ops', amoplefttype => 'polygon', + amoprighttype => 'polygon', amopstrategy => '12', + amopopr => '|&>(polygon,polygon)', amopmethod => 'gist' }, +{ amopfamily => 'gist/poly_ops', amoplefttype => 'polygon', + amoprighttype => 'polygon', amopstrategy => '13', + amopopr => '~(polygon,polygon)', amopmethod => 'gist' }, +{ amopfamily => 'gist/poly_ops', amoplefttype => 'polygon', + amoprighttype => 'polygon', amopstrategy => '14', + amopopr => '@(polygon,polygon)', amopmethod => 'gist' }, +{ amopfamily => 'gist/poly_ops', amoplefttype => 'polygon', + amoprighttype => 'point', amopstrategy => '15', amoppurpose => 'o', + amopopr => '<->(polygon,point)', amopmethod => 'gist', + amopsortfamily => 'btree/float_ops' }, + +# gist circle_ops +{ amopfamily => 'gist/circle_ops', amoplefttype => 'circle', + amoprighttype => 'circle', amopstrategy => '1', + amopopr => '<<(circle,circle)', amopmethod => 'gist' }, +{ amopfamily => 'gist/circle_ops', amoplefttype => 'circle', + amoprighttype => 'circle', amopstrategy => '2', + amopopr => '&<(circle,circle)', amopmethod => 'gist' }, +{ amopfamily => 'gist/circle_ops', amoplefttype => 'circle', + amoprighttype => 'circle', amopstrategy => '3', + amopopr => '&&(circle,circle)', amopmethod => 'gist' }, +{ amopfamily => 'gist/circle_ops', amoplefttype => 'circle', + amoprighttype => 'circle', amopstrategy => '4', + amopopr => '&>(circle,circle)', amopmethod => 'gist' }, +{ amopfamily => 'gist/circle_ops', amoplefttype => 'circle', + amoprighttype => 'circle', amopstrategy => '5', + amopopr => '>>(circle,circle)', amopmethod => 'gist' }, +{ amopfamily => 'gist/circle_ops', amoplefttype => 'circle', + amoprighttype => 'circle', amopstrategy => '6', + amopopr => '~=(circle,circle)', amopmethod => 'gist' }, +{ amopfamily => 'gist/circle_ops', amoplefttype => 'circle', + amoprighttype => 'circle', amopstrategy => '7', + amopopr => '@>(circle,circle)', amopmethod => 'gist' }, +{ amopfamily => 'gist/circle_ops', amoplefttype => 'circle', + amoprighttype => 'circle', amopstrategy => '8', + amopopr => '<@(circle,circle)', amopmethod => 'gist' }, +{ amopfamily => 'gist/circle_ops', amoplefttype => 'circle', + amoprighttype => 'circle', amopstrategy => '9', + amopopr => '&<|(circle,circle)', amopmethod => 'gist' }, +{ amopfamily => 'gist/circle_ops', amoplefttype => 'circle', + amoprighttype => 'circle', amopstrategy => '10', + amopopr => '<<|(circle,circle)', amopmethod => 'gist' }, +{ amopfamily => 'gist/circle_ops', amoplefttype => 'circle', + amoprighttype => 'circle', amopstrategy => '11', + amopopr => '|>>(circle,circle)', amopmethod => 'gist' }, +{ amopfamily => 'gist/circle_ops', amoplefttype => 'circle', + amoprighttype => 'circle', amopstrategy => '12', + amopopr => '|&>(circle,circle)', amopmethod => 'gist' }, +{ amopfamily => 'gist/circle_ops', amoplefttype => 'circle', + amoprighttype => 'circle', amopstrategy => '13', + amopopr => '~(circle,circle)', amopmethod => 'gist' }, +{ amopfamily => 'gist/circle_ops', amoplefttype => 'circle', + amoprighttype => 'circle', amopstrategy => '14', + amopopr => '@(circle,circle)', amopmethod => 'gist' }, +{ amopfamily => 'gist/circle_ops', amoplefttype => 'circle', + amoprighttype => 'point', amopstrategy => '15', amoppurpose => 'o', + amopopr => '<->(circle,point)', amopmethod => 'gist', + amopsortfamily => 'btree/float_ops' }, + +# gin array_ops +{ amopfamily => 'gin/array_ops', amoplefttype => 'anyarray', + amoprighttype => 'anyarray', amopstrategy => '1', + amopopr => '&&(anyarray,anyarray)', amopmethod => 'gin' }, +{ amopfamily => 'gin/array_ops', amoplefttype => 'anyarray', + amoprighttype => 'anyarray', amopstrategy => '2', + amopopr => '@>(anyarray,anyarray)', amopmethod => 'gin' }, +{ amopfamily => 'gin/array_ops', amoplefttype => 'anyarray', + amoprighttype => 'anyarray', amopstrategy => '3', + amopopr => '<@(anyarray,anyarray)', amopmethod => 'gin' }, +{ amopfamily => 'gin/array_ops', amoplefttype => 'anyarray', + amoprighttype => 'anyarray', amopstrategy => '4', + amopopr => '=(anyarray,anyarray)', amopmethod => 'gin' }, + +# btree enum_ops +{ amopfamily => 'btree/enum_ops', amoplefttype => 'anyenum', + amoprighttype => 'anyenum', amopstrategy => '1', + amopopr => '<(anyenum,anyenum)', amopmethod => 'btree' }, +{ amopfamily => 'btree/enum_ops', amoplefttype => 'anyenum', + amoprighttype => 'anyenum', amopstrategy => '2', + amopopr => '<=(anyenum,anyenum)', amopmethod => 'btree' }, +{ amopfamily => 'btree/enum_ops', amoplefttype => 'anyenum', + amoprighttype => 'anyenum', amopstrategy => '3', + amopopr => '=(anyenum,anyenum)', amopmethod => 'btree' }, +{ amopfamily => 'btree/enum_ops', amoplefttype => 'anyenum', + amoprighttype => 'anyenum', amopstrategy => '4', + amopopr => '>=(anyenum,anyenum)', amopmethod => 'btree' }, +{ amopfamily => 'btree/enum_ops', amoplefttype => 'anyenum', + amoprighttype => 'anyenum', amopstrategy => '5', + amopopr => '>(anyenum,anyenum)', amopmethod => 'btree' }, + +# hash enum_ops +{ amopfamily => 'hash/enum_ops', amoplefttype => 'anyenum', + amoprighttype => 'anyenum', amopstrategy => '1', + amopopr => '=(anyenum,anyenum)', amopmethod => 'hash' }, + +# btree tsvector_ops +{ amopfamily => 'btree/tsvector_ops', amoplefttype => 'tsvector', + amoprighttype => 'tsvector', amopstrategy => '1', + amopopr => '<(tsvector,tsvector)', amopmethod => 'btree' }, +{ amopfamily => 'btree/tsvector_ops', amoplefttype => 'tsvector', + amoprighttype => 'tsvector', amopstrategy => '2', + amopopr => '<=(tsvector,tsvector)', amopmethod => 'btree' }, +{ amopfamily => 'btree/tsvector_ops', amoplefttype => 'tsvector', + amoprighttype => 'tsvector', amopstrategy => '3', + amopopr => '=(tsvector,tsvector)', amopmethod => 'btree' }, +{ amopfamily => 'btree/tsvector_ops', amoplefttype => 'tsvector', + amoprighttype => 'tsvector', amopstrategy => '4', + amopopr => '>=(tsvector,tsvector)', amopmethod => 'btree' }, +{ amopfamily => 'btree/tsvector_ops', amoplefttype => 'tsvector', + amoprighttype => 'tsvector', amopstrategy => '5', + amopopr => '>(tsvector,tsvector)', amopmethod => 'btree' }, + +# GiST tsvector_ops +{ amopfamily => 'gist/tsvector_ops', amoplefttype => 'tsvector', + amoprighttype => 'tsquery', amopstrategy => '1', + amopopr => '@@(tsvector,tsquery)', amopmethod => 'gist' }, + +# GIN tsvector_ops +{ amopfamily => 'gin/tsvector_ops', amoplefttype => 'tsvector', + amoprighttype => 'tsquery', amopstrategy => '1', + amopopr => '@@(tsvector,tsquery)', amopmethod => 'gin' }, +{ amopfamily => 'gin/tsvector_ops', amoplefttype => 'tsvector', + amoprighttype => 'tsquery', amopstrategy => '2', + amopopr => '@@@(tsvector,tsquery)', amopmethod => 'gin' }, + +# btree tsquery_ops +{ amopfamily => 'btree/tsquery_ops', amoplefttype => 'tsquery', + amoprighttype => 'tsquery', amopstrategy => '1', + amopopr => '<(tsquery,tsquery)', amopmethod => 'btree' }, +{ amopfamily => 'btree/tsquery_ops', amoplefttype => 'tsquery', + amoprighttype => 'tsquery', amopstrategy => '2', + amopopr => '<=(tsquery,tsquery)', amopmethod => 'btree' }, +{ amopfamily => 'btree/tsquery_ops', amoplefttype => 'tsquery', + amoprighttype => 'tsquery', amopstrategy => '3', + amopopr => '=(tsquery,tsquery)', amopmethod => 'btree' }, +{ amopfamily => 'btree/tsquery_ops', amoplefttype => 'tsquery', + amoprighttype => 'tsquery', amopstrategy => '4', + amopopr => '>=(tsquery,tsquery)', amopmethod => 'btree' }, +{ amopfamily => 'btree/tsquery_ops', amoplefttype => 'tsquery', + amoprighttype => 'tsquery', amopstrategy => '5', + amopopr => '>(tsquery,tsquery)', amopmethod => 'btree' }, + +# GiST tsquery_ops +{ amopfamily => 'gist/tsquery_ops', amoplefttype => 'tsquery', + amoprighttype => 'tsquery', amopstrategy => '7', + amopopr => '@>(tsquery,tsquery)', amopmethod => 'gist' }, +{ amopfamily => 'gist/tsquery_ops', amoplefttype => 'tsquery', + amoprighttype => 'tsquery', amopstrategy => '8', + amopopr => '<@(tsquery,tsquery)', amopmethod => 'gist' }, + +# btree range_ops +{ amopfamily => 'btree/range_ops', amoplefttype => 'anyrange', + amoprighttype => 'anyrange', amopstrategy => '1', + amopopr => '<(anyrange,anyrange)', amopmethod => 'btree' }, +{ amopfamily => 'btree/range_ops', amoplefttype => 'anyrange', + amoprighttype => 'anyrange', amopstrategy => '2', + amopopr => '<=(anyrange,anyrange)', amopmethod => 'btree' }, +{ amopfamily => 'btree/range_ops', amoplefttype => 'anyrange', + amoprighttype => 'anyrange', amopstrategy => '3', + amopopr => '=(anyrange,anyrange)', amopmethod => 'btree' }, +{ amopfamily => 'btree/range_ops', amoplefttype => 'anyrange', + amoprighttype => 'anyrange', amopstrategy => '4', + amopopr => '>=(anyrange,anyrange)', amopmethod => 'btree' }, +{ amopfamily => 'btree/range_ops', amoplefttype => 'anyrange', + amoprighttype => 'anyrange', amopstrategy => '5', + amopopr => '>(anyrange,anyrange)', amopmethod => 'btree' }, + +# hash range_ops +{ amopfamily => 'hash/range_ops', amoplefttype => 'anyrange', + amoprighttype => 'anyrange', amopstrategy => '1', + amopopr => '=(anyrange,anyrange)', amopmethod => 'hash' }, + +# GiST range_ops +{ amopfamily => 'gist/range_ops', amoplefttype => 'anyrange', + amoprighttype => 'anyrange', amopstrategy => '1', + amopopr => '<<(anyrange,anyrange)', amopmethod => 'gist' }, +{ amopfamily => 'gist/range_ops', amoplefttype => 'anyrange', + amoprighttype => 'anyrange', amopstrategy => '2', + amopopr => '&<(anyrange,anyrange)', amopmethod => 'gist' }, +{ amopfamily => 'gist/range_ops', amoplefttype => 'anyrange', + amoprighttype => 'anyrange', amopstrategy => '3', + amopopr => '&&(anyrange,anyrange)', amopmethod => 'gist' }, +{ amopfamily => 'gist/range_ops', amoplefttype => 'anyrange', + amoprighttype => 'anyrange', amopstrategy => '4', + amopopr => '&>(anyrange,anyrange)', amopmethod => 'gist' }, +{ amopfamily => 'gist/range_ops', amoplefttype => 'anyrange', + amoprighttype => 'anyrange', amopstrategy => '5', + amopopr => '>>(anyrange,anyrange)', amopmethod => 'gist' }, +{ amopfamily => 'gist/range_ops', amoplefttype => 'anyrange', + amoprighttype => 'anyrange', amopstrategy => '6', + amopopr => '-|-(anyrange,anyrange)', amopmethod => 'gist' }, +{ amopfamily => 'gist/range_ops', amoplefttype => 'anyrange', + amoprighttype => 'anyrange', amopstrategy => '7', + amopopr => '@>(anyrange,anyrange)', amopmethod => 'gist' }, +{ amopfamily => 'gist/range_ops', amoplefttype => 'anyrange', + amoprighttype => 'anyrange', amopstrategy => '8', + amopopr => '<@(anyrange,anyrange)', amopmethod => 'gist' }, +{ amopfamily => 'gist/range_ops', amoplefttype => 'anyrange', + amoprighttype => 'anyelement', amopstrategy => '16', + amopopr => '@>(anyrange,anyelement)', amopmethod => 'gist' }, +{ amopfamily => 'gist/range_ops', amoplefttype => 'anyrange', + amoprighttype => 'anyrange', amopstrategy => '18', + amopopr => '=(anyrange,anyrange)', amopmethod => 'gist' }, + +# SP-GiST quad_point_ops +{ amopfamily => 'spgist/quad_point_ops', amoplefttype => 'point', + amoprighttype => 'point', amopstrategy => '11', amopopr => '>^(point,point)', + amopmethod => 'spgist' }, +{ amopfamily => 'spgist/quad_point_ops', amoplefttype => 'point', + amoprighttype => 'point', amopstrategy => '1', amopopr => '<<(point,point)', + amopmethod => 'spgist' }, +{ amopfamily => 'spgist/quad_point_ops', amoplefttype => 'point', + amoprighttype => 'point', amopstrategy => '5', amopopr => '>>(point,point)', + amopmethod => 'spgist' }, +{ amopfamily => 'spgist/quad_point_ops', amoplefttype => 'point', + amoprighttype => 'point', amopstrategy => '10', amopopr => '<^(point,point)', + amopmethod => 'spgist' }, +{ amopfamily => 'spgist/quad_point_ops', amoplefttype => 'point', + amoprighttype => 'point', amopstrategy => '6', amopopr => '~=(point,point)', + amopmethod => 'spgist' }, +{ amopfamily => 'spgist/quad_point_ops', amoplefttype => 'point', + amoprighttype => 'box', amopstrategy => '8', amopopr => '<@(point,box)', + amopmethod => 'spgist' }, + +# SP-GiST kd_point_ops +{ amopfamily => 'spgist/kd_point_ops', amoplefttype => 'point', + amoprighttype => 'point', amopstrategy => '11', amopopr => '>^(point,point)', + amopmethod => 'spgist' }, +{ amopfamily => 'spgist/kd_point_ops', amoplefttype => 'point', + amoprighttype => 'point', amopstrategy => '1', amopopr => '<<(point,point)', + amopmethod => 'spgist' }, +{ amopfamily => 'spgist/kd_point_ops', amoplefttype => 'point', + amoprighttype => 'point', amopstrategy => '5', amopopr => '>>(point,point)', + amopmethod => 'spgist' }, +{ amopfamily => 'spgist/kd_point_ops', amoplefttype => 'point', + amoprighttype => 'point', amopstrategy => '10', amopopr => '<^(point,point)', + amopmethod => 'spgist' }, +{ amopfamily => 'spgist/kd_point_ops', amoplefttype => 'point', + amoprighttype => 'point', amopstrategy => '6', amopopr => '~=(point,point)', + amopmethod => 'spgist' }, +{ amopfamily => 'spgist/kd_point_ops', amoplefttype => 'point', + amoprighttype => 'box', amopstrategy => '8', amopopr => '<@(point,box)', + amopmethod => 'spgist' }, + +# SP-GiST text_ops +{ amopfamily => 'spgist/text_ops', amoplefttype => 'text', + amoprighttype => 'text', amopstrategy => '1', amopopr => '~<~(text,text)', + amopmethod => 'spgist' }, +{ amopfamily => 'spgist/text_ops', amoplefttype => 'text', + amoprighttype => 'text', amopstrategy => '2', amopopr => '~<=~(text,text)', + amopmethod => 'spgist' }, +{ amopfamily => 'spgist/text_ops', amoplefttype => 'text', + amoprighttype => 'text', amopstrategy => '3', amopopr => '=(text,text)', + amopmethod => 'spgist' }, +{ amopfamily => 'spgist/text_ops', amoplefttype => 'text', + amoprighttype => 'text', amopstrategy => '4', amopopr => '~>=~(text,text)', + amopmethod => 'spgist' }, +{ amopfamily => 'spgist/text_ops', amoplefttype => 'text', + amoprighttype => 'text', amopstrategy => '5', amopopr => '~>~(text,text)', + amopmethod => 'spgist' }, +{ amopfamily => 'spgist/text_ops', amoplefttype => 'text', + amoprighttype => 'text', amopstrategy => '11', amopopr => '<(text,text)', + amopmethod => 'spgist' }, +{ amopfamily => 'spgist/text_ops', amoplefttype => 'text', + amoprighttype => 'text', amopstrategy => '12', amopopr => '<=(text,text)', + amopmethod => 'spgist' }, +{ amopfamily => 'spgist/text_ops', amoplefttype => 'text', + amoprighttype => 'text', amopstrategy => '14', amopopr => '>=(text,text)', + amopmethod => 'spgist' }, +{ amopfamily => 'spgist/text_ops', amoplefttype => 'text', + amoprighttype => 'text', amopstrategy => '15', amopopr => '>(text,text)', + amopmethod => 'spgist' }, +{ amopfamily => 'spgist/text_ops', amoplefttype => 'text', + amoprighttype => 'text', amopstrategy => '28', amopopr => '^@(text,text)', + amopmethod => 'spgist' }, + +# btree jsonb_ops +{ amopfamily => 'btree/jsonb_ops', amoplefttype => 'jsonb', + amoprighttype => 'jsonb', amopstrategy => '1', amopopr => '<(jsonb,jsonb)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/jsonb_ops', amoplefttype => 'jsonb', + amoprighttype => 'jsonb', amopstrategy => '2', amopopr => '<=(jsonb,jsonb)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/jsonb_ops', amoplefttype => 'jsonb', + amoprighttype => 'jsonb', amopstrategy => '3', amopopr => '=(jsonb,jsonb)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/jsonb_ops', amoplefttype => 'jsonb', + amoprighttype => 'jsonb', amopstrategy => '4', amopopr => '>=(jsonb,jsonb)', + amopmethod => 'btree' }, +{ amopfamily => 'btree/jsonb_ops', amoplefttype => 'jsonb', + amoprighttype => 'jsonb', amopstrategy => '5', amopopr => '>(jsonb,jsonb)', + amopmethod => 'btree' }, + +# hash jsonb_ops +{ amopfamily => 'hash/jsonb_ops', amoplefttype => 'jsonb', + amoprighttype => 'jsonb', amopstrategy => '1', amopopr => '=(jsonb,jsonb)', + amopmethod => 'hash' }, + +# GIN jsonb_ops +{ amopfamily => 'gin/jsonb_ops', amoplefttype => 'jsonb', + amoprighttype => 'jsonb', amopstrategy => '7', amopopr => '@>(jsonb,jsonb)', + amopmethod => 'gin' }, +{ amopfamily => 'gin/jsonb_ops', amoplefttype => 'jsonb', + amoprighttype => 'text', amopstrategy => '9', amopopr => '?(jsonb,text)', + amopmethod => 'gin' }, +{ amopfamily => 'gin/jsonb_ops', amoplefttype => 'jsonb', + amoprighttype => '_text', amopstrategy => '10', amopopr => '?|(jsonb,_text)', + amopmethod => 'gin' }, +{ amopfamily => 'gin/jsonb_ops', amoplefttype => 'jsonb', + amoprighttype => '_text', amopstrategy => '11', amopopr => '?&(jsonb,_text)', + amopmethod => 'gin' }, + +# GIN jsonb_path_ops +{ amopfamily => 'gin/jsonb_path_ops', amoplefttype => 'jsonb', + amoprighttype => 'jsonb', amopstrategy => '7', amopopr => '@>(jsonb,jsonb)', + amopmethod => 'gin' }, + +# SP-GiST range_ops +{ amopfamily => 'spgist/range_ops', amoplefttype => 'anyrange', + amoprighttype => 'anyrange', amopstrategy => '1', + amopopr => '<<(anyrange,anyrange)', amopmethod => 'spgist' }, +{ amopfamily => 'spgist/range_ops', amoplefttype => 'anyrange', + amoprighttype => 'anyrange', amopstrategy => '2', + amopopr => '&<(anyrange,anyrange)', amopmethod => 'spgist' }, +{ amopfamily => 'spgist/range_ops', amoplefttype => 'anyrange', + amoprighttype => 'anyrange', amopstrategy => '3', + amopopr => '&&(anyrange,anyrange)', amopmethod => 'spgist' }, +{ amopfamily => 'spgist/range_ops', amoplefttype => 'anyrange', + amoprighttype => 'anyrange', amopstrategy => '4', + amopopr => '&>(anyrange,anyrange)', amopmethod => 'spgist' }, +{ amopfamily => 'spgist/range_ops', amoplefttype => 'anyrange', + amoprighttype => 'anyrange', amopstrategy => '5', + amopopr => '>>(anyrange,anyrange)', amopmethod => 'spgist' }, +{ amopfamily => 'spgist/range_ops', amoplefttype => 'anyrange', + amoprighttype => 'anyrange', amopstrategy => '6', + amopopr => '-|-(anyrange,anyrange)', amopmethod => 'spgist' }, +{ amopfamily => 'spgist/range_ops', amoplefttype => 'anyrange', + amoprighttype => 'anyrange', amopstrategy => '7', + amopopr => '@>(anyrange,anyrange)', amopmethod => 'spgist' }, +{ amopfamily => 'spgist/range_ops', amoplefttype => 'anyrange', + amoprighttype => 'anyrange', amopstrategy => '8', + amopopr => '<@(anyrange,anyrange)', amopmethod => 'spgist' }, +{ amopfamily => 'spgist/range_ops', amoplefttype => 'anyrange', + amoprighttype => 'anyelement', amopstrategy => '16', + amopopr => '@>(anyrange,anyelement)', amopmethod => 'spgist' }, +{ amopfamily => 'spgist/range_ops', amoplefttype => 'anyrange', + amoprighttype => 'anyrange', amopstrategy => '18', + amopopr => '=(anyrange,anyrange)', amopmethod => 'spgist' }, + +# SP-GiST box_ops +{ amopfamily => 'spgist/box_ops', amoplefttype => 'box', amoprighttype => 'box', + amopstrategy => '1', amopopr => '<<(box,box)', amopmethod => 'spgist' }, +{ amopfamily => 'spgist/box_ops', amoplefttype => 'box', amoprighttype => 'box', + amopstrategy => '2', amopopr => '&<(box,box)', amopmethod => 'spgist' }, +{ amopfamily => 'spgist/box_ops', amoplefttype => 'box', amoprighttype => 'box', + amopstrategy => '3', amopopr => '&&(box,box)', amopmethod => 'spgist' }, +{ amopfamily => 'spgist/box_ops', amoplefttype => 'box', amoprighttype => 'box', + amopstrategy => '4', amopopr => '&>(box,box)', amopmethod => 'spgist' }, +{ amopfamily => 'spgist/box_ops', amoplefttype => 'box', amoprighttype => 'box', + amopstrategy => '5', amopopr => '>>(box,box)', amopmethod => 'spgist' }, +{ amopfamily => 'spgist/box_ops', amoplefttype => 'box', amoprighttype => 'box', + amopstrategy => '6', amopopr => '~=(box,box)', amopmethod => 'spgist' }, +{ amopfamily => 'spgist/box_ops', amoplefttype => 'box', amoprighttype => 'box', + amopstrategy => '7', amopopr => '@>(box,box)', amopmethod => 'spgist' }, +{ amopfamily => 'spgist/box_ops', amoplefttype => 'box', amoprighttype => 'box', + amopstrategy => '8', amopopr => '<@(box,box)', amopmethod => 'spgist' }, +{ amopfamily => 'spgist/box_ops', amoplefttype => 'box', amoprighttype => 'box', + amopstrategy => '9', amopopr => '&<|(box,box)', amopmethod => 'spgist' }, +{ amopfamily => 'spgist/box_ops', amoplefttype => 'box', amoprighttype => 'box', + amopstrategy => '10', amopopr => '<<|(box,box)', amopmethod => 'spgist' }, +{ amopfamily => 'spgist/box_ops', amoplefttype => 'box', amoprighttype => 'box', + amopstrategy => '11', amopopr => '|>>(box,box)', amopmethod => 'spgist' }, +{ amopfamily => 'spgist/box_ops', amoplefttype => 'box', amoprighttype => 'box', + amopstrategy => '12', amopopr => '|&>(box,box)', amopmethod => 'spgist' }, + +# SP-GiST poly_ops (supports polygons) +{ amopfamily => 'spgist/poly_ops', amoplefttype => 'polygon', + amoprighttype => 'polygon', amopstrategy => '1', + amopopr => '<<(polygon,polygon)', amopmethod => 'spgist' }, +{ amopfamily => 'spgist/poly_ops', amoplefttype => 'polygon', + amoprighttype => 'polygon', amopstrategy => '2', + amopopr => '&<(polygon,polygon)', amopmethod => 'spgist' }, +{ amopfamily => 'spgist/poly_ops', amoplefttype => 'polygon', + amoprighttype => 'polygon', amopstrategy => '3', + amopopr => '&&(polygon,polygon)', amopmethod => 'spgist' }, +{ amopfamily => 'spgist/poly_ops', amoplefttype => 'polygon', + amoprighttype => 'polygon', amopstrategy => '4', + amopopr => '&>(polygon,polygon)', amopmethod => 'spgist' }, +{ amopfamily => 'spgist/poly_ops', amoplefttype => 'polygon', + amoprighttype => 'polygon', amopstrategy => '5', + amopopr => '>>(polygon,polygon)', amopmethod => 'spgist' }, +{ amopfamily => 'spgist/poly_ops', amoplefttype => 'polygon', + amoprighttype => 'polygon', amopstrategy => '6', + amopopr => '~=(polygon,polygon)', amopmethod => 'spgist' }, +{ amopfamily => 'spgist/poly_ops', amoplefttype => 'polygon', + amoprighttype => 'polygon', amopstrategy => '7', + amopopr => '@>(polygon,polygon)', amopmethod => 'spgist' }, +{ amopfamily => 'spgist/poly_ops', amoplefttype => 'polygon', + amoprighttype => 'polygon', amopstrategy => '8', + amopopr => '<@(polygon,polygon)', amopmethod => 'spgist' }, +{ amopfamily => 'spgist/poly_ops', amoplefttype => 'polygon', + amoprighttype => 'polygon', amopstrategy => '9', + amopopr => '&<|(polygon,polygon)', amopmethod => 'spgist' }, +{ amopfamily => 'spgist/poly_ops', amoplefttype => 'polygon', + amoprighttype => 'polygon', amopstrategy => '10', + amopopr => '<<|(polygon,polygon)', amopmethod => 'spgist' }, +{ amopfamily => 'spgist/poly_ops', amoplefttype => 'polygon', + amoprighttype => 'polygon', amopstrategy => '11', + amopopr => '|>>(polygon,polygon)', amopmethod => 'spgist' }, +{ amopfamily => 'spgist/poly_ops', amoplefttype => 'polygon', + amoprighttype => 'polygon', amopstrategy => '12', + amopopr => '|&>(polygon,polygon)', amopmethod => 'spgist' }, + +# GiST inet_ops +{ amopfamily => 'gist/network_ops', amoplefttype => 'inet', + amoprighttype => 'inet', amopstrategy => '3', amopopr => '&&(inet,inet)', + amopmethod => 'gist' }, +{ amopfamily => 'gist/network_ops', amoplefttype => 'inet', + amoprighttype => 'inet', amopstrategy => '18', amopopr => '=(inet,inet)', + amopmethod => 'gist' }, +{ amopfamily => 'gist/network_ops', amoplefttype => 'inet', + amoprighttype => 'inet', amopstrategy => '19', amopopr => '<>(inet,inet)', + amopmethod => 'gist' }, +{ amopfamily => 'gist/network_ops', amoplefttype => 'inet', + amoprighttype => 'inet', amopstrategy => '20', amopopr => '<(inet,inet)', + amopmethod => 'gist' }, +{ amopfamily => 'gist/network_ops', amoplefttype => 'inet', + amoprighttype => 'inet', amopstrategy => '21', amopopr => '<=(inet,inet)', + amopmethod => 'gist' }, +{ amopfamily => 'gist/network_ops', amoplefttype => 'inet', + amoprighttype => 'inet', amopstrategy => '22', amopopr => '>(inet,inet)', + amopmethod => 'gist' }, +{ amopfamily => 'gist/network_ops', amoplefttype => 'inet', + amoprighttype => 'inet', amopstrategy => '23', amopopr => '>=(inet,inet)', + amopmethod => 'gist' }, +{ amopfamily => 'gist/network_ops', amoplefttype => 'inet', + amoprighttype => 'inet', amopstrategy => '24', amopopr => '<<(inet,inet)', + amopmethod => 'gist' }, +{ amopfamily => 'gist/network_ops', amoplefttype => 'inet', + amoprighttype => 'inet', amopstrategy => '25', amopopr => '<<=(inet,inet)', + amopmethod => 'gist' }, +{ amopfamily => 'gist/network_ops', amoplefttype => 'inet', + amoprighttype => 'inet', amopstrategy => '26', amopopr => '>>(inet,inet)', + amopmethod => 'gist' }, +{ amopfamily => 'gist/network_ops', amoplefttype => 'inet', + amoprighttype => 'inet', amopstrategy => '27', amopopr => '>>=(inet,inet)', + amopmethod => 'gist' }, + +# SP-GiST inet_ops +{ amopfamily => 'spgist/network_ops', amoplefttype => 'inet', + amoprighttype => 'inet', amopstrategy => '3', amopopr => '&&(inet,inet)', + amopmethod => 'spgist' }, +{ amopfamily => 'spgist/network_ops', amoplefttype => 'inet', + amoprighttype => 'inet', amopstrategy => '18', amopopr => '=(inet,inet)', + amopmethod => 'spgist' }, +{ amopfamily => 'spgist/network_ops', amoplefttype => 'inet', + amoprighttype => 'inet', amopstrategy => '19', amopopr => '<>(inet,inet)', + amopmethod => 'spgist' }, +{ amopfamily => 'spgist/network_ops', amoplefttype => 'inet', + amoprighttype => 'inet', amopstrategy => '20', amopopr => '<(inet,inet)', + amopmethod => 'spgist' }, +{ amopfamily => 'spgist/network_ops', amoplefttype => 'inet', + amoprighttype => 'inet', amopstrategy => '21', amopopr => '<=(inet,inet)', + amopmethod => 'spgist' }, +{ amopfamily => 'spgist/network_ops', amoplefttype => 'inet', + amoprighttype => 'inet', amopstrategy => '22', amopopr => '>(inet,inet)', + amopmethod => 'spgist' }, +{ amopfamily => 'spgist/network_ops', amoplefttype => 'inet', + amoprighttype => 'inet', amopstrategy => '23', amopopr => '>=(inet,inet)', + amopmethod => 'spgist' }, +{ amopfamily => 'spgist/network_ops', amoplefttype => 'inet', + amoprighttype => 'inet', amopstrategy => '24', amopopr => '<<(inet,inet)', + amopmethod => 'spgist' }, +{ amopfamily => 'spgist/network_ops', amoplefttype => 'inet', + amoprighttype => 'inet', amopstrategy => '25', amopopr => '<<=(inet,inet)', + amopmethod => 'spgist' }, +{ amopfamily => 'spgist/network_ops', amoplefttype => 'inet', + amoprighttype => 'inet', amopstrategy => '26', amopopr => '>>(inet,inet)', + amopmethod => 'spgist' }, +{ amopfamily => 'spgist/network_ops', amoplefttype => 'inet', + amoprighttype => 'inet', amopstrategy => '27', amopopr => '>>=(inet,inet)', + amopmethod => 'spgist' }, + +# BRIN opclasses + +# minmax bytea +{ amopfamily => 'brin/bytea_minmax_ops', amoplefttype => 'bytea', + amoprighttype => 'bytea', amopstrategy => '1', amopopr => '<(bytea,bytea)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/bytea_minmax_ops', amoplefttype => 'bytea', + amoprighttype => 'bytea', amopstrategy => '2', amopopr => '<=(bytea,bytea)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/bytea_minmax_ops', amoplefttype => 'bytea', + amoprighttype => 'bytea', amopstrategy => '3', amopopr => '=(bytea,bytea)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/bytea_minmax_ops', amoplefttype => 'bytea', + amoprighttype => 'bytea', amopstrategy => '4', amopopr => '>=(bytea,bytea)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/bytea_minmax_ops', amoplefttype => 'bytea', + amoprighttype => 'bytea', amopstrategy => '5', amopopr => '>(bytea,bytea)', + amopmethod => 'brin' }, + +# minmax "char" +{ amopfamily => 'brin/char_minmax_ops', amoplefttype => 'char', + amoprighttype => 'char', amopstrategy => '1', amopopr => '<(char,char)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/char_minmax_ops', amoplefttype => 'char', + amoprighttype => 'char', amopstrategy => '2', amopopr => '<=(char,char)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/char_minmax_ops', amoplefttype => 'char', + amoprighttype => 'char', amopstrategy => '3', amopopr => '=(char,char)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/char_minmax_ops', amoplefttype => 'char', + amoprighttype => 'char', amopstrategy => '4', amopopr => '>=(char,char)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/char_minmax_ops', amoplefttype => 'char', + amoprighttype => 'char', amopstrategy => '5', amopopr => '>(char,char)', + amopmethod => 'brin' }, + +# minmax name +{ amopfamily => 'brin/name_minmax_ops', amoplefttype => 'name', + amoprighttype => 'name', amopstrategy => '1', amopopr => '<(name,name)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/name_minmax_ops', amoplefttype => 'name', + amoprighttype => 'name', amopstrategy => '2', amopopr => '<=(name,name)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/name_minmax_ops', amoplefttype => 'name', + amoprighttype => 'name', amopstrategy => '3', amopopr => '=(name,name)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/name_minmax_ops', amoplefttype => 'name', + amoprighttype => 'name', amopstrategy => '4', amopopr => '>=(name,name)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/name_minmax_ops', amoplefttype => 'name', + amoprighttype => 'name', amopstrategy => '5', amopopr => '>(name,name)', + amopmethod => 'brin' }, + +# minmax integer + +{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int8', + amoprighttype => 'int8', amopstrategy => '1', amopopr => '<(int8,int8)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int8', + amoprighttype => 'int8', amopstrategy => '2', amopopr => '<=(int8,int8)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int8', + amoprighttype => 'int8', amopstrategy => '3', amopopr => '=(int8,int8)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int8', + amoprighttype => 'int8', amopstrategy => '4', amopopr => '>=(int8,int8)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int8', + amoprighttype => 'int8', amopstrategy => '5', amopopr => '>(int8,int8)', + amopmethod => 'brin' }, + +{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int8', + amoprighttype => 'int2', amopstrategy => '1', amopopr => '<(int8,int2)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int8', + amoprighttype => 'int2', amopstrategy => '2', amopopr => '<=(int8,int2)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int8', + amoprighttype => 'int2', amopstrategy => '3', amopopr => '=(int8,int2)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int8', + amoprighttype => 'int2', amopstrategy => '4', amopopr => '>=(int8,int2)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int8', + amoprighttype => 'int2', amopstrategy => '5', amopopr => '>(int8,int2)', + amopmethod => 'brin' }, + +{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int8', + amoprighttype => 'int4', amopstrategy => '1', amopopr => '<(int8,int4)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int8', + amoprighttype => 'int4', amopstrategy => '2', amopopr => '<=(int8,int4)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int8', + amoprighttype => 'int4', amopstrategy => '3', amopopr => '=(int8,int4)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int8', + amoprighttype => 'int4', amopstrategy => '4', amopopr => '>=(int8,int4)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int8', + amoprighttype => 'int4', amopstrategy => '5', amopopr => '>(int8,int4)', + amopmethod => 'brin' }, + +{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int2', + amoprighttype => 'int2', amopstrategy => '1', amopopr => '<(int2,int2)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int2', + amoprighttype => 'int2', amopstrategy => '2', amopopr => '<=(int2,int2)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int2', + amoprighttype => 'int2', amopstrategy => '3', amopopr => '=(int2,int2)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int2', + amoprighttype => 'int2', amopstrategy => '4', amopopr => '>=(int2,int2)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int2', + amoprighttype => 'int2', amopstrategy => '5', amopopr => '>(int2,int2)', + amopmethod => 'brin' }, + +{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int2', + amoprighttype => 'int8', amopstrategy => '1', amopopr => '<(int2,int8)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int2', + amoprighttype => 'int8', amopstrategy => '2', amopopr => '<=(int2,int8)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int2', + amoprighttype => 'int8', amopstrategy => '3', amopopr => '=(int2,int8)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int2', + amoprighttype => 'int8', amopstrategy => '4', amopopr => '>=(int2,int8)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int2', + amoprighttype => 'int8', amopstrategy => '5', amopopr => '>(int2,int8)', + amopmethod => 'brin' }, + +{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int2', + amoprighttype => 'int4', amopstrategy => '1', amopopr => '<(int2,int4)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int2', + amoprighttype => 'int4', amopstrategy => '2', amopopr => '<=(int2,int4)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int2', + amoprighttype => 'int4', amopstrategy => '3', amopopr => '=(int2,int4)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int2', + amoprighttype => 'int4', amopstrategy => '4', amopopr => '>=(int2,int4)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int2', + amoprighttype => 'int4', amopstrategy => '5', amopopr => '>(int2,int4)', + amopmethod => 'brin' }, + +{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int4', + amoprighttype => 'int4', amopstrategy => '1', amopopr => '<(int4,int4)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int4', + amoprighttype => 'int4', amopstrategy => '2', amopopr => '<=(int4,int4)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int4', + amoprighttype => 'int4', amopstrategy => '3', amopopr => '=(int4,int4)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int4', + amoprighttype => 'int4', amopstrategy => '4', amopopr => '>=(int4,int4)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int4', + amoprighttype => 'int4', amopstrategy => '5', amopopr => '>(int4,int4)', + amopmethod => 'brin' }, + +{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int4', + amoprighttype => 'int2', amopstrategy => '1', amopopr => '<(int4,int2)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int4', + amoprighttype => 'int2', amopstrategy => '2', amopopr => '<=(int4,int2)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int4', + amoprighttype => 'int2', amopstrategy => '3', amopopr => '=(int4,int2)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int4', + amoprighttype => 'int2', amopstrategy => '4', amopopr => '>=(int4,int2)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int4', + amoprighttype => 'int2', amopstrategy => '5', amopopr => '>(int4,int2)', + amopmethod => 'brin' }, + +{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int4', + amoprighttype => 'int8', amopstrategy => '1', amopopr => '<(int4,int8)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int4', + amoprighttype => 'int8', amopstrategy => '2', amopopr => '<=(int4,int8)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int4', + amoprighttype => 'int8', amopstrategy => '3', amopopr => '=(int4,int8)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int4', + amoprighttype => 'int8', amopstrategy => '4', amopopr => '>=(int4,int8)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int4', + amoprighttype => 'int8', amopstrategy => '5', amopopr => '>(int4,int8)', + amopmethod => 'brin' }, + +# minmax text +{ amopfamily => 'brin/text_minmax_ops', amoplefttype => 'text', + amoprighttype => 'text', amopstrategy => '1', amopopr => '<(text,text)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/text_minmax_ops', amoplefttype => 'text', + amoprighttype => 'text', amopstrategy => '2', amopopr => '<=(text,text)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/text_minmax_ops', amoplefttype => 'text', + amoprighttype => 'text', amopstrategy => '3', amopopr => '=(text,text)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/text_minmax_ops', amoplefttype => 'text', + amoprighttype => 'text', amopstrategy => '4', amopopr => '>=(text,text)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/text_minmax_ops', amoplefttype => 'text', + amoprighttype => 'text', amopstrategy => '5', amopopr => '>(text,text)', + amopmethod => 'brin' }, + +# minmax oid +{ amopfamily => 'brin/oid_minmax_ops', amoplefttype => 'oid', + amoprighttype => 'oid', amopstrategy => '1', amopopr => '<(oid,oid)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/oid_minmax_ops', amoplefttype => 'oid', + amoprighttype => 'oid', amopstrategy => '2', amopopr => '<=(oid,oid)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/oid_minmax_ops', amoplefttype => 'oid', + amoprighttype => 'oid', amopstrategy => '3', amopopr => '=(oid,oid)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/oid_minmax_ops', amoplefttype => 'oid', + amoprighttype => 'oid', amopstrategy => '4', amopopr => '>=(oid,oid)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/oid_minmax_ops', amoplefttype => 'oid', + amoprighttype => 'oid', amopstrategy => '5', amopopr => '>(oid,oid)', + amopmethod => 'brin' }, + +# minmax tid +{ amopfamily => 'brin/tid_minmax_ops', amoplefttype => 'tid', + amoprighttype => 'tid', amopstrategy => '1', amopopr => '<(tid,tid)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/tid_minmax_ops', amoplefttype => 'tid', + amoprighttype => 'tid', amopstrategy => '2', amopopr => '<=(tid,tid)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/tid_minmax_ops', amoplefttype => 'tid', + amoprighttype => 'tid', amopstrategy => '3', amopopr => '=(tid,tid)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/tid_minmax_ops', amoplefttype => 'tid', + amoprighttype => 'tid', amopstrategy => '4', amopopr => '>=(tid,tid)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/tid_minmax_ops', amoplefttype => 'tid', + amoprighttype => 'tid', amopstrategy => '5', amopopr => '>(tid,tid)', + amopmethod => 'brin' }, + +# minmax float (float4, float8) + +{ amopfamily => 'brin/float_minmax_ops', amoplefttype => 'float4', + amoprighttype => 'float4', amopstrategy => '1', amopopr => '<(float4,float4)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/float_minmax_ops', amoplefttype => 'float4', + amoprighttype => 'float4', amopstrategy => '2', + amopopr => '<=(float4,float4)', amopmethod => 'brin' }, +{ amopfamily => 'brin/float_minmax_ops', amoplefttype => 'float4', + amoprighttype => 'float4', amopstrategy => '3', amopopr => '=(float4,float4)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/float_minmax_ops', amoplefttype => 'float4', + amoprighttype => 'float4', amopstrategy => '4', + amopopr => '>=(float4,float4)', amopmethod => 'brin' }, +{ amopfamily => 'brin/float_minmax_ops', amoplefttype => 'float4', + amoprighttype => 'float4', amopstrategy => '5', amopopr => '>(float4,float4)', + amopmethod => 'brin' }, + +{ amopfamily => 'brin/float_minmax_ops', amoplefttype => 'float4', + amoprighttype => 'float8', amopstrategy => '1', amopopr => '<(float4,float8)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/float_minmax_ops', amoplefttype => 'float4', + amoprighttype => 'float8', amopstrategy => '2', + amopopr => '<=(float4,float8)', amopmethod => 'brin' }, +{ amopfamily => 'brin/float_minmax_ops', amoplefttype => 'float4', + amoprighttype => 'float8', amopstrategy => '3', amopopr => '=(float4,float8)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/float_minmax_ops', amoplefttype => 'float4', + amoprighttype => 'float8', amopstrategy => '4', + amopopr => '>=(float4,float8)', amopmethod => 'brin' }, +{ amopfamily => 'brin/float_minmax_ops', amoplefttype => 'float4', + amoprighttype => 'float8', amopstrategy => '5', amopopr => '>(float4,float8)', + amopmethod => 'brin' }, + +{ amopfamily => 'brin/float_minmax_ops', amoplefttype => 'float8', + amoprighttype => 'float4', amopstrategy => '1', amopopr => '<(float8,float4)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/float_minmax_ops', amoplefttype => 'float8', + amoprighttype => 'float4', amopstrategy => '2', + amopopr => '<=(float8,float4)', amopmethod => 'brin' }, +{ amopfamily => 'brin/float_minmax_ops', amoplefttype => 'float8', + amoprighttype => 'float4', amopstrategy => '3', amopopr => '=(float8,float4)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/float_minmax_ops', amoplefttype => 'float8', + amoprighttype => 'float4', amopstrategy => '4', + amopopr => '>=(float8,float4)', amopmethod => 'brin' }, +{ amopfamily => 'brin/float_minmax_ops', amoplefttype => 'float8', + amoprighttype => 'float4', amopstrategy => '5', amopopr => '>(float8,float4)', + amopmethod => 'brin' }, + +{ amopfamily => 'brin/float_minmax_ops', amoplefttype => 'float8', + amoprighttype => 'float8', amopstrategy => '1', amopopr => '<(float8,float8)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/float_minmax_ops', amoplefttype => 'float8', + amoprighttype => 'float8', amopstrategy => '2', + amopopr => '<=(float8,float8)', amopmethod => 'brin' }, +{ amopfamily => 'brin/float_minmax_ops', amoplefttype => 'float8', + amoprighttype => 'float8', amopstrategy => '3', amopopr => '=(float8,float8)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/float_minmax_ops', amoplefttype => 'float8', + amoprighttype => 'float8', amopstrategy => '4', + amopopr => '>=(float8,float8)', amopmethod => 'brin' }, +{ amopfamily => 'brin/float_minmax_ops', amoplefttype => 'float8', + amoprighttype => 'float8', amopstrategy => '5', amopopr => '>(float8,float8)', + amopmethod => 'brin' }, + +# minmax abstime +{ amopfamily => 'brin/abstime_minmax_ops', amoplefttype => 'abstime', + amoprighttype => 'abstime', amopstrategy => '1', + amopopr => '<(abstime,abstime)', amopmethod => 'brin' }, +{ amopfamily => 'brin/abstime_minmax_ops', amoplefttype => 'abstime', + amoprighttype => 'abstime', amopstrategy => '2', + amopopr => '<=(abstime,abstime)', amopmethod => 'brin' }, +{ amopfamily => 'brin/abstime_minmax_ops', amoplefttype => 'abstime', + amoprighttype => 'abstime', amopstrategy => '3', + amopopr => '=(abstime,abstime)', amopmethod => 'brin' }, +{ amopfamily => 'brin/abstime_minmax_ops', amoplefttype => 'abstime', + amoprighttype => 'abstime', amopstrategy => '4', + amopopr => '>=(abstime,abstime)', amopmethod => 'brin' }, +{ amopfamily => 'brin/abstime_minmax_ops', amoplefttype => 'abstime', + amoprighttype => 'abstime', amopstrategy => '5', + amopopr => '>(abstime,abstime)', amopmethod => 'brin' }, + +# minmax reltime +{ amopfamily => 'brin/reltime_minmax_ops', amoplefttype => 'reltime', + amoprighttype => 'reltime', amopstrategy => '1', + amopopr => '<(reltime,reltime)', amopmethod => 'brin' }, +{ amopfamily => 'brin/reltime_minmax_ops', amoplefttype => 'reltime', + amoprighttype => 'reltime', amopstrategy => '2', + amopopr => '<=(reltime,reltime)', amopmethod => 'brin' }, +{ amopfamily => 'brin/reltime_minmax_ops', amoplefttype => 'reltime', + amoprighttype => 'reltime', amopstrategy => '3', + amopopr => '=(reltime,reltime)', amopmethod => 'brin' }, +{ amopfamily => 'brin/reltime_minmax_ops', amoplefttype => 'reltime', + amoprighttype => 'reltime', amopstrategy => '4', + amopopr => '>=(reltime,reltime)', amopmethod => 'brin' }, +{ amopfamily => 'brin/reltime_minmax_ops', amoplefttype => 'reltime', + amoprighttype => 'reltime', amopstrategy => '5', + amopopr => '>(reltime,reltime)', amopmethod => 'brin' }, + +# minmax macaddr +{ amopfamily => 'brin/macaddr_minmax_ops', amoplefttype => 'macaddr', + amoprighttype => 'macaddr', amopstrategy => '1', + amopopr => '<(macaddr,macaddr)', amopmethod => 'brin' }, +{ amopfamily => 'brin/macaddr_minmax_ops', amoplefttype => 'macaddr', + amoprighttype => 'macaddr', amopstrategy => '2', + amopopr => '<=(macaddr,macaddr)', amopmethod => 'brin' }, +{ amopfamily => 'brin/macaddr_minmax_ops', amoplefttype => 'macaddr', + amoprighttype => 'macaddr', amopstrategy => '3', + amopopr => '=(macaddr,macaddr)', amopmethod => 'brin' }, +{ amopfamily => 'brin/macaddr_minmax_ops', amoplefttype => 'macaddr', + amoprighttype => 'macaddr', amopstrategy => '4', + amopopr => '>=(macaddr,macaddr)', amopmethod => 'brin' }, +{ amopfamily => 'brin/macaddr_minmax_ops', amoplefttype => 'macaddr', + amoprighttype => 'macaddr', amopstrategy => '5', + amopopr => '>(macaddr,macaddr)', amopmethod => 'brin' }, + +# minmax macaddr8 +{ amopfamily => 'brin/macaddr8_minmax_ops', amoplefttype => 'macaddr8', + amoprighttype => 'macaddr8', amopstrategy => '1', + amopopr => '<(macaddr8,macaddr8)', amopmethod => 'brin' }, +{ amopfamily => 'brin/macaddr8_minmax_ops', amoplefttype => 'macaddr8', + amoprighttype => 'macaddr8', amopstrategy => '2', + amopopr => '<=(macaddr8,macaddr8)', amopmethod => 'brin' }, +{ amopfamily => 'brin/macaddr8_minmax_ops', amoplefttype => 'macaddr8', + amoprighttype => 'macaddr8', amopstrategy => '3', + amopopr => '=(macaddr8,macaddr8)', amopmethod => 'brin' }, +{ amopfamily => 'brin/macaddr8_minmax_ops', amoplefttype => 'macaddr8', + amoprighttype => 'macaddr8', amopstrategy => '4', + amopopr => '>=(macaddr8,macaddr8)', amopmethod => 'brin' }, +{ amopfamily => 'brin/macaddr8_minmax_ops', amoplefttype => 'macaddr8', + amoprighttype => 'macaddr8', amopstrategy => '5', + amopopr => '>(macaddr8,macaddr8)', amopmethod => 'brin' }, + +# minmax inet +{ amopfamily => 'brin/network_minmax_ops', amoplefttype => 'inet', + amoprighttype => 'inet', amopstrategy => '1', amopopr => '<(inet,inet)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/network_minmax_ops', amoplefttype => 'inet', + amoprighttype => 'inet', amopstrategy => '2', amopopr => '<=(inet,inet)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/network_minmax_ops', amoplefttype => 'inet', + amoprighttype => 'inet', amopstrategy => '3', amopopr => '=(inet,inet)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/network_minmax_ops', amoplefttype => 'inet', + amoprighttype => 'inet', amopstrategy => '4', amopopr => '>=(inet,inet)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/network_minmax_ops', amoplefttype => 'inet', + amoprighttype => 'inet', amopstrategy => '5', amopopr => '>(inet,inet)', + amopmethod => 'brin' }, + +# inclusion inet +{ amopfamily => 'brin/network_inclusion_ops', amoplefttype => 'inet', + amoprighttype => 'inet', amopstrategy => '3', amopopr => '&&(inet,inet)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/network_inclusion_ops', amoplefttype => 'inet', + amoprighttype => 'inet', amopstrategy => '7', amopopr => '>>=(inet,inet)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/network_inclusion_ops', amoplefttype => 'inet', + amoprighttype => 'inet', amopstrategy => '8', amopopr => '<<=(inet,inet)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/network_inclusion_ops', amoplefttype => 'inet', + amoprighttype => 'inet', amopstrategy => '18', amopopr => '=(inet,inet)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/network_inclusion_ops', amoplefttype => 'inet', + amoprighttype => 'inet', amopstrategy => '24', amopopr => '>>(inet,inet)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/network_inclusion_ops', amoplefttype => 'inet', + amoprighttype => 'inet', amopstrategy => '26', amopopr => '<<(inet,inet)', + amopmethod => 'brin' }, + +# minmax character +{ amopfamily => 'brin/bpchar_minmax_ops', amoplefttype => 'bpchar', + amoprighttype => 'bpchar', amopstrategy => '1', amopopr => '<(bpchar,bpchar)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/bpchar_minmax_ops', amoplefttype => 'bpchar', + amoprighttype => 'bpchar', amopstrategy => '2', + amopopr => '<=(bpchar,bpchar)', amopmethod => 'brin' }, +{ amopfamily => 'brin/bpchar_minmax_ops', amoplefttype => 'bpchar', + amoprighttype => 'bpchar', amopstrategy => '3', amopopr => '=(bpchar,bpchar)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/bpchar_minmax_ops', amoplefttype => 'bpchar', + amoprighttype => 'bpchar', amopstrategy => '4', + amopopr => '>=(bpchar,bpchar)', amopmethod => 'brin' }, +{ amopfamily => 'brin/bpchar_minmax_ops', amoplefttype => 'bpchar', + amoprighttype => 'bpchar', amopstrategy => '5', amopopr => '>(bpchar,bpchar)', + amopmethod => 'brin' }, + +# minmax time without time zone +{ amopfamily => 'brin/time_minmax_ops', amoplefttype => 'time', + amoprighttype => 'time', amopstrategy => '1', amopopr => '<(time,time)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/time_minmax_ops', amoplefttype => 'time', + amoprighttype => 'time', amopstrategy => '2', amopopr => '<=(time,time)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/time_minmax_ops', amoplefttype => 'time', + amoprighttype => 'time', amopstrategy => '3', amopopr => '=(time,time)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/time_minmax_ops', amoplefttype => 'time', + amoprighttype => 'time', amopstrategy => '4', amopopr => '>=(time,time)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/time_minmax_ops', amoplefttype => 'time', + amoprighttype => 'time', amopstrategy => '5', amopopr => '>(time,time)', + amopmethod => 'brin' }, + +# minmax datetime (date, timestamp, timestamptz) + +{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamp', + amoprighttype => 'timestamp', amopstrategy => '1', + amopopr => '<(timestamp,timestamp)', amopmethod => 'brin' }, +{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamp', + amoprighttype => 'timestamp', amopstrategy => '2', + amopopr => '<=(timestamp,timestamp)', amopmethod => 'brin' }, +{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamp', + amoprighttype => 'timestamp', amopstrategy => '3', + amopopr => '=(timestamp,timestamp)', amopmethod => 'brin' }, +{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamp', + amoprighttype => 'timestamp', amopstrategy => '4', + amopopr => '>=(timestamp,timestamp)', amopmethod => 'brin' }, +{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamp', + amoprighttype => 'timestamp', amopstrategy => '5', + amopopr => '>(timestamp,timestamp)', amopmethod => 'brin' }, + +{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamp', + amoprighttype => 'date', amopstrategy => '1', amopopr => '<(timestamp,date)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamp', + amoprighttype => 'date', amopstrategy => '2', amopopr => '<=(timestamp,date)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamp', + amoprighttype => 'date', amopstrategy => '3', amopopr => '=(timestamp,date)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamp', + amoprighttype => 'date', amopstrategy => '4', amopopr => '>=(timestamp,date)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamp', + amoprighttype => 'date', amopstrategy => '5', amopopr => '>(timestamp,date)', + amopmethod => 'brin' }, + +{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamp', + amoprighttype => 'timestamptz', amopstrategy => '1', + amopopr => '<(timestamp,timestamptz)', amopmethod => 'brin' }, +{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamp', + amoprighttype => 'timestamptz', amopstrategy => '2', + amopopr => '<=(timestamp,timestamptz)', amopmethod => 'brin' }, +{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamp', + amoprighttype => 'timestamptz', amopstrategy => '3', + amopopr => '=(timestamp,timestamptz)', amopmethod => 'brin' }, +{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamp', + amoprighttype => 'timestamptz', amopstrategy => '4', + amopopr => '>=(timestamp,timestamptz)', amopmethod => 'brin' }, +{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamp', + amoprighttype => 'timestamptz', amopstrategy => '5', + amopopr => '>(timestamp,timestamptz)', amopmethod => 'brin' }, + +{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'date', + amoprighttype => 'date', amopstrategy => '1', amopopr => '<(date,date)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'date', + amoprighttype => 'date', amopstrategy => '2', amopopr => '<=(date,date)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'date', + amoprighttype => 'date', amopstrategy => '3', amopopr => '=(date,date)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'date', + amoprighttype => 'date', amopstrategy => '4', amopopr => '>=(date,date)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'date', + amoprighttype => 'date', amopstrategy => '5', amopopr => '>(date,date)', + amopmethod => 'brin' }, + +{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'date', + amoprighttype => 'timestamp', amopstrategy => '1', + amopopr => '<(date,timestamp)', amopmethod => 'brin' }, +{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'date', + amoprighttype => 'timestamp', amopstrategy => '2', + amopopr => '<=(date,timestamp)', amopmethod => 'brin' }, +{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'date', + amoprighttype => 'timestamp', amopstrategy => '3', + amopopr => '=(date,timestamp)', amopmethod => 'brin' }, +{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'date', + amoprighttype => 'timestamp', amopstrategy => '4', + amopopr => '>=(date,timestamp)', amopmethod => 'brin' }, +{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'date', + amoprighttype => 'timestamp', amopstrategy => '5', + amopopr => '>(date,timestamp)', amopmethod => 'brin' }, + +{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'date', + amoprighttype => 'timestamptz', amopstrategy => '1', + amopopr => '<(date,timestamptz)', amopmethod => 'brin' }, +{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'date', + amoprighttype => 'timestamptz', amopstrategy => '2', + amopopr => '<=(date,timestamptz)', amopmethod => 'brin' }, +{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'date', + amoprighttype => 'timestamptz', amopstrategy => '3', + amopopr => '=(date,timestamptz)', amopmethod => 'brin' }, +{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'date', + amoprighttype => 'timestamptz', amopstrategy => '4', + amopopr => '>=(date,timestamptz)', amopmethod => 'brin' }, +{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'date', + amoprighttype => 'timestamptz', amopstrategy => '5', + amopopr => '>(date,timestamptz)', amopmethod => 'brin' }, + +{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamptz', + amoprighttype => 'date', amopstrategy => '1', + amopopr => '<(timestamptz,date)', amopmethod => 'brin' }, +{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamptz', + amoprighttype => 'date', amopstrategy => '2', + amopopr => '<=(timestamptz,date)', amopmethod => 'brin' }, +{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamptz', + amoprighttype => 'date', amopstrategy => '3', + amopopr => '=(timestamptz,date)', amopmethod => 'brin' }, +{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamptz', + amoprighttype => 'date', amopstrategy => '4', + amopopr => '>=(timestamptz,date)', amopmethod => 'brin' }, +{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamptz', + amoprighttype => 'date', amopstrategy => '5', + amopopr => '>(timestamptz,date)', amopmethod => 'brin' }, + +{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamptz', + amoprighttype => 'timestamp', amopstrategy => '1', + amopopr => '<(timestamptz,timestamp)', amopmethod => 'brin' }, +{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamptz', + amoprighttype => 'timestamp', amopstrategy => '2', + amopopr => '<=(timestamptz,timestamp)', amopmethod => 'brin' }, +{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamptz', + amoprighttype => 'timestamp', amopstrategy => '3', + amopopr => '=(timestamptz,timestamp)', amopmethod => 'brin' }, +{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamptz', + amoprighttype => 'timestamp', amopstrategy => '4', + amopopr => '>=(timestamptz,timestamp)', amopmethod => 'brin' }, +{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamptz', + amoprighttype => 'timestamp', amopstrategy => '5', + amopopr => '>(timestamptz,timestamp)', amopmethod => 'brin' }, + +{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamptz', + amoprighttype => 'timestamptz', amopstrategy => '1', + amopopr => '<(timestamptz,timestamptz)', amopmethod => 'brin' }, +{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamptz', + amoprighttype => 'timestamptz', amopstrategy => '2', + amopopr => '<=(timestamptz,timestamptz)', amopmethod => 'brin' }, +{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamptz', + amoprighttype => 'timestamptz', amopstrategy => '3', + amopopr => '=(timestamptz,timestamptz)', amopmethod => 'brin' }, +{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamptz', + amoprighttype => 'timestamptz', amopstrategy => '4', + amopopr => '>=(timestamptz,timestamptz)', amopmethod => 'brin' }, +{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamptz', + amoprighttype => 'timestamptz', amopstrategy => '5', + amopopr => '>(timestamptz,timestamptz)', amopmethod => 'brin' }, + +# minmax interval +{ amopfamily => 'brin/interval_minmax_ops', amoplefttype => 'interval', + amoprighttype => 'interval', amopstrategy => '1', + amopopr => '<(interval,interval)', amopmethod => 'brin' }, +{ amopfamily => 'brin/interval_minmax_ops', amoplefttype => 'interval', + amoprighttype => 'interval', amopstrategy => '2', + amopopr => '<=(interval,interval)', amopmethod => 'brin' }, +{ amopfamily => 'brin/interval_minmax_ops', amoplefttype => 'interval', + amoprighttype => 'interval', amopstrategy => '3', + amopopr => '=(interval,interval)', amopmethod => 'brin' }, +{ amopfamily => 'brin/interval_minmax_ops', amoplefttype => 'interval', + amoprighttype => 'interval', amopstrategy => '4', + amopopr => '>=(interval,interval)', amopmethod => 'brin' }, +{ amopfamily => 'brin/interval_minmax_ops', amoplefttype => 'interval', + amoprighttype => 'interval', amopstrategy => '5', + amopopr => '>(interval,interval)', amopmethod => 'brin' }, + +# minmax time with time zone +{ amopfamily => 'brin/timetz_minmax_ops', amoplefttype => 'timetz', + amoprighttype => 'timetz', amopstrategy => '1', amopopr => '<(timetz,timetz)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/timetz_minmax_ops', amoplefttype => 'timetz', + amoprighttype => 'timetz', amopstrategy => '2', + amopopr => '<=(timetz,timetz)', amopmethod => 'brin' }, +{ amopfamily => 'brin/timetz_minmax_ops', amoplefttype => 'timetz', + amoprighttype => 'timetz', amopstrategy => '3', amopopr => '=(timetz,timetz)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/timetz_minmax_ops', amoplefttype => 'timetz', + amoprighttype => 'timetz', amopstrategy => '4', + amopopr => '>=(timetz,timetz)', amopmethod => 'brin' }, +{ amopfamily => 'brin/timetz_minmax_ops', amoplefttype => 'timetz', + amoprighttype => 'timetz', amopstrategy => '5', amopopr => '>(timetz,timetz)', + amopmethod => 'brin' }, + +# minmax bit +{ amopfamily => 'brin/bit_minmax_ops', amoplefttype => 'bit', + amoprighttype => 'bit', amopstrategy => '1', amopopr => '<(bit,bit)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/bit_minmax_ops', amoplefttype => 'bit', + amoprighttype => 'bit', amopstrategy => '2', amopopr => '<=(bit,bit)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/bit_minmax_ops', amoplefttype => 'bit', + amoprighttype => 'bit', amopstrategy => '3', amopopr => '=(bit,bit)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/bit_minmax_ops', amoplefttype => 'bit', + amoprighttype => 'bit', amopstrategy => '4', amopopr => '>=(bit,bit)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/bit_minmax_ops', amoplefttype => 'bit', + amoprighttype => 'bit', amopstrategy => '5', amopopr => '>(bit,bit)', + amopmethod => 'brin' }, + +# minmax bit varying +{ amopfamily => 'brin/varbit_minmax_ops', amoplefttype => 'varbit', + amoprighttype => 'varbit', amopstrategy => '1', amopopr => '<(varbit,varbit)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/varbit_minmax_ops', amoplefttype => 'varbit', + amoprighttype => 'varbit', amopstrategy => '2', + amopopr => '<=(varbit,varbit)', amopmethod => 'brin' }, +{ amopfamily => 'brin/varbit_minmax_ops', amoplefttype => 'varbit', + amoprighttype => 'varbit', amopstrategy => '3', amopopr => '=(varbit,varbit)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/varbit_minmax_ops', amoplefttype => 'varbit', + amoprighttype => 'varbit', amopstrategy => '4', + amopopr => '>=(varbit,varbit)', amopmethod => 'brin' }, +{ amopfamily => 'brin/varbit_minmax_ops', amoplefttype => 'varbit', + amoprighttype => 'varbit', amopstrategy => '5', amopopr => '>(varbit,varbit)', + amopmethod => 'brin' }, + +# minmax numeric +{ amopfamily => 'brin/numeric_minmax_ops', amoplefttype => 'numeric', + amoprighttype => 'numeric', amopstrategy => '1', + amopopr => '<(numeric,numeric)', amopmethod => 'brin' }, +{ amopfamily => 'brin/numeric_minmax_ops', amoplefttype => 'numeric', + amoprighttype => 'numeric', amopstrategy => '2', + amopopr => '<=(numeric,numeric)', amopmethod => 'brin' }, +{ amopfamily => 'brin/numeric_minmax_ops', amoplefttype => 'numeric', + amoprighttype => 'numeric', amopstrategy => '3', + amopopr => '=(numeric,numeric)', amopmethod => 'brin' }, +{ amopfamily => 'brin/numeric_minmax_ops', amoplefttype => 'numeric', + amoprighttype => 'numeric', amopstrategy => '4', + amopopr => '>=(numeric,numeric)', amopmethod => 'brin' }, +{ amopfamily => 'brin/numeric_minmax_ops', amoplefttype => 'numeric', + amoprighttype => 'numeric', amopstrategy => '5', + amopopr => '>(numeric,numeric)', amopmethod => 'brin' }, + +# minmax uuid +{ amopfamily => 'brin/uuid_minmax_ops', amoplefttype => 'uuid', + amoprighttype => 'uuid', amopstrategy => '1', amopopr => '<(uuid,uuid)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/uuid_minmax_ops', amoplefttype => 'uuid', + amoprighttype => 'uuid', amopstrategy => '2', amopopr => '<=(uuid,uuid)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/uuid_minmax_ops', amoplefttype => 'uuid', + amoprighttype => 'uuid', amopstrategy => '3', amopopr => '=(uuid,uuid)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/uuid_minmax_ops', amoplefttype => 'uuid', + amoprighttype => 'uuid', amopstrategy => '4', amopopr => '>=(uuid,uuid)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/uuid_minmax_ops', amoplefttype => 'uuid', + amoprighttype => 'uuid', amopstrategy => '5', amopopr => '>(uuid,uuid)', + amopmethod => 'brin' }, + +# inclusion range types +{ amopfamily => 'brin/range_inclusion_ops', amoplefttype => 'anyrange', + amoprighttype => 'anyrange', amopstrategy => '1', + amopopr => '<<(anyrange,anyrange)', amopmethod => 'brin' }, +{ amopfamily => 'brin/range_inclusion_ops', amoplefttype => 'anyrange', + amoprighttype => 'anyrange', amopstrategy => '2', + amopopr => '&<(anyrange,anyrange)', amopmethod => 'brin' }, +{ amopfamily => 'brin/range_inclusion_ops', amoplefttype => 'anyrange', + amoprighttype => 'anyrange', amopstrategy => '3', + amopopr => '&&(anyrange,anyrange)', amopmethod => 'brin' }, +{ amopfamily => 'brin/range_inclusion_ops', amoplefttype => 'anyrange', + amoprighttype => 'anyrange', amopstrategy => '4', + amopopr => '&>(anyrange,anyrange)', amopmethod => 'brin' }, +{ amopfamily => 'brin/range_inclusion_ops', amoplefttype => 'anyrange', + amoprighttype => 'anyrange', amopstrategy => '5', + amopopr => '>>(anyrange,anyrange)', amopmethod => 'brin' }, +{ amopfamily => 'brin/range_inclusion_ops', amoplefttype => 'anyrange', + amoprighttype => 'anyrange', amopstrategy => '7', + amopopr => '@>(anyrange,anyrange)', amopmethod => 'brin' }, +{ amopfamily => 'brin/range_inclusion_ops', amoplefttype => 'anyrange', + amoprighttype => 'anyrange', amopstrategy => '8', + amopopr => '<@(anyrange,anyrange)', amopmethod => 'brin' }, +{ amopfamily => 'brin/range_inclusion_ops', amoplefttype => 'anyrange', + amoprighttype => 'anyelement', amopstrategy => '16', + amopopr => '@>(anyrange,anyelement)', amopmethod => 'brin' }, +{ amopfamily => 'brin/range_inclusion_ops', amoplefttype => 'anyrange', + amoprighttype => 'anyrange', amopstrategy => '17', + amopopr => '-|-(anyrange,anyrange)', amopmethod => 'brin' }, +{ amopfamily => 'brin/range_inclusion_ops', amoplefttype => 'anyrange', + amoprighttype => 'anyrange', amopstrategy => '18', + amopopr => '=(anyrange,anyrange)', amopmethod => 'brin' }, +{ amopfamily => 'brin/range_inclusion_ops', amoplefttype => 'anyrange', + amoprighttype => 'anyrange', amopstrategy => '20', + amopopr => '<(anyrange,anyrange)', amopmethod => 'brin' }, +{ amopfamily => 'brin/range_inclusion_ops', amoplefttype => 'anyrange', + amoprighttype => 'anyrange', amopstrategy => '21', + amopopr => '<=(anyrange,anyrange)', amopmethod => 'brin' }, +{ amopfamily => 'brin/range_inclusion_ops', amoplefttype => 'anyrange', + amoprighttype => 'anyrange', amopstrategy => '22', + amopopr => '>(anyrange,anyrange)', amopmethod => 'brin' }, +{ amopfamily => 'brin/range_inclusion_ops', amoplefttype => 'anyrange', + amoprighttype => 'anyrange', amopstrategy => '23', + amopopr => '>=(anyrange,anyrange)', amopmethod => 'brin' }, + +# minmax pg_lsn +{ amopfamily => 'brin/pg_lsn_minmax_ops', amoplefttype => 'pg_lsn', + amoprighttype => 'pg_lsn', amopstrategy => '1', amopopr => '<(pg_lsn,pg_lsn)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/pg_lsn_minmax_ops', amoplefttype => 'pg_lsn', + amoprighttype => 'pg_lsn', amopstrategy => '2', + amopopr => '<=(pg_lsn,pg_lsn)', amopmethod => 'brin' }, +{ amopfamily => 'brin/pg_lsn_minmax_ops', amoplefttype => 'pg_lsn', + amoprighttype => 'pg_lsn', amopstrategy => '3', amopopr => '=(pg_lsn,pg_lsn)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/pg_lsn_minmax_ops', amoplefttype => 'pg_lsn', + amoprighttype => 'pg_lsn', amopstrategy => '4', + amopopr => '>=(pg_lsn,pg_lsn)', amopmethod => 'brin' }, +{ amopfamily => 'brin/pg_lsn_minmax_ops', amoplefttype => 'pg_lsn', + amoprighttype => 'pg_lsn', amopstrategy => '5', amopopr => '>(pg_lsn,pg_lsn)', + amopmethod => 'brin' }, + +# inclusion box +{ amopfamily => 'brin/box_inclusion_ops', amoplefttype => 'box', + amoprighttype => 'box', amopstrategy => '1', amopopr => '<<(box,box)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/box_inclusion_ops', amoplefttype => 'box', + amoprighttype => 'box', amopstrategy => '2', amopopr => '&<(box,box)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/box_inclusion_ops', amoplefttype => 'box', + amoprighttype => 'box', amopstrategy => '3', amopopr => '&&(box,box)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/box_inclusion_ops', amoplefttype => 'box', + amoprighttype => 'box', amopstrategy => '4', amopopr => '&>(box,box)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/box_inclusion_ops', amoplefttype => 'box', + amoprighttype => 'box', amopstrategy => '5', amopopr => '>>(box,box)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/box_inclusion_ops', amoplefttype => 'box', + amoprighttype => 'box', amopstrategy => '6', amopopr => '~=(box,box)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/box_inclusion_ops', amoplefttype => 'box', + amoprighttype => 'box', amopstrategy => '7', amopopr => '@>(box,box)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/box_inclusion_ops', amoplefttype => 'box', + amoprighttype => 'box', amopstrategy => '8', amopopr => '<@(box,box)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/box_inclusion_ops', amoplefttype => 'box', + amoprighttype => 'box', amopstrategy => '9', amopopr => '&<|(box,box)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/box_inclusion_ops', amoplefttype => 'box', + amoprighttype => 'box', amopstrategy => '10', amopopr => '<<|(box,box)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/box_inclusion_ops', amoplefttype => 'box', + amoprighttype => 'box', amopstrategy => '11', amopopr => '|>>(box,box)', + amopmethod => 'brin' }, +{ amopfamily => 'brin/box_inclusion_ops', amoplefttype => 'box', + amoprighttype => 'box', amopstrategy => '12', amopopr => '|&>(box,box)', + amopmethod => 'brin' }, + +# we could, but choose not to, supply entries for strategies 13 and 14 + +{ amopfamily => 'brin/box_inclusion_ops', amoplefttype => 'box', + amoprighttype => 'point', amopstrategy => '7', amopopr => '@>(box,point)', + amopmethod => 'brin' }, + +] diff --git a/src/include/catalog/pg_amop.h b/src/include/catalog/pg_amop.h index 00e77d4c61..4be325221f 100644 --- a/src/include/catalog/pg_amop.h +++ b/src/include/catalog/pg_amop.h @@ -2,7 +2,6 @@ * * pg_amop.h * definition of the system "amop" relation (pg_amop) - * along with the relation's initial contents. * * The amop table identifies the operators associated with each index operator * family and operator class (classes are subsets of families). An associated @@ -36,8 +35,8 @@ * src/include/catalog/pg_amop.h * * NOTES - * the genbki.pl script reads this file and generates .bki - * information from the DATA() statements. + * The Catalog.pm module reads this file and derives schema + * information. * *------------------------------------------------------------------------- */ @@ -45,29 +44,39 @@ #define PG_AMOP_H #include "catalog/genbki.h" +#include "catalog/pg_amop_d.h" /* ---------------- * pg_amop definition. cpp turns this into * typedef struct FormData_pg_amop * ---------------- */ -#define AccessMethodOperatorRelationId 2602 - -CATALOG(pg_amop,2602) +CATALOG(pg_amop,2602,AccessMethodOperatorRelationId) { - Oid amopfamily; /* the index opfamily this entry is for */ - Oid amoplefttype; /* operator's left input data type */ - Oid amoprighttype; /* operator's right input data type */ - int16 amopstrategy; /* operator strategy number */ - char amoppurpose; /* is operator for 's'earch or 'o'rdering? */ - Oid amopopr; /* the operator's pg_operator OID */ - Oid amopmethod; /* the index access method this entry is for */ - Oid amopsortfamily; /* ordering opfamily OID, or 0 if search op */ -} FormData_pg_amop; + /* the index opfamily this entry is for */ + Oid amopfamily BKI_LOOKUP(pg_opfamily); -/* allowed values of amoppurpose: */ -#define AMOP_SEARCH 's' /* operator is for search */ -#define AMOP_ORDER 'o' /* operator is for ordering */ + /* operator's left input data type */ + Oid amoplefttype BKI_LOOKUP(pg_type); + + /* operator's right input data type */ + Oid amoprighttype BKI_LOOKUP(pg_type); + + /* operator strategy number */ + int16 amopstrategy; + + /* is operator for 's'earch or 'o'rdering? */ + char amoppurpose BKI_DEFAULT(s); + + /* the operator's pg_operator OID */ + Oid amopopr BKI_LOOKUP(pg_operator); + + /* the index access method this entry is for */ + Oid amopmethod BKI_LOOKUP(pg_am); + + /* ordering opfamily OID, or 0 if search op */ + Oid amopsortfamily BKI_DEFAULT(0) BKI_LOOKUP(pg_opfamily); +} FormData_pg_amop; /* ---------------- * Form_pg_amop corresponds to a pointer to a tuple with @@ -76,1107 +85,12 @@ CATALOG(pg_amop,2602) */ typedef FormData_pg_amop *Form_pg_amop; -/* ---------------- - * compiler constants for pg_amop - * ---------------- - */ -#define Natts_pg_amop 8 -#define Anum_pg_amop_amopfamily 1 -#define Anum_pg_amop_amoplefttype 2 -#define Anum_pg_amop_amoprighttype 3 -#define Anum_pg_amop_amopstrategy 4 -#define Anum_pg_amop_amoppurpose 5 -#define Anum_pg_amop_amopopr 6 -#define Anum_pg_amop_amopmethod 7 -#define Anum_pg_amop_amopsortfamily 8 +#ifdef EXPOSE_TO_CLIENT_CODE -/* ---------------- - * initial contents of pg_amop - * ---------------- - */ +/* allowed values of amoppurpose: */ +#define AMOP_SEARCH 's' /* operator is for search */ +#define AMOP_ORDER 'o' /* operator is for ordering */ -/* - * btree integer_ops - */ - -/* default operators int2 */ -DATA(insert ( 1976 21 21 1 s 95 403 0 )); -DATA(insert ( 1976 21 21 2 s 522 403 0 )); -DATA(insert ( 1976 21 21 3 s 94 403 0 )); -DATA(insert ( 1976 21 21 4 s 524 403 0 )); -DATA(insert ( 1976 21 21 5 s 520 403 0 )); -/* crosstype operators int24 */ -DATA(insert ( 1976 21 23 1 s 534 403 0 )); -DATA(insert ( 1976 21 23 2 s 540 403 0 )); -DATA(insert ( 1976 21 23 3 s 532 403 0 )); -DATA(insert ( 1976 21 23 4 s 542 403 0 )); -DATA(insert ( 1976 21 23 5 s 536 403 0 )); -/* crosstype operators int28 */ -DATA(insert ( 1976 21 20 1 s 1864 403 0 )); -DATA(insert ( 1976 21 20 2 s 1866 403 0 )); -DATA(insert ( 1976 21 20 3 s 1862 403 0 )); -DATA(insert ( 1976 21 20 4 s 1867 403 0 )); -DATA(insert ( 1976 21 20 5 s 1865 403 0 )); -/* default operators int4 */ -DATA(insert ( 1976 23 23 1 s 97 403 0 )); -DATA(insert ( 1976 23 23 2 s 523 403 0 )); -DATA(insert ( 1976 23 23 3 s 96 403 0 )); -DATA(insert ( 1976 23 23 4 s 525 403 0 )); -DATA(insert ( 1976 23 23 5 s 521 403 0 )); -/* crosstype operators int42 */ -DATA(insert ( 1976 23 21 1 s 535 403 0 )); -DATA(insert ( 1976 23 21 2 s 541 403 0 )); -DATA(insert ( 1976 23 21 3 s 533 403 0 )); -DATA(insert ( 1976 23 21 4 s 543 403 0 )); -DATA(insert ( 1976 23 21 5 s 537 403 0 )); -/* crosstype operators int48 */ -DATA(insert ( 1976 23 20 1 s 37 403 0 )); -DATA(insert ( 1976 23 20 2 s 80 403 0 )); -DATA(insert ( 1976 23 20 3 s 15 403 0 )); -DATA(insert ( 1976 23 20 4 s 82 403 0 )); -DATA(insert ( 1976 23 20 5 s 76 403 0 )); -/* default operators int8 */ -DATA(insert ( 1976 20 20 1 s 412 403 0 )); -DATA(insert ( 1976 20 20 2 s 414 403 0 )); -DATA(insert ( 1976 20 20 3 s 410 403 0 )); -DATA(insert ( 1976 20 20 4 s 415 403 0 )); -DATA(insert ( 1976 20 20 5 s 413 403 0 )); -/* crosstype operators int82 */ -DATA(insert ( 1976 20 21 1 s 1870 403 0 )); -DATA(insert ( 1976 20 21 2 s 1872 403 0 )); -DATA(insert ( 1976 20 21 3 s 1868 403 0 )); -DATA(insert ( 1976 20 21 4 s 1873 403 0 )); -DATA(insert ( 1976 20 21 5 s 1871 403 0 )); -/* crosstype operators int84 */ -DATA(insert ( 1976 20 23 1 s 418 403 0 )); -DATA(insert ( 1976 20 23 2 s 420 403 0 )); -DATA(insert ( 1976 20 23 3 s 416 403 0 )); -DATA(insert ( 1976 20 23 4 s 430 403 0 )); -DATA(insert ( 1976 20 23 5 s 419 403 0 )); - -/* - * btree oid_ops - */ - -DATA(insert ( 1989 26 26 1 s 609 403 0 )); -DATA(insert ( 1989 26 26 2 s 611 403 0 )); -DATA(insert ( 1989 26 26 3 s 607 403 0 )); -DATA(insert ( 1989 26 26 4 s 612 403 0 )); -DATA(insert ( 1989 26 26 5 s 610 403 0 )); - -/* - * btree tid_ops - */ - -DATA(insert ( 2789 27 27 1 s 2799 403 0 )); -DATA(insert ( 2789 27 27 2 s 2801 403 0 )); -DATA(insert ( 2789 27 27 3 s 387 403 0 )); -DATA(insert ( 2789 27 27 4 s 2802 403 0 )); -DATA(insert ( 2789 27 27 5 s 2800 403 0 )); - -/* - * btree oidvector_ops - */ - -DATA(insert ( 1991 30 30 1 s 645 403 0 )); -DATA(insert ( 1991 30 30 2 s 647 403 0 )); -DATA(insert ( 1991 30 30 3 s 649 403 0 )); -DATA(insert ( 1991 30 30 4 s 648 403 0 )); -DATA(insert ( 1991 30 30 5 s 646 403 0 )); - -/* - * btree float_ops - */ - -/* default operators float4 */ -DATA(insert ( 1970 700 700 1 s 622 403 0 )); -DATA(insert ( 1970 700 700 2 s 624 403 0 )); -DATA(insert ( 1970 700 700 3 s 620 403 0 )); -DATA(insert ( 1970 700 700 4 s 625 403 0 )); -DATA(insert ( 1970 700 700 5 s 623 403 0 )); -/* crosstype operators float48 */ -DATA(insert ( 1970 700 701 1 s 1122 403 0 )); -DATA(insert ( 1970 700 701 2 s 1124 403 0 )); -DATA(insert ( 1970 700 701 3 s 1120 403 0 )); -DATA(insert ( 1970 700 701 4 s 1125 403 0 )); -DATA(insert ( 1970 700 701 5 s 1123 403 0 )); -/* default operators float8 */ -DATA(insert ( 1970 701 701 1 s 672 403 0 )); -DATA(insert ( 1970 701 701 2 s 673 403 0 )); -DATA(insert ( 1970 701 701 3 s 670 403 0 )); -DATA(insert ( 1970 701 701 4 s 675 403 0 )); -DATA(insert ( 1970 701 701 5 s 674 403 0 )); -/* crosstype operators float84 */ -DATA(insert ( 1970 701 700 1 s 1132 403 0 )); -DATA(insert ( 1970 701 700 2 s 1134 403 0 )); -DATA(insert ( 1970 701 700 3 s 1130 403 0 )); -DATA(insert ( 1970 701 700 4 s 1135 403 0 )); -DATA(insert ( 1970 701 700 5 s 1133 403 0 )); - -/* - * btree char_ops - */ - -DATA(insert ( 429 18 18 1 s 631 403 0 )); -DATA(insert ( 429 18 18 2 s 632 403 0 )); -DATA(insert ( 429 18 18 3 s 92 403 0 )); -DATA(insert ( 429 18 18 4 s 634 403 0 )); -DATA(insert ( 429 18 18 5 s 633 403 0 )); - -/* - * btree name_ops - */ - -DATA(insert ( 1986 19 19 1 s 660 403 0 )); -DATA(insert ( 1986 19 19 2 s 661 403 0 )); -DATA(insert ( 1986 19 19 3 s 93 403 0 )); -DATA(insert ( 1986 19 19 4 s 663 403 0 )); -DATA(insert ( 1986 19 19 5 s 662 403 0 )); - -/* - * btree text_ops - */ - -DATA(insert ( 1994 25 25 1 s 664 403 0 )); -DATA(insert ( 1994 25 25 2 s 665 403 0 )); -DATA(insert ( 1994 25 25 3 s 98 403 0 )); -DATA(insert ( 1994 25 25 4 s 667 403 0 )); -DATA(insert ( 1994 25 25 5 s 666 403 0 )); - -/* - * btree bpchar_ops - */ - -DATA(insert ( 426 1042 1042 1 s 1058 403 0 )); -DATA(insert ( 426 1042 1042 2 s 1059 403 0 )); -DATA(insert ( 426 1042 1042 3 s 1054 403 0 )); -DATA(insert ( 426 1042 1042 4 s 1061 403 0 )); -DATA(insert ( 426 1042 1042 5 s 1060 403 0 )); - -/* - * btree bytea_ops - */ - -DATA(insert ( 428 17 17 1 s 1957 403 0 )); -DATA(insert ( 428 17 17 2 s 1958 403 0 )); -DATA(insert ( 428 17 17 3 s 1955 403 0 )); -DATA(insert ( 428 17 17 4 s 1960 403 0 )); -DATA(insert ( 428 17 17 5 s 1959 403 0 )); - -/* - * btree abstime_ops - */ - -DATA(insert ( 421 702 702 1 s 562 403 0 )); -DATA(insert ( 421 702 702 2 s 564 403 0 )); -DATA(insert ( 421 702 702 3 s 560 403 0 )); -DATA(insert ( 421 702 702 4 s 565 403 0 )); -DATA(insert ( 421 702 702 5 s 563 403 0 )); - -/* - * btree datetime_ops - */ - -/* default operators date */ -DATA(insert ( 434 1082 1082 1 s 1095 403 0 )); -DATA(insert ( 434 1082 1082 2 s 1096 403 0 )); -DATA(insert ( 434 1082 1082 3 s 1093 403 0 )); -DATA(insert ( 434 1082 1082 4 s 1098 403 0 )); -DATA(insert ( 434 1082 1082 5 s 1097 403 0 )); -/* crosstype operators vs timestamp */ -DATA(insert ( 434 1082 1114 1 s 2345 403 0 )); -DATA(insert ( 434 1082 1114 2 s 2346 403 0 )); -DATA(insert ( 434 1082 1114 3 s 2347 403 0 )); -DATA(insert ( 434 1082 1114 4 s 2348 403 0 )); -DATA(insert ( 434 1082 1114 5 s 2349 403 0 )); -/* crosstype operators vs timestamptz */ -DATA(insert ( 434 1082 1184 1 s 2358 403 0 )); -DATA(insert ( 434 1082 1184 2 s 2359 403 0 )); -DATA(insert ( 434 1082 1184 3 s 2360 403 0 )); -DATA(insert ( 434 1082 1184 4 s 2361 403 0 )); -DATA(insert ( 434 1082 1184 5 s 2362 403 0 )); -/* default operators timestamp */ -DATA(insert ( 434 1114 1114 1 s 2062 403 0 )); -DATA(insert ( 434 1114 1114 2 s 2063 403 0 )); -DATA(insert ( 434 1114 1114 3 s 2060 403 0 )); -DATA(insert ( 434 1114 1114 4 s 2065 403 0 )); -DATA(insert ( 434 1114 1114 5 s 2064 403 0 )); -/* crosstype operators vs date */ -DATA(insert ( 434 1114 1082 1 s 2371 403 0 )); -DATA(insert ( 434 1114 1082 2 s 2372 403 0 )); -DATA(insert ( 434 1114 1082 3 s 2373 403 0 )); -DATA(insert ( 434 1114 1082 4 s 2374 403 0 )); -DATA(insert ( 434 1114 1082 5 s 2375 403 0 )); -/* crosstype operators vs timestamptz */ -DATA(insert ( 434 1114 1184 1 s 2534 403 0 )); -DATA(insert ( 434 1114 1184 2 s 2535 403 0 )); -DATA(insert ( 434 1114 1184 3 s 2536 403 0 )); -DATA(insert ( 434 1114 1184 4 s 2537 403 0 )); -DATA(insert ( 434 1114 1184 5 s 2538 403 0 )); -/* default operators timestamptz */ -DATA(insert ( 434 1184 1184 1 s 1322 403 0 )); -DATA(insert ( 434 1184 1184 2 s 1323 403 0 )); -DATA(insert ( 434 1184 1184 3 s 1320 403 0 )); -DATA(insert ( 434 1184 1184 4 s 1325 403 0 )); -DATA(insert ( 434 1184 1184 5 s 1324 403 0 )); -/* crosstype operators vs date */ -DATA(insert ( 434 1184 1082 1 s 2384 403 0 )); -DATA(insert ( 434 1184 1082 2 s 2385 403 0 )); -DATA(insert ( 434 1184 1082 3 s 2386 403 0 )); -DATA(insert ( 434 1184 1082 4 s 2387 403 0 )); -DATA(insert ( 434 1184 1082 5 s 2388 403 0 )); -/* crosstype operators vs timestamp */ -DATA(insert ( 434 1184 1114 1 s 2540 403 0 )); -DATA(insert ( 434 1184 1114 2 s 2541 403 0 )); -DATA(insert ( 434 1184 1114 3 s 2542 403 0 )); -DATA(insert ( 434 1184 1114 4 s 2543 403 0 )); -DATA(insert ( 434 1184 1114 5 s 2544 403 0 )); - -/* - * btree time_ops - */ - -DATA(insert ( 1996 1083 1083 1 s 1110 403 0 )); -DATA(insert ( 1996 1083 1083 2 s 1111 403 0 )); -DATA(insert ( 1996 1083 1083 3 s 1108 403 0 )); -DATA(insert ( 1996 1083 1083 4 s 1113 403 0 )); -DATA(insert ( 1996 1083 1083 5 s 1112 403 0 )); - -/* - * btree timetz_ops - */ - -DATA(insert ( 2000 1266 1266 1 s 1552 403 0 )); -DATA(insert ( 2000 1266 1266 2 s 1553 403 0 )); -DATA(insert ( 2000 1266 1266 3 s 1550 403 0 )); -DATA(insert ( 2000 1266 1266 4 s 1555 403 0 )); -DATA(insert ( 2000 1266 1266 5 s 1554 403 0 )); - -/* - * btree interval_ops - */ - -DATA(insert ( 1982 1186 1186 1 s 1332 403 0 )); -DATA(insert ( 1982 1186 1186 2 s 1333 403 0 )); -DATA(insert ( 1982 1186 1186 3 s 1330 403 0 )); -DATA(insert ( 1982 1186 1186 4 s 1335 403 0 )); -DATA(insert ( 1982 1186 1186 5 s 1334 403 0 )); - -/* - * btree macaddr - */ - -DATA(insert ( 1984 829 829 1 s 1222 403 0 )); -DATA(insert ( 1984 829 829 2 s 1223 403 0 )); -DATA(insert ( 1984 829 829 3 s 1220 403 0 )); -DATA(insert ( 1984 829 829 4 s 1225 403 0 )); -DATA(insert ( 1984 829 829 5 s 1224 403 0 )); - -/* - * btree macaddr8 - */ - -DATA(insert ( 3371 774 774 1 s 3364 403 0 )); -DATA(insert ( 3371 774 774 2 s 3365 403 0 )); -DATA(insert ( 3371 774 774 3 s 3362 403 0 )); -DATA(insert ( 3371 774 774 4 s 3367 403 0 )); -DATA(insert ( 3371 774 774 5 s 3366 403 0 )); - -/* - * btree network - */ - -DATA(insert ( 1974 869 869 1 s 1203 403 0 )); -DATA(insert ( 1974 869 869 2 s 1204 403 0 )); -DATA(insert ( 1974 869 869 3 s 1201 403 0 )); -DATA(insert ( 1974 869 869 4 s 1206 403 0 )); -DATA(insert ( 1974 869 869 5 s 1205 403 0 )); - -/* - * btree numeric - */ - -DATA(insert ( 1988 1700 1700 1 s 1754 403 0 )); -DATA(insert ( 1988 1700 1700 2 s 1755 403 0 )); -DATA(insert ( 1988 1700 1700 3 s 1752 403 0 )); -DATA(insert ( 1988 1700 1700 4 s 1757 403 0 )); -DATA(insert ( 1988 1700 1700 5 s 1756 403 0 )); - -/* - * btree bool - */ - -DATA(insert ( 424 16 16 1 s 58 403 0 )); -DATA(insert ( 424 16 16 2 s 1694 403 0 )); -DATA(insert ( 424 16 16 3 s 91 403 0 )); -DATA(insert ( 424 16 16 4 s 1695 403 0 )); -DATA(insert ( 424 16 16 5 s 59 403 0 )); - -/* - * btree bit - */ - -DATA(insert ( 423 1560 1560 1 s 1786 403 0 )); -DATA(insert ( 423 1560 1560 2 s 1788 403 0 )); -DATA(insert ( 423 1560 1560 3 s 1784 403 0 )); -DATA(insert ( 423 1560 1560 4 s 1789 403 0 )); -DATA(insert ( 423 1560 1560 5 s 1787 403 0 )); - -/* - * btree varbit - */ - -DATA(insert ( 2002 1562 1562 1 s 1806 403 0 )); -DATA(insert ( 2002 1562 1562 2 s 1808 403 0 )); -DATA(insert ( 2002 1562 1562 3 s 1804 403 0 )); -DATA(insert ( 2002 1562 1562 4 s 1809 403 0 )); -DATA(insert ( 2002 1562 1562 5 s 1807 403 0 )); - -/* - * btree text pattern - */ - -DATA(insert ( 2095 25 25 1 s 2314 403 0 )); -DATA(insert ( 2095 25 25 2 s 2315 403 0 )); -DATA(insert ( 2095 25 25 3 s 98 403 0 )); -DATA(insert ( 2095 25 25 4 s 2317 403 0 )); -DATA(insert ( 2095 25 25 5 s 2318 403 0 )); - -/* - * btree bpchar pattern - */ - -DATA(insert ( 2097 1042 1042 1 s 2326 403 0 )); -DATA(insert ( 2097 1042 1042 2 s 2327 403 0 )); -DATA(insert ( 2097 1042 1042 3 s 1054 403 0 )); -DATA(insert ( 2097 1042 1042 4 s 2329 403 0 )); -DATA(insert ( 2097 1042 1042 5 s 2330 403 0 )); - -/* - * btree money_ops - */ - -DATA(insert ( 2099 790 790 1 s 902 403 0 )); -DATA(insert ( 2099 790 790 2 s 904 403 0 )); -DATA(insert ( 2099 790 790 3 s 900 403 0 )); -DATA(insert ( 2099 790 790 4 s 905 403 0 )); -DATA(insert ( 2099 790 790 5 s 903 403 0 )); - -/* - * btree reltime_ops - */ - -DATA(insert ( 2233 703 703 1 s 568 403 0 )); -DATA(insert ( 2233 703 703 2 s 570 403 0 )); -DATA(insert ( 2233 703 703 3 s 566 403 0 )); -DATA(insert ( 2233 703 703 4 s 571 403 0 )); -DATA(insert ( 2233 703 703 5 s 569 403 0 )); - -/* - * btree tinterval_ops - */ - -DATA(insert ( 2234 704 704 1 s 813 403 0 )); -DATA(insert ( 2234 704 704 2 s 815 403 0 )); -DATA(insert ( 2234 704 704 3 s 811 403 0 )); -DATA(insert ( 2234 704 704 4 s 816 403 0 )); -DATA(insert ( 2234 704 704 5 s 814 403 0 )); - -/* - * btree array_ops - */ - -DATA(insert ( 397 2277 2277 1 s 1072 403 0 )); -DATA(insert ( 397 2277 2277 2 s 1074 403 0 )); -DATA(insert ( 397 2277 2277 3 s 1070 403 0 )); -DATA(insert ( 397 2277 2277 4 s 1075 403 0 )); -DATA(insert ( 397 2277 2277 5 s 1073 403 0 )); - -/* - * btree record_ops - */ - -DATA(insert ( 2994 2249 2249 1 s 2990 403 0 )); -DATA(insert ( 2994 2249 2249 2 s 2992 403 0 )); -DATA(insert ( 2994 2249 2249 3 s 2988 403 0 )); -DATA(insert ( 2994 2249 2249 4 s 2993 403 0 )); -DATA(insert ( 2994 2249 2249 5 s 2991 403 0 )); - -/* - * btree record_image_ops - */ - -DATA(insert ( 3194 2249 2249 1 s 3190 403 0 )); -DATA(insert ( 3194 2249 2249 2 s 3192 403 0 )); -DATA(insert ( 3194 2249 2249 3 s 3188 403 0 )); -DATA(insert ( 3194 2249 2249 4 s 3193 403 0 )); -DATA(insert ( 3194 2249 2249 5 s 3191 403 0 )); - -/* - * btree uuid_ops - */ - -DATA(insert ( 2968 2950 2950 1 s 2974 403 0 )); -DATA(insert ( 2968 2950 2950 2 s 2976 403 0 )); -DATA(insert ( 2968 2950 2950 3 s 2972 403 0 )); -DATA(insert ( 2968 2950 2950 4 s 2977 403 0 )); -DATA(insert ( 2968 2950 2950 5 s 2975 403 0 )); - -/* - * btree pg_lsn_ops - */ - -DATA(insert ( 3253 3220 3220 1 s 3224 403 0 )); -DATA(insert ( 3253 3220 3220 2 s 3226 403 0 )); -DATA(insert ( 3253 3220 3220 3 s 3222 403 0 )); -DATA(insert ( 3253 3220 3220 4 s 3227 403 0 )); -DATA(insert ( 3253 3220 3220 5 s 3225 403 0 )); - -/* - * hash index _ops - */ - -/* bpchar_ops */ -DATA(insert ( 427 1042 1042 1 s 1054 405 0 )); -/* char_ops */ -DATA(insert ( 431 18 18 1 s 92 405 0 )); -/* date_ops */ -DATA(insert ( 435 1082 1082 1 s 1093 405 0 )); -/* float_ops */ -DATA(insert ( 1971 700 700 1 s 620 405 0 )); -DATA(insert ( 1971 701 701 1 s 670 405 0 )); -DATA(insert ( 1971 700 701 1 s 1120 405 0 )); -DATA(insert ( 1971 701 700 1 s 1130 405 0 )); -/* network_ops */ -DATA(insert ( 1975 869 869 1 s 1201 405 0 )); -/* integer_ops */ -DATA(insert ( 1977 21 21 1 s 94 405 0 )); -DATA(insert ( 1977 23 23 1 s 96 405 0 )); -DATA(insert ( 1977 20 20 1 s 410 405 0 )); -DATA(insert ( 1977 21 23 1 s 532 405 0 )); -DATA(insert ( 1977 21 20 1 s 1862 405 0 )); -DATA(insert ( 1977 23 21 1 s 533 405 0 )); -DATA(insert ( 1977 23 20 1 s 15 405 0 )); -DATA(insert ( 1977 20 21 1 s 1868 405 0 )); -DATA(insert ( 1977 20 23 1 s 416 405 0 )); -/* interval_ops */ -DATA(insert ( 1983 1186 1186 1 s 1330 405 0 )); -/* macaddr_ops */ -DATA(insert ( 1985 829 829 1 s 1220 405 0 )); -/* macaddr8_ops */ -DATA(insert ( 3372 774 774 1 s 3362 405 0 )); -/* name_ops */ -DATA(insert ( 1987 19 19 1 s 93 405 0 )); -/* oid_ops */ -DATA(insert ( 1990 26 26 1 s 607 405 0 )); -/* oidvector_ops */ -DATA(insert ( 1992 30 30 1 s 649 405 0 )); -/* text_ops */ -DATA(insert ( 1995 25 25 1 s 98 405 0 )); -/* time_ops */ -DATA(insert ( 1997 1083 1083 1 s 1108 405 0 )); -/* timestamptz_ops */ -DATA(insert ( 1999 1184 1184 1 s 1320 405 0 )); -/* timetz_ops */ -DATA(insert ( 2001 1266 1266 1 s 1550 405 0 )); -/* timestamp_ops */ -DATA(insert ( 2040 1114 1114 1 s 2060 405 0 )); -/* bool_ops */ -DATA(insert ( 2222 16 16 1 s 91 405 0 )); -/* bytea_ops */ -DATA(insert ( 2223 17 17 1 s 1955 405 0 )); -/* xid_ops */ -DATA(insert ( 2225 28 28 1 s 352 405 0 )); -/* cid_ops */ -DATA(insert ( 2226 29 29 1 s 385 405 0 )); -/* abstime_ops */ -DATA(insert ( 2227 702 702 1 s 560 405 0 )); -/* reltime_ops */ -DATA(insert ( 2228 703 703 1 s 566 405 0 )); -/* text_pattern_ops */ -DATA(insert ( 2229 25 25 1 s 98 405 0 )); -/* bpchar_pattern_ops */ -DATA(insert ( 2231 1042 1042 1 s 1054 405 0 )); -/* aclitem_ops */ -DATA(insert ( 2235 1033 1033 1 s 974 405 0 )); -/* uuid_ops */ -DATA(insert ( 2969 2950 2950 1 s 2972 405 0 )); -/* pg_lsn_ops */ -DATA(insert ( 3254 3220 3220 1 s 3222 405 0 )); -/* numeric_ops */ -DATA(insert ( 1998 1700 1700 1 s 1752 405 0 )); -/* array_ops */ -DATA(insert ( 627 2277 2277 1 s 1070 405 0 )); - - -/* - * gist box_ops - */ - -DATA(insert ( 2593 603 603 1 s 493 783 0 )); -DATA(insert ( 2593 603 603 2 s 494 783 0 )); -DATA(insert ( 2593 603 603 3 s 500 783 0 )); -DATA(insert ( 2593 603 603 4 s 495 783 0 )); -DATA(insert ( 2593 603 603 5 s 496 783 0 )); -DATA(insert ( 2593 603 603 6 s 499 783 0 )); -DATA(insert ( 2593 603 603 7 s 498 783 0 )); -DATA(insert ( 2593 603 603 8 s 497 783 0 )); -DATA(insert ( 2593 603 603 9 s 2571 783 0 )); -DATA(insert ( 2593 603 603 10 s 2570 783 0 )); -DATA(insert ( 2593 603 603 11 s 2573 783 0 )); -DATA(insert ( 2593 603 603 12 s 2572 783 0 )); -DATA(insert ( 2593 603 603 13 s 2863 783 0 )); -DATA(insert ( 2593 603 603 14 s 2862 783 0 )); - -/* - * gist point_ops - */ -DATA(insert ( 1029 600 600 11 s 506 783 0 )); -DATA(insert ( 1029 600 600 1 s 507 783 0 )); -DATA(insert ( 1029 600 600 5 s 508 783 0 )); -DATA(insert ( 1029 600 600 10 s 509 783 0 )); -DATA(insert ( 1029 600 600 6 s 510 783 0 )); -DATA(insert ( 1029 600 600 15 o 517 783 1970 )); -DATA(insert ( 1029 600 603 28 s 511 783 0 )); -DATA(insert ( 1029 600 604 48 s 756 783 0 )); -DATA(insert ( 1029 600 718 68 s 758 783 0 )); - - -/* - * gist poly_ops (supports polygons) - */ - -DATA(insert ( 2594 604 604 1 s 485 783 0 )); -DATA(insert ( 2594 604 604 2 s 486 783 0 )); -DATA(insert ( 2594 604 604 3 s 492 783 0 )); -DATA(insert ( 2594 604 604 4 s 487 783 0 )); -DATA(insert ( 2594 604 604 5 s 488 783 0 )); -DATA(insert ( 2594 604 604 6 s 491 783 0 )); -DATA(insert ( 2594 604 604 7 s 490 783 0 )); -DATA(insert ( 2594 604 604 8 s 489 783 0 )); -DATA(insert ( 2594 604 604 9 s 2575 783 0 )); -DATA(insert ( 2594 604 604 10 s 2574 783 0 )); -DATA(insert ( 2594 604 604 11 s 2577 783 0 )); -DATA(insert ( 2594 604 604 12 s 2576 783 0 )); -DATA(insert ( 2594 604 604 13 s 2861 783 0 )); -DATA(insert ( 2594 604 604 14 s 2860 783 0 )); -DATA(insert ( 2594 604 600 15 o 3289 783 1970 )); - -/* - * gist circle_ops - */ - -DATA(insert ( 2595 718 718 1 s 1506 783 0 )); -DATA(insert ( 2595 718 718 2 s 1507 783 0 )); -DATA(insert ( 2595 718 718 3 s 1513 783 0 )); -DATA(insert ( 2595 718 718 4 s 1508 783 0 )); -DATA(insert ( 2595 718 718 5 s 1509 783 0 )); -DATA(insert ( 2595 718 718 6 s 1512 783 0 )); -DATA(insert ( 2595 718 718 7 s 1511 783 0 )); -DATA(insert ( 2595 718 718 8 s 1510 783 0 )); -DATA(insert ( 2595 718 718 9 s 2589 783 0 )); -DATA(insert ( 2595 718 718 10 s 1515 783 0 )); -DATA(insert ( 2595 718 718 11 s 1514 783 0 )); -DATA(insert ( 2595 718 718 12 s 2590 783 0 )); -DATA(insert ( 2595 718 718 13 s 2865 783 0 )); -DATA(insert ( 2595 718 718 14 s 2864 783 0 )); -DATA(insert ( 2595 718 600 15 o 3291 783 1970 )); - -/* - * gin array_ops - */ -DATA(insert ( 2745 2277 2277 1 s 2750 2742 0 )); -DATA(insert ( 2745 2277 2277 2 s 2751 2742 0 )); -DATA(insert ( 2745 2277 2277 3 s 2752 2742 0 )); -DATA(insert ( 2745 2277 2277 4 s 1070 2742 0 )); - -/* - * btree enum_ops - */ -DATA(insert ( 3522 3500 3500 1 s 3518 403 0 )); -DATA(insert ( 3522 3500 3500 2 s 3520 403 0 )); -DATA(insert ( 3522 3500 3500 3 s 3516 403 0 )); -DATA(insert ( 3522 3500 3500 4 s 3521 403 0 )); -DATA(insert ( 3522 3500 3500 5 s 3519 403 0 )); - -/* - * hash enum_ops - */ -DATA(insert ( 3523 3500 3500 1 s 3516 405 0 )); - -/* - * btree tsvector_ops - */ -DATA(insert ( 3626 3614 3614 1 s 3627 403 0 )); -DATA(insert ( 3626 3614 3614 2 s 3628 403 0 )); -DATA(insert ( 3626 3614 3614 3 s 3629 403 0 )); -DATA(insert ( 3626 3614 3614 4 s 3631 403 0 )); -DATA(insert ( 3626 3614 3614 5 s 3632 403 0 )); - -/* - * GiST tsvector_ops - */ -DATA(insert ( 3655 3614 3615 1 s 3636 783 0 )); - -/* - * GIN tsvector_ops - */ -DATA(insert ( 3659 3614 3615 1 s 3636 2742 0 )); -DATA(insert ( 3659 3614 3615 2 s 3660 2742 0 )); - -/* - * btree tsquery_ops - */ -DATA(insert ( 3683 3615 3615 1 s 3674 403 0 )); -DATA(insert ( 3683 3615 3615 2 s 3675 403 0 )); -DATA(insert ( 3683 3615 3615 3 s 3676 403 0 )); -DATA(insert ( 3683 3615 3615 4 s 3678 403 0 )); -DATA(insert ( 3683 3615 3615 5 s 3679 403 0 )); - -/* - * GiST tsquery_ops - */ -DATA(insert ( 3702 3615 3615 7 s 3693 783 0 )); -DATA(insert ( 3702 3615 3615 8 s 3694 783 0 )); - -/* - * btree range_ops - */ -DATA(insert ( 3901 3831 3831 1 s 3884 403 0 )); -DATA(insert ( 3901 3831 3831 2 s 3885 403 0 )); -DATA(insert ( 3901 3831 3831 3 s 3882 403 0 )); -DATA(insert ( 3901 3831 3831 4 s 3886 403 0 )); -DATA(insert ( 3901 3831 3831 5 s 3887 403 0 )); - -/* - * hash range_ops - */ -DATA(insert ( 3903 3831 3831 1 s 3882 405 0 )); - -/* - * GiST range_ops - */ -DATA(insert ( 3919 3831 3831 1 s 3893 783 0 )); -DATA(insert ( 3919 3831 3831 2 s 3895 783 0 )); -DATA(insert ( 3919 3831 3831 3 s 3888 783 0 )); -DATA(insert ( 3919 3831 3831 4 s 3896 783 0 )); -DATA(insert ( 3919 3831 3831 5 s 3894 783 0 )); -DATA(insert ( 3919 3831 3831 6 s 3897 783 0 )); -DATA(insert ( 3919 3831 3831 7 s 3890 783 0 )); -DATA(insert ( 3919 3831 3831 8 s 3892 783 0 )); -DATA(insert ( 3919 3831 2283 16 s 3889 783 0 )); -DATA(insert ( 3919 3831 3831 18 s 3882 783 0 )); - -/* - * SP-GiST quad_point_ops - */ -DATA(insert ( 4015 600 600 11 s 506 4000 0 )); -DATA(insert ( 4015 600 600 1 s 507 4000 0 )); -DATA(insert ( 4015 600 600 5 s 508 4000 0 )); -DATA(insert ( 4015 600 600 10 s 509 4000 0 )); -DATA(insert ( 4015 600 600 6 s 510 4000 0 )); -DATA(insert ( 4015 600 603 8 s 511 4000 0 )); - -/* - * SP-GiST kd_point_ops - */ -DATA(insert ( 4016 600 600 11 s 506 4000 0 )); -DATA(insert ( 4016 600 600 1 s 507 4000 0 )); -DATA(insert ( 4016 600 600 5 s 508 4000 0 )); -DATA(insert ( 4016 600 600 10 s 509 4000 0 )); -DATA(insert ( 4016 600 600 6 s 510 4000 0 )); -DATA(insert ( 4016 600 603 8 s 511 4000 0 )); - -/* - * SP-GiST text_ops - */ -DATA(insert ( 4017 25 25 1 s 2314 4000 0 )); -DATA(insert ( 4017 25 25 2 s 2315 4000 0 )); -DATA(insert ( 4017 25 25 3 s 98 4000 0 )); -DATA(insert ( 4017 25 25 4 s 2317 4000 0 )); -DATA(insert ( 4017 25 25 5 s 2318 4000 0 )); -DATA(insert ( 4017 25 25 11 s 664 4000 0 )); -DATA(insert ( 4017 25 25 12 s 665 4000 0 )); -DATA(insert ( 4017 25 25 14 s 667 4000 0 )); -DATA(insert ( 4017 25 25 15 s 666 4000 0 )); -DATA(insert ( 4017 25 25 28 s 3877 4000 0 )); - -/* - * btree jsonb_ops - */ -DATA(insert ( 4033 3802 3802 1 s 3242 403 0 )); -DATA(insert ( 4033 3802 3802 2 s 3244 403 0 )); -DATA(insert ( 4033 3802 3802 3 s 3240 403 0 )); -DATA(insert ( 4033 3802 3802 4 s 3245 403 0 )); -DATA(insert ( 4033 3802 3802 5 s 3243 403 0 )); - -/* - * hash jsonb_ops - */ -DATA(insert ( 4034 3802 3802 1 s 3240 405 0 )); - -/* - * GIN jsonb_ops - */ -DATA(insert ( 4036 3802 3802 7 s 3246 2742 0 )); -DATA(insert ( 4036 3802 25 9 s 3247 2742 0 )); -DATA(insert ( 4036 3802 1009 10 s 3248 2742 0 )); -DATA(insert ( 4036 3802 1009 11 s 3249 2742 0 )); - -/* - * GIN jsonb_path_ops - */ -DATA(insert ( 4037 3802 3802 7 s 3246 2742 0 )); - -/* - * SP-GiST range_ops - */ -DATA(insert ( 3474 3831 3831 1 s 3893 4000 0 )); -DATA(insert ( 3474 3831 3831 2 s 3895 4000 0 )); -DATA(insert ( 3474 3831 3831 3 s 3888 4000 0 )); -DATA(insert ( 3474 3831 3831 4 s 3896 4000 0 )); -DATA(insert ( 3474 3831 3831 5 s 3894 4000 0 )); -DATA(insert ( 3474 3831 3831 6 s 3897 4000 0 )); -DATA(insert ( 3474 3831 3831 7 s 3890 4000 0 )); -DATA(insert ( 3474 3831 3831 8 s 3892 4000 0 )); -DATA(insert ( 3474 3831 2283 16 s 3889 4000 0 )); -DATA(insert ( 3474 3831 3831 18 s 3882 4000 0 )); - -/* - * SP-GiST box_ops - */ -DATA(insert ( 5000 603 603 1 s 493 4000 0 )); -DATA(insert ( 5000 603 603 2 s 494 4000 0 )); -DATA(insert ( 5000 603 603 3 s 500 4000 0 )); -DATA(insert ( 5000 603 603 4 s 495 4000 0 )); -DATA(insert ( 5000 603 603 5 s 496 4000 0 )); -DATA(insert ( 5000 603 603 6 s 499 4000 0 )); -DATA(insert ( 5000 603 603 7 s 498 4000 0 )); -DATA(insert ( 5000 603 603 8 s 497 4000 0 )); -DATA(insert ( 5000 603 603 9 s 2571 4000 0 )); -DATA(insert ( 5000 603 603 10 s 2570 4000 0 )); -DATA(insert ( 5000 603 603 11 s 2573 4000 0 )); -DATA(insert ( 5000 603 603 12 s 2572 4000 0 )); - -/* - * SP-GiST poly_ops (supports polygons) - */ -DATA(insert ( 5008 604 604 1 s 485 4000 0 )); -DATA(insert ( 5008 604 604 2 s 486 4000 0 )); -DATA(insert ( 5008 604 604 3 s 492 4000 0 )); -DATA(insert ( 5008 604 604 4 s 487 4000 0 )); -DATA(insert ( 5008 604 604 5 s 488 4000 0 )); -DATA(insert ( 5008 604 604 6 s 491 4000 0 )); -DATA(insert ( 5008 604 604 7 s 490 4000 0 )); -DATA(insert ( 5008 604 604 8 s 489 4000 0 )); -DATA(insert ( 5008 604 604 9 s 2575 4000 0 )); -DATA(insert ( 5008 604 604 10 s 2574 4000 0 )); -DATA(insert ( 5008 604 604 11 s 2577 4000 0 )); -DATA(insert ( 5008 604 604 12 s 2576 4000 0 )); - -/* - * GiST inet_ops - */ -DATA(insert ( 3550 869 869 3 s 3552 783 0 )); -DATA(insert ( 3550 869 869 18 s 1201 783 0 )); -DATA(insert ( 3550 869 869 19 s 1202 783 0 )); -DATA(insert ( 3550 869 869 20 s 1203 783 0 )); -DATA(insert ( 3550 869 869 21 s 1204 783 0 )); -DATA(insert ( 3550 869 869 22 s 1205 783 0 )); -DATA(insert ( 3550 869 869 23 s 1206 783 0 )); -DATA(insert ( 3550 869 869 24 s 931 783 0 )); -DATA(insert ( 3550 869 869 25 s 932 783 0 )); -DATA(insert ( 3550 869 869 26 s 933 783 0 )); -DATA(insert ( 3550 869 869 27 s 934 783 0 )); - -/* - * SP-GiST inet_ops - */ -DATA(insert ( 3794 869 869 3 s 3552 4000 0 )); -DATA(insert ( 3794 869 869 18 s 1201 4000 0 )); -DATA(insert ( 3794 869 869 19 s 1202 4000 0 )); -DATA(insert ( 3794 869 869 20 s 1203 4000 0 )); -DATA(insert ( 3794 869 869 21 s 1204 4000 0 )); -DATA(insert ( 3794 869 869 22 s 1205 4000 0 )); -DATA(insert ( 3794 869 869 23 s 1206 4000 0 )); -DATA(insert ( 3794 869 869 24 s 931 4000 0 )); -DATA(insert ( 3794 869 869 25 s 932 4000 0 )); -DATA(insert ( 3794 869 869 26 s 933 4000 0 )); -DATA(insert ( 3794 869 869 27 s 934 4000 0 )); - -/* BRIN opclasses */ -/* minmax bytea */ -DATA(insert ( 4064 17 17 1 s 1957 3580 0 )); -DATA(insert ( 4064 17 17 2 s 1958 3580 0 )); -DATA(insert ( 4064 17 17 3 s 1955 3580 0 )); -DATA(insert ( 4064 17 17 4 s 1960 3580 0 )); -DATA(insert ( 4064 17 17 5 s 1959 3580 0 )); -/* minmax "char" */ -DATA(insert ( 4062 18 18 1 s 631 3580 0 )); -DATA(insert ( 4062 18 18 2 s 632 3580 0 )); -DATA(insert ( 4062 18 18 3 s 92 3580 0 )); -DATA(insert ( 4062 18 18 4 s 634 3580 0 )); -DATA(insert ( 4062 18 18 5 s 633 3580 0 )); -/* minmax name */ -DATA(insert ( 4065 19 19 1 s 660 3580 0 )); -DATA(insert ( 4065 19 19 2 s 661 3580 0 )); -DATA(insert ( 4065 19 19 3 s 93 3580 0 )); -DATA(insert ( 4065 19 19 4 s 663 3580 0 )); -DATA(insert ( 4065 19 19 5 s 662 3580 0 )); -/* minmax integer */ -DATA(insert ( 4054 20 20 1 s 412 3580 0 )); -DATA(insert ( 4054 20 20 2 s 414 3580 0 )); -DATA(insert ( 4054 20 20 3 s 410 3580 0 )); -DATA(insert ( 4054 20 20 4 s 415 3580 0 )); -DATA(insert ( 4054 20 20 5 s 413 3580 0 )); -DATA(insert ( 4054 20 21 1 s 1870 3580 0 )); -DATA(insert ( 4054 20 21 2 s 1872 3580 0 )); -DATA(insert ( 4054 20 21 3 s 1868 3580 0 )); -DATA(insert ( 4054 20 21 4 s 1873 3580 0 )); -DATA(insert ( 4054 20 21 5 s 1871 3580 0 )); -DATA(insert ( 4054 20 23 1 s 418 3580 0 )); -DATA(insert ( 4054 20 23 2 s 420 3580 0 )); -DATA(insert ( 4054 20 23 3 s 416 3580 0 )); -DATA(insert ( 4054 20 23 4 s 430 3580 0 )); -DATA(insert ( 4054 20 23 5 s 419 3580 0 )); -DATA(insert ( 4054 21 21 1 s 95 3580 0 )); -DATA(insert ( 4054 21 21 2 s 522 3580 0 )); -DATA(insert ( 4054 21 21 3 s 94 3580 0 )); -DATA(insert ( 4054 21 21 4 s 524 3580 0 )); -DATA(insert ( 4054 21 21 5 s 520 3580 0 )); -DATA(insert ( 4054 21 20 1 s 1864 3580 0 )); -DATA(insert ( 4054 21 20 2 s 1866 3580 0 )); -DATA(insert ( 4054 21 20 3 s 1862 3580 0 )); -DATA(insert ( 4054 21 20 4 s 1867 3580 0 )); -DATA(insert ( 4054 21 20 5 s 1865 3580 0 )); -DATA(insert ( 4054 21 23 1 s 534 3580 0 )); -DATA(insert ( 4054 21 23 2 s 540 3580 0 )); -DATA(insert ( 4054 21 23 3 s 532 3580 0 )); -DATA(insert ( 4054 21 23 4 s 542 3580 0 )); -DATA(insert ( 4054 21 23 5 s 536 3580 0 )); -DATA(insert ( 4054 23 23 1 s 97 3580 0 )); -DATA(insert ( 4054 23 23 2 s 523 3580 0 )); -DATA(insert ( 4054 23 23 3 s 96 3580 0 )); -DATA(insert ( 4054 23 23 4 s 525 3580 0 )); -DATA(insert ( 4054 23 23 5 s 521 3580 0 )); -DATA(insert ( 4054 23 21 1 s 535 3580 0 )); -DATA(insert ( 4054 23 21 2 s 541 3580 0 )); -DATA(insert ( 4054 23 21 3 s 533 3580 0 )); -DATA(insert ( 4054 23 21 4 s 543 3580 0 )); -DATA(insert ( 4054 23 21 5 s 537 3580 0 )); -DATA(insert ( 4054 23 20 1 s 37 3580 0 )); -DATA(insert ( 4054 23 20 2 s 80 3580 0 )); -DATA(insert ( 4054 23 20 3 s 15 3580 0 )); -DATA(insert ( 4054 23 20 4 s 82 3580 0 )); -DATA(insert ( 4054 23 20 5 s 76 3580 0 )); - -/* minmax text */ -DATA(insert ( 4056 25 25 1 s 664 3580 0 )); -DATA(insert ( 4056 25 25 2 s 665 3580 0 )); -DATA(insert ( 4056 25 25 3 s 98 3580 0 )); -DATA(insert ( 4056 25 25 4 s 667 3580 0 )); -DATA(insert ( 4056 25 25 5 s 666 3580 0 )); -/* minmax oid */ -DATA(insert ( 4068 26 26 1 s 609 3580 0 )); -DATA(insert ( 4068 26 26 2 s 611 3580 0 )); -DATA(insert ( 4068 26 26 3 s 607 3580 0 )); -DATA(insert ( 4068 26 26 4 s 612 3580 0 )); -DATA(insert ( 4068 26 26 5 s 610 3580 0 )); -/* minmax tid */ -DATA(insert ( 4069 27 27 1 s 2799 3580 0 )); -DATA(insert ( 4069 27 27 2 s 2801 3580 0 )); -DATA(insert ( 4069 27 27 3 s 387 3580 0 )); -DATA(insert ( 4069 27 27 4 s 2802 3580 0 )); -DATA(insert ( 4069 27 27 5 s 2800 3580 0 )); -/* minmax float (float4, float8) */ -DATA(insert ( 4070 700 700 1 s 622 3580 0 )); -DATA(insert ( 4070 700 700 2 s 624 3580 0 )); -DATA(insert ( 4070 700 700 3 s 620 3580 0 )); -DATA(insert ( 4070 700 700 4 s 625 3580 0 )); -DATA(insert ( 4070 700 700 5 s 623 3580 0 )); -DATA(insert ( 4070 700 701 1 s 1122 3580 0 )); -DATA(insert ( 4070 700 701 2 s 1124 3580 0 )); -DATA(insert ( 4070 700 701 3 s 1120 3580 0 )); -DATA(insert ( 4070 700 701 4 s 1125 3580 0 )); -DATA(insert ( 4070 700 701 5 s 1123 3580 0 )); -DATA(insert ( 4070 701 700 1 s 1132 3580 0 )); -DATA(insert ( 4070 701 700 2 s 1134 3580 0 )); -DATA(insert ( 4070 701 700 3 s 1130 3580 0 )); -DATA(insert ( 4070 701 700 4 s 1135 3580 0 )); -DATA(insert ( 4070 701 700 5 s 1133 3580 0 )); -DATA(insert ( 4070 701 701 1 s 672 3580 0 )); -DATA(insert ( 4070 701 701 2 s 673 3580 0 )); -DATA(insert ( 4070 701 701 3 s 670 3580 0 )); -DATA(insert ( 4070 701 701 4 s 675 3580 0 )); -DATA(insert ( 4070 701 701 5 s 674 3580 0 )); - -/* minmax abstime */ -DATA(insert ( 4072 702 702 1 s 562 3580 0 )); -DATA(insert ( 4072 702 702 2 s 564 3580 0 )); -DATA(insert ( 4072 702 702 3 s 560 3580 0 )); -DATA(insert ( 4072 702 702 4 s 565 3580 0 )); -DATA(insert ( 4072 702 702 5 s 563 3580 0 )); -/* minmax reltime */ -DATA(insert ( 4073 703 703 1 s 568 3580 0 )); -DATA(insert ( 4073 703 703 2 s 570 3580 0 )); -DATA(insert ( 4073 703 703 3 s 566 3580 0 )); -DATA(insert ( 4073 703 703 4 s 571 3580 0 )); -DATA(insert ( 4073 703 703 5 s 569 3580 0 )); -/* minmax macaddr */ -DATA(insert ( 4074 829 829 1 s 1222 3580 0 )); -DATA(insert ( 4074 829 829 2 s 1223 3580 0 )); -DATA(insert ( 4074 829 829 3 s 1220 3580 0 )); -DATA(insert ( 4074 829 829 4 s 1225 3580 0 )); -DATA(insert ( 4074 829 829 5 s 1224 3580 0 )); -/* minmax macaddr8 */ -DATA(insert ( 4109 774 774 1 s 3364 3580 0 )); -DATA(insert ( 4109 774 774 2 s 3365 3580 0 )); -DATA(insert ( 4109 774 774 3 s 3362 3580 0 )); -DATA(insert ( 4109 774 774 4 s 3367 3580 0 )); -DATA(insert ( 4109 774 774 5 s 3366 3580 0 )); -/* minmax inet */ -DATA(insert ( 4075 869 869 1 s 1203 3580 0 )); -DATA(insert ( 4075 869 869 2 s 1204 3580 0 )); -DATA(insert ( 4075 869 869 3 s 1201 3580 0 )); -DATA(insert ( 4075 869 869 4 s 1206 3580 0 )); -DATA(insert ( 4075 869 869 5 s 1205 3580 0 )); -/* inclusion inet */ -DATA(insert ( 4102 869 869 3 s 3552 3580 0 )); -DATA(insert ( 4102 869 869 7 s 934 3580 0 )); -DATA(insert ( 4102 869 869 8 s 932 3580 0 )); -DATA(insert ( 4102 869 869 18 s 1201 3580 0 )); -DATA(insert ( 4102 869 869 24 s 933 3580 0 )); -DATA(insert ( 4102 869 869 26 s 931 3580 0 )); -/* minmax character */ -DATA(insert ( 4076 1042 1042 1 s 1058 3580 0 )); -DATA(insert ( 4076 1042 1042 2 s 1059 3580 0 )); -DATA(insert ( 4076 1042 1042 3 s 1054 3580 0 )); -DATA(insert ( 4076 1042 1042 4 s 1061 3580 0 )); -DATA(insert ( 4076 1042 1042 5 s 1060 3580 0 )); -/* minmax time without time zone */ -DATA(insert ( 4077 1083 1083 1 s 1110 3580 0 )); -DATA(insert ( 4077 1083 1083 2 s 1111 3580 0 )); -DATA(insert ( 4077 1083 1083 3 s 1108 3580 0 )); -DATA(insert ( 4077 1083 1083 4 s 1113 3580 0 )); -DATA(insert ( 4077 1083 1083 5 s 1112 3580 0 )); -/* minmax datetime (date, timestamp, timestamptz) */ -DATA(insert ( 4059 1114 1114 1 s 2062 3580 0 )); -DATA(insert ( 4059 1114 1114 2 s 2063 3580 0 )); -DATA(insert ( 4059 1114 1114 3 s 2060 3580 0 )); -DATA(insert ( 4059 1114 1114 4 s 2065 3580 0 )); -DATA(insert ( 4059 1114 1114 5 s 2064 3580 0 )); -DATA(insert ( 4059 1114 1082 1 s 2371 3580 0 )); -DATA(insert ( 4059 1114 1082 2 s 2372 3580 0 )); -DATA(insert ( 4059 1114 1082 3 s 2373 3580 0 )); -DATA(insert ( 4059 1114 1082 4 s 2374 3580 0 )); -DATA(insert ( 4059 1114 1082 5 s 2375 3580 0 )); -DATA(insert ( 4059 1114 1184 1 s 2534 3580 0 )); -DATA(insert ( 4059 1114 1184 2 s 2535 3580 0 )); -DATA(insert ( 4059 1114 1184 3 s 2536 3580 0 )); -DATA(insert ( 4059 1114 1184 4 s 2537 3580 0 )); -DATA(insert ( 4059 1114 1184 5 s 2538 3580 0 )); -DATA(insert ( 4059 1082 1082 1 s 1095 3580 0 )); -DATA(insert ( 4059 1082 1082 2 s 1096 3580 0 )); -DATA(insert ( 4059 1082 1082 3 s 1093 3580 0 )); -DATA(insert ( 4059 1082 1082 4 s 1098 3580 0 )); -DATA(insert ( 4059 1082 1082 5 s 1097 3580 0 )); -DATA(insert ( 4059 1082 1114 1 s 2345 3580 0 )); -DATA(insert ( 4059 1082 1114 2 s 2346 3580 0 )); -DATA(insert ( 4059 1082 1114 3 s 2347 3580 0 )); -DATA(insert ( 4059 1082 1114 4 s 2348 3580 0 )); -DATA(insert ( 4059 1082 1114 5 s 2349 3580 0 )); -DATA(insert ( 4059 1082 1184 1 s 2358 3580 0 )); -DATA(insert ( 4059 1082 1184 2 s 2359 3580 0 )); -DATA(insert ( 4059 1082 1184 3 s 2360 3580 0 )); -DATA(insert ( 4059 1082 1184 4 s 2361 3580 0 )); -DATA(insert ( 4059 1082 1184 5 s 2362 3580 0 )); -DATA(insert ( 4059 1184 1082 1 s 2384 3580 0 )); -DATA(insert ( 4059 1184 1082 2 s 2385 3580 0 )); -DATA(insert ( 4059 1184 1082 3 s 2386 3580 0 )); -DATA(insert ( 4059 1184 1082 4 s 2387 3580 0 )); -DATA(insert ( 4059 1184 1082 5 s 2388 3580 0 )); -DATA(insert ( 4059 1184 1114 1 s 2540 3580 0 )); -DATA(insert ( 4059 1184 1114 2 s 2541 3580 0 )); -DATA(insert ( 4059 1184 1114 3 s 2542 3580 0 )); -DATA(insert ( 4059 1184 1114 4 s 2543 3580 0 )); -DATA(insert ( 4059 1184 1114 5 s 2544 3580 0 )); -DATA(insert ( 4059 1184 1184 1 s 1322 3580 0 )); -DATA(insert ( 4059 1184 1184 2 s 1323 3580 0 )); -DATA(insert ( 4059 1184 1184 3 s 1320 3580 0 )); -DATA(insert ( 4059 1184 1184 4 s 1325 3580 0 )); -DATA(insert ( 4059 1184 1184 5 s 1324 3580 0 )); - -/* minmax interval */ -DATA(insert ( 4078 1186 1186 1 s 1332 3580 0 )); -DATA(insert ( 4078 1186 1186 2 s 1333 3580 0 )); -DATA(insert ( 4078 1186 1186 3 s 1330 3580 0 )); -DATA(insert ( 4078 1186 1186 4 s 1335 3580 0 )); -DATA(insert ( 4078 1186 1186 5 s 1334 3580 0 )); -/* minmax time with time zone */ -DATA(insert ( 4058 1266 1266 1 s 1552 3580 0 )); -DATA(insert ( 4058 1266 1266 2 s 1553 3580 0 )); -DATA(insert ( 4058 1266 1266 3 s 1550 3580 0 )); -DATA(insert ( 4058 1266 1266 4 s 1555 3580 0 )); -DATA(insert ( 4058 1266 1266 5 s 1554 3580 0 )); -/* minmax bit */ -DATA(insert ( 4079 1560 1560 1 s 1786 3580 0 )); -DATA(insert ( 4079 1560 1560 2 s 1788 3580 0 )); -DATA(insert ( 4079 1560 1560 3 s 1784 3580 0 )); -DATA(insert ( 4079 1560 1560 4 s 1789 3580 0 )); -DATA(insert ( 4079 1560 1560 5 s 1787 3580 0 )); -/* minmax bit varying */ -DATA(insert ( 4080 1562 1562 1 s 1806 3580 0 )); -DATA(insert ( 4080 1562 1562 2 s 1808 3580 0 )); -DATA(insert ( 4080 1562 1562 3 s 1804 3580 0 )); -DATA(insert ( 4080 1562 1562 4 s 1809 3580 0 )); -DATA(insert ( 4080 1562 1562 5 s 1807 3580 0 )); -/* minmax numeric */ -DATA(insert ( 4055 1700 1700 1 s 1754 3580 0 )); -DATA(insert ( 4055 1700 1700 2 s 1755 3580 0 )); -DATA(insert ( 4055 1700 1700 3 s 1752 3580 0 )); -DATA(insert ( 4055 1700 1700 4 s 1757 3580 0 )); -DATA(insert ( 4055 1700 1700 5 s 1756 3580 0 )); -/* minmax uuid */ -DATA(insert ( 4081 2950 2950 1 s 2974 3580 0 )); -DATA(insert ( 4081 2950 2950 2 s 2976 3580 0 )); -DATA(insert ( 4081 2950 2950 3 s 2972 3580 0 )); -DATA(insert ( 4081 2950 2950 4 s 2977 3580 0 )); -DATA(insert ( 4081 2950 2950 5 s 2975 3580 0 )); -/* inclusion range types */ -DATA(insert ( 4103 3831 3831 1 s 3893 3580 0 )); -DATA(insert ( 4103 3831 3831 2 s 3895 3580 0 )); -DATA(insert ( 4103 3831 3831 3 s 3888 3580 0 )); -DATA(insert ( 4103 3831 3831 4 s 3896 3580 0 )); -DATA(insert ( 4103 3831 3831 5 s 3894 3580 0 )); -DATA(insert ( 4103 3831 3831 7 s 3890 3580 0 )); -DATA(insert ( 4103 3831 3831 8 s 3892 3580 0 )); -DATA(insert ( 4103 3831 2283 16 s 3889 3580 0 )); -DATA(insert ( 4103 3831 3831 17 s 3897 3580 0 )); -DATA(insert ( 4103 3831 3831 18 s 3882 3580 0 )); -DATA(insert ( 4103 3831 3831 20 s 3884 3580 0 )); -DATA(insert ( 4103 3831 3831 21 s 3885 3580 0 )); -DATA(insert ( 4103 3831 3831 22 s 3887 3580 0 )); -DATA(insert ( 4103 3831 3831 23 s 3886 3580 0 )); -/* minmax pg_lsn */ -DATA(insert ( 4082 3220 3220 1 s 3224 3580 0 )); -DATA(insert ( 4082 3220 3220 2 s 3226 3580 0 )); -DATA(insert ( 4082 3220 3220 3 s 3222 3580 0 )); -DATA(insert ( 4082 3220 3220 4 s 3227 3580 0 )); -DATA(insert ( 4082 3220 3220 5 s 3225 3580 0 )); -/* inclusion box */ -DATA(insert ( 4104 603 603 1 s 493 3580 0 )); -DATA(insert ( 4104 603 603 2 s 494 3580 0 )); -DATA(insert ( 4104 603 603 3 s 500 3580 0 )); -DATA(insert ( 4104 603 603 4 s 495 3580 0 )); -DATA(insert ( 4104 603 603 5 s 496 3580 0 )); -DATA(insert ( 4104 603 603 6 s 499 3580 0 )); -DATA(insert ( 4104 603 603 7 s 498 3580 0 )); -DATA(insert ( 4104 603 603 8 s 497 3580 0 )); -DATA(insert ( 4104 603 603 9 s 2571 3580 0 )); -DATA(insert ( 4104 603 603 10 s 2570 3580 0 )); -DATA(insert ( 4104 603 603 11 s 2573 3580 0 )); -DATA(insert ( 4104 603 603 12 s 2572 3580 0 )); -/* we could, but choose not to, supply entries for strategies 13 and 14 */ -DATA(insert ( 4104 603 600 7 s 433 3580 0 )); +#endif /* EXPOSE_TO_CLIENT_CODE */ #endif /* PG_AMOP_H */ diff --git a/src/include/catalog/pg_amproc.dat b/src/include/catalog/pg_amproc.dat new file mode 100644 index 0000000000..6b6c807f90 --- /dev/null +++ b/src/include/catalog/pg_amproc.dat @@ -0,0 +1,1277 @@ +#---------------------------------------------------------------------- +# +# pg_amproc.dat +# Initial contents of the pg_amproc system relation. +# +# Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group +# Portions Copyright (c) 1994, Regents of the University of California +# +# src/include/catalog/pg_amproc.dat +# +#---------------------------------------------------------------------- + +[ + +# btree +{ amprocfamily => 'btree/array_ops', amproclefttype => 'anyarray', + amprocrighttype => 'anyarray', amprocnum => '1', amproc => 'btarraycmp' }, +{ amprocfamily => 'btree/abstime_ops', amproclefttype => 'abstime', + amprocrighttype => 'abstime', amprocnum => '1', amproc => 'btabstimecmp' }, +{ amprocfamily => 'btree/bit_ops', amproclefttype => 'bit', + amprocrighttype => 'bit', amprocnum => '1', amproc => 'bitcmp' }, +{ amprocfamily => 'btree/bool_ops', amproclefttype => 'bool', + amprocrighttype => 'bool', amprocnum => '1', amproc => 'btboolcmp' }, +{ amprocfamily => 'btree/bpchar_ops', amproclefttype => 'bpchar', + amprocrighttype => 'bpchar', amprocnum => '1', amproc => 'bpcharcmp' }, +{ amprocfamily => 'btree/bpchar_ops', amproclefttype => 'bpchar', + amprocrighttype => 'bpchar', amprocnum => '2', + amproc => 'bpchar_sortsupport' }, +{ amprocfamily => 'btree/bytea_ops', amproclefttype => 'bytea', + amprocrighttype => 'bytea', amprocnum => '1', amproc => 'byteacmp' }, +{ amprocfamily => 'btree/bytea_ops', amproclefttype => 'bytea', + amprocrighttype => 'bytea', amprocnum => '2', amproc => 'bytea_sortsupport' }, +{ amprocfamily => 'btree/char_ops', amproclefttype => 'char', + amprocrighttype => 'char', amprocnum => '1', amproc => 'btcharcmp' }, +{ amprocfamily => 'btree/datetime_ops', amproclefttype => 'date', + amprocrighttype => 'date', amprocnum => '1', amproc => 'date_cmp' }, +{ amprocfamily => 'btree/datetime_ops', amproclefttype => 'date', + amprocrighttype => 'date', amprocnum => '2', amproc => 'date_sortsupport' }, +{ amprocfamily => 'btree/datetime_ops', amproclefttype => 'date', + amprocrighttype => 'timestamp', amprocnum => '1', + amproc => 'date_cmp_timestamp' }, +{ amprocfamily => 'btree/datetime_ops', amproclefttype => 'date', + amprocrighttype => 'timestamptz', amprocnum => '1', + amproc => 'date_cmp_timestamptz' }, +{ amprocfamily => 'btree/datetime_ops', amproclefttype => 'timestamp', + amprocrighttype => 'timestamp', amprocnum => '1', amproc => 'timestamp_cmp' }, +{ amprocfamily => 'btree/datetime_ops', amproclefttype => 'timestamp', + amprocrighttype => 'timestamp', amprocnum => '2', + amproc => 'timestamp_sortsupport' }, +{ amprocfamily => 'btree/datetime_ops', amproclefttype => 'timestamp', + amprocrighttype => 'date', amprocnum => '1', amproc => 'timestamp_cmp_date' }, +{ amprocfamily => 'btree/datetime_ops', amproclefttype => 'timestamp', + amprocrighttype => 'timestamptz', amprocnum => '1', + amproc => 'timestamp_cmp_timestamptz' }, +{ amprocfamily => 'btree/datetime_ops', amproclefttype => 'timestamptz', + amprocrighttype => 'timestamptz', amprocnum => '1', + amproc => 'timestamptz_cmp' }, +{ amprocfamily => 'btree/datetime_ops', amproclefttype => 'timestamptz', + amprocrighttype => 'timestamptz', amprocnum => '2', + amproc => 'timestamp_sortsupport' }, +{ amprocfamily => 'btree/datetime_ops', amproclefttype => 'timestamptz', + amprocrighttype => 'date', amprocnum => '1', + amproc => 'timestamptz_cmp_date' }, +{ amprocfamily => 'btree/datetime_ops', amproclefttype => 'timestamptz', + amprocrighttype => 'timestamp', amprocnum => '1', + amproc => 'timestamptz_cmp_timestamp' }, +{ amprocfamily => 'btree/datetime_ops', amproclefttype => 'date', + amprocrighttype => 'interval', amprocnum => '3', + amproc => 'in_range(date,date,interval,bool,bool)' }, +{ amprocfamily => 'btree/datetime_ops', amproclefttype => 'timestamp', + amprocrighttype => 'interval', amprocnum => '3', + amproc => 'in_range(timestamp,timestamp,interval,bool,bool)' }, +{ amprocfamily => 'btree/datetime_ops', amproclefttype => 'timestamptz', + amprocrighttype => 'interval', amprocnum => '3', + amproc => 'in_range(timestamptz,timestamptz,interval,bool,bool)' }, +{ amprocfamily => 'btree/float_ops', amproclefttype => 'float4', + amprocrighttype => 'float4', amprocnum => '1', amproc => 'btfloat4cmp' }, +{ amprocfamily => 'btree/float_ops', amproclefttype => 'float4', + amprocrighttype => 'float4', amprocnum => '2', + amproc => 'btfloat4sortsupport' }, +{ amprocfamily => 'btree/float_ops', amproclefttype => 'float4', + amprocrighttype => 'float8', amprocnum => '1', amproc => 'btfloat48cmp' }, +{ amprocfamily => 'btree/float_ops', amproclefttype => 'float8', + amprocrighttype => 'float8', amprocnum => '1', amproc => 'btfloat8cmp' }, +{ amprocfamily => 'btree/float_ops', amproclefttype => 'float8', + amprocrighttype => 'float8', amprocnum => '2', + amproc => 'btfloat8sortsupport' }, +{ amprocfamily => 'btree/float_ops', amproclefttype => 'float8', + amprocrighttype => 'float4', amprocnum => '1', amproc => 'btfloat84cmp' }, +{ amprocfamily => 'btree/float_ops', amproclefttype => 'float8', + amprocrighttype => 'float8', amprocnum => '3', + amproc => 'in_range(float8,float8,float8,bool,bool)' }, +{ amprocfamily => 'btree/float_ops', amproclefttype => 'float4', + amprocrighttype => 'float8', amprocnum => '3', + amproc => 'in_range(float4,float4,float8,bool,bool)' }, +{ amprocfamily => 'btree/network_ops', amproclefttype => 'inet', + amprocrighttype => 'inet', amprocnum => '1', amproc => 'network_cmp' }, +{ amprocfamily => 'btree/integer_ops', amproclefttype => 'int2', + amprocrighttype => 'int2', amprocnum => '1', amproc => 'btint2cmp' }, +{ amprocfamily => 'btree/integer_ops', amproclefttype => 'int2', + amprocrighttype => 'int2', amprocnum => '2', amproc => 'btint2sortsupport' }, +{ amprocfamily => 'btree/integer_ops', amproclefttype => 'int2', + amprocrighttype => 'int4', amprocnum => '1', amproc => 'btint24cmp' }, +{ amprocfamily => 'btree/integer_ops', amproclefttype => 'int2', + amprocrighttype => 'int8', amprocnum => '1', amproc => 'btint28cmp' }, +{ amprocfamily => 'btree/integer_ops', amproclefttype => 'int2', + amprocrighttype => 'int8', amprocnum => '3', + amproc => 'in_range(int2,int2,int8,bool,bool)' }, +{ amprocfamily => 'btree/integer_ops', amproclefttype => 'int2', + amprocrighttype => 'int4', amprocnum => '3', + amproc => 'in_range(int2,int2,int4,bool,bool)' }, +{ amprocfamily => 'btree/integer_ops', amproclefttype => 'int2', + amprocrighttype => 'int2', amprocnum => '3', + amproc => 'in_range(int2,int2,int2,bool,bool)' }, +{ amprocfamily => 'btree/integer_ops', amproclefttype => 'int4', + amprocrighttype => 'int4', amprocnum => '1', amproc => 'btint4cmp' }, +{ amprocfamily => 'btree/integer_ops', amproclefttype => 'int4', + amprocrighttype => 'int4', amprocnum => '2', amproc => 'btint4sortsupport' }, +{ amprocfamily => 'btree/integer_ops', amproclefttype => 'int4', + amprocrighttype => 'int8', amprocnum => '1', amproc => 'btint48cmp' }, +{ amprocfamily => 'btree/integer_ops', amproclefttype => 'int4', + amprocrighttype => 'int2', amprocnum => '1', amproc => 'btint42cmp' }, +{ amprocfamily => 'btree/integer_ops', amproclefttype => 'int4', + amprocrighttype => 'int8', amprocnum => '3', + amproc => 'in_range(int4,int4,int8,bool,bool)' }, +{ amprocfamily => 'btree/integer_ops', amproclefttype => 'int4', + amprocrighttype => 'int4', amprocnum => '3', + amproc => 'in_range(int4,int4,int4,bool,bool)' }, +{ amprocfamily => 'btree/integer_ops', amproclefttype => 'int4', + amprocrighttype => 'int2', amprocnum => '3', + amproc => 'in_range(int4,int4,int2,bool,bool)' }, +{ amprocfamily => 'btree/integer_ops', amproclefttype => 'int8', + amprocrighttype => 'int8', amprocnum => '1', amproc => 'btint8cmp' }, +{ amprocfamily => 'btree/integer_ops', amproclefttype => 'int8', + amprocrighttype => 'int8', amprocnum => '2', amproc => 'btint8sortsupport' }, +{ amprocfamily => 'btree/integer_ops', amproclefttype => 'int8', + amprocrighttype => 'int4', amprocnum => '1', amproc => 'btint84cmp' }, +{ amprocfamily => 'btree/integer_ops', amproclefttype => 'int8', + amprocrighttype => 'int2', amprocnum => '1', amproc => 'btint82cmp' }, +{ amprocfamily => 'btree/integer_ops', amproclefttype => 'int8', + amprocrighttype => 'int8', amprocnum => '3', + amproc => 'in_range(int8,int8,int8,bool,bool)' }, +{ amprocfamily => 'btree/interval_ops', amproclefttype => 'interval', + amprocrighttype => 'interval', amprocnum => '1', amproc => 'interval_cmp' }, +{ amprocfamily => 'btree/interval_ops', amproclefttype => 'interval', + amprocrighttype => 'interval', amprocnum => '3', + amproc => 'in_range(interval,interval,interval,bool,bool)' }, +{ amprocfamily => 'btree/macaddr_ops', amproclefttype => 'macaddr', + amprocrighttype => 'macaddr', amprocnum => '1', amproc => 'macaddr_cmp' }, +{ amprocfamily => 'btree/macaddr_ops', amproclefttype => 'macaddr', + amprocrighttype => 'macaddr', amprocnum => '2', + amproc => 'macaddr_sortsupport' }, +{ amprocfamily => 'btree/name_ops', amproclefttype => 'name', + amprocrighttype => 'name', amprocnum => '1', amproc => 'btnamecmp' }, +{ amprocfamily => 'btree/name_ops', amproclefttype => 'name', + amprocrighttype => 'name', amprocnum => '2', amproc => 'btnamesortsupport' }, +{ amprocfamily => 'btree/numeric_ops', amproclefttype => 'numeric', + amprocrighttype => 'numeric', amprocnum => '1', amproc => 'numeric_cmp' }, +{ amprocfamily => 'btree/numeric_ops', amproclefttype => 'numeric', + amprocrighttype => 'numeric', amprocnum => '2', + amproc => 'numeric_sortsupport' }, +{ amprocfamily => 'btree/numeric_ops', amproclefttype => 'numeric', + amprocrighttype => 'numeric', amprocnum => '3', + amproc => 'in_range(numeric,numeric,numeric,bool,bool)' }, +{ amprocfamily => 'btree/oid_ops', amproclefttype => 'oid', + amprocrighttype => 'oid', amprocnum => '1', amproc => 'btoidcmp' }, +{ amprocfamily => 'btree/oid_ops', amproclefttype => 'oid', + amprocrighttype => 'oid', amprocnum => '2', amproc => 'btoidsortsupport' }, +{ amprocfamily => 'btree/oidvector_ops', amproclefttype => 'oidvector', + amprocrighttype => 'oidvector', amprocnum => '1', + amproc => 'btoidvectorcmp' }, +{ amprocfamily => 'btree/text_ops', amproclefttype => 'text', + amprocrighttype => 'text', amprocnum => '1', amproc => 'bttextcmp' }, +{ amprocfamily => 'btree/text_ops', amproclefttype => 'text', + amprocrighttype => 'text', amprocnum => '2', amproc => 'bttextsortsupport' }, +{ amprocfamily => 'btree/time_ops', amproclefttype => 'time', + amprocrighttype => 'time', amprocnum => '1', amproc => 'time_cmp' }, +{ amprocfamily => 'btree/time_ops', amproclefttype => 'time', + amprocrighttype => 'interval', amprocnum => '3', + amproc => 'in_range(time,time,interval,bool,bool)' }, +{ amprocfamily => 'btree/timetz_ops', amproclefttype => 'timetz', + amprocrighttype => 'timetz', amprocnum => '1', amproc => 'timetz_cmp' }, +{ amprocfamily => 'btree/timetz_ops', amproclefttype => 'timetz', + amprocrighttype => 'interval', amprocnum => '3', + amproc => 'in_range(timetz,timetz,interval,bool,bool)' }, +{ amprocfamily => 'btree/varbit_ops', amproclefttype => 'varbit', + amprocrighttype => 'varbit', amprocnum => '1', amproc => 'varbitcmp' }, +{ amprocfamily => 'btree/text_pattern_ops', amproclefttype => 'text', + amprocrighttype => 'text', amprocnum => '1', amproc => 'bttext_pattern_cmp' }, +{ amprocfamily => 'btree/text_pattern_ops', amproclefttype => 'text', + amprocrighttype => 'text', amprocnum => '2', + amproc => 'bttext_pattern_sortsupport' }, +{ amprocfamily => 'btree/bpchar_pattern_ops', amproclefttype => 'bpchar', + amprocrighttype => 'bpchar', amprocnum => '1', + amproc => 'btbpchar_pattern_cmp' }, +{ amprocfamily => 'btree/bpchar_pattern_ops', amproclefttype => 'bpchar', + amprocrighttype => 'bpchar', amprocnum => '2', + amproc => 'btbpchar_pattern_sortsupport' }, +{ amprocfamily => 'btree/money_ops', amproclefttype => 'money', + amprocrighttype => 'money', amprocnum => '1', amproc => 'cash_cmp' }, +{ amprocfamily => 'btree/reltime_ops', amproclefttype => 'reltime', + amprocrighttype => 'reltime', amprocnum => '1', amproc => 'btreltimecmp' }, +{ amprocfamily => 'btree/tinterval_ops', amproclefttype => 'tinterval', + amprocrighttype => 'tinterval', amprocnum => '1', + amproc => 'bttintervalcmp' }, +{ amprocfamily => 'btree/tid_ops', amproclefttype => 'tid', + amprocrighttype => 'tid', amprocnum => '1', amproc => 'bttidcmp' }, +{ amprocfamily => 'btree/uuid_ops', amproclefttype => 'uuid', + amprocrighttype => 'uuid', amprocnum => '1', amproc => 'uuid_cmp' }, +{ amprocfamily => 'btree/uuid_ops', amproclefttype => 'uuid', + amprocrighttype => 'uuid', amprocnum => '2', amproc => 'uuid_sortsupport' }, +{ amprocfamily => 'btree/record_ops', amproclefttype => 'record', + amprocrighttype => 'record', amprocnum => '1', amproc => 'btrecordcmp' }, +{ amprocfamily => 'btree/record_image_ops', amproclefttype => 'record', + amprocrighttype => 'record', amprocnum => '1', amproc => 'btrecordimagecmp' }, +{ amprocfamily => 'btree/pg_lsn_ops', amproclefttype => 'pg_lsn', + amprocrighttype => 'pg_lsn', amprocnum => '1', amproc => 'pg_lsn_cmp' }, +{ amprocfamily => 'btree/macaddr8_ops', amproclefttype => 'macaddr8', + amprocrighttype => 'macaddr8', amprocnum => '1', amproc => 'macaddr8_cmp' }, +{ amprocfamily => 'btree/enum_ops', amproclefttype => 'anyenum', + amprocrighttype => 'anyenum', amprocnum => '1', amproc => 'enum_cmp' }, +{ amprocfamily => 'btree/tsvector_ops', amproclefttype => 'tsvector', + amprocrighttype => 'tsvector', amprocnum => '1', amproc => 'tsvector_cmp' }, +{ amprocfamily => 'btree/tsquery_ops', amproclefttype => 'tsquery', + amprocrighttype => 'tsquery', amprocnum => '1', amproc => 'tsquery_cmp' }, +{ amprocfamily => 'btree/range_ops', amproclefttype => 'anyrange', + amprocrighttype => 'anyrange', amprocnum => '1', amproc => 'range_cmp' }, +{ amprocfamily => 'btree/jsonb_ops', amproclefttype => 'jsonb', + amprocrighttype => 'jsonb', amprocnum => '1', amproc => 'jsonb_cmp' }, + +# hash +{ amprocfamily => 'hash/bpchar_ops', amproclefttype => 'bpchar', + amprocrighttype => 'bpchar', amprocnum => '1', amproc => 'hashbpchar' }, +{ amprocfamily => 'hash/bpchar_ops', amproclefttype => 'bpchar', + amprocrighttype => 'bpchar', amprocnum => '2', + amproc => 'hashbpcharextended' }, +{ amprocfamily => 'hash/char_ops', amproclefttype => 'char', + amprocrighttype => 'char', amprocnum => '1', amproc => 'hashchar' }, +{ amprocfamily => 'hash/char_ops', amproclefttype => 'char', + amprocrighttype => 'char', amprocnum => '2', amproc => 'hashcharextended' }, +{ amprocfamily => 'hash/date_ops', amproclefttype => 'date', + amprocrighttype => 'date', amprocnum => '1', amproc => 'hashint4' }, +{ amprocfamily => 'hash/date_ops', amproclefttype => 'date', + amprocrighttype => 'date', amprocnum => '2', amproc => 'hashint4extended' }, +{ amprocfamily => 'hash/array_ops', amproclefttype => 'anyarray', + amprocrighttype => 'anyarray', amprocnum => '1', amproc => 'hash_array' }, +{ amprocfamily => 'hash/array_ops', amproclefttype => 'anyarray', + amprocrighttype => 'anyarray', amprocnum => '2', + amproc => 'hash_array_extended' }, +{ amprocfamily => 'hash/float_ops', amproclefttype => 'float4', + amprocrighttype => 'float4', amprocnum => '1', amproc => 'hashfloat4' }, +{ amprocfamily => 'hash/float_ops', amproclefttype => 'float4', + amprocrighttype => 'float4', amprocnum => '2', + amproc => 'hashfloat4extended' }, +{ amprocfamily => 'hash/float_ops', amproclefttype => 'float8', + amprocrighttype => 'float8', amprocnum => '1', amproc => 'hashfloat8' }, +{ amprocfamily => 'hash/float_ops', amproclefttype => 'float8', + amprocrighttype => 'float8', amprocnum => '2', + amproc => 'hashfloat8extended' }, +{ amprocfamily => 'hash/network_ops', amproclefttype => 'inet', + amprocrighttype => 'inet', amprocnum => '1', amproc => 'hashinet' }, +{ amprocfamily => 'hash/network_ops', amproclefttype => 'inet', + amprocrighttype => 'inet', amprocnum => '2', amproc => 'hashinetextended' }, +{ amprocfamily => 'hash/integer_ops', amproclefttype => 'int2', + amprocrighttype => 'int2', amprocnum => '1', amproc => 'hashint2' }, +{ amprocfamily => 'hash/integer_ops', amproclefttype => 'int2', + amprocrighttype => 'int2', amprocnum => '2', amproc => 'hashint2extended' }, +{ amprocfamily => 'hash/integer_ops', amproclefttype => 'int4', + amprocrighttype => 'int4', amprocnum => '1', amproc => 'hashint4' }, +{ amprocfamily => 'hash/integer_ops', amproclefttype => 'int4', + amprocrighttype => 'int4', amprocnum => '2', amproc => 'hashint4extended' }, +{ amprocfamily => 'hash/integer_ops', amproclefttype => 'int8', + amprocrighttype => 'int8', amprocnum => '1', amproc => 'hashint8' }, +{ amprocfamily => 'hash/integer_ops', amproclefttype => 'int8', + amprocrighttype => 'int8', amprocnum => '2', amproc => 'hashint8extended' }, +{ amprocfamily => 'hash/interval_ops', amproclefttype => 'interval', + amprocrighttype => 'interval', amprocnum => '1', amproc => 'interval_hash' }, +{ amprocfamily => 'hash/interval_ops', amproclefttype => 'interval', + amprocrighttype => 'interval', amprocnum => '2', + amproc => 'interval_hash_extended' }, +{ amprocfamily => 'hash/macaddr_ops', amproclefttype => 'macaddr', + amprocrighttype => 'macaddr', amprocnum => '1', amproc => 'hashmacaddr' }, +{ amprocfamily => 'hash/macaddr_ops', amproclefttype => 'macaddr', + amprocrighttype => 'macaddr', amprocnum => '2', + amproc => 'hashmacaddrextended' }, +{ amprocfamily => 'hash/name_ops', amproclefttype => 'name', + amprocrighttype => 'name', amprocnum => '1', amproc => 'hashname' }, +{ amprocfamily => 'hash/name_ops', amproclefttype => 'name', + amprocrighttype => 'name', amprocnum => '2', amproc => 'hashnameextended' }, +{ amprocfamily => 'hash/oid_ops', amproclefttype => 'oid', + amprocrighttype => 'oid', amprocnum => '1', amproc => 'hashoid' }, +{ amprocfamily => 'hash/oid_ops', amproclefttype => 'oid', + amprocrighttype => 'oid', amprocnum => '2', amproc => 'hashoidextended' }, +{ amprocfamily => 'hash/oidvector_ops', amproclefttype => 'oidvector', + amprocrighttype => 'oidvector', amprocnum => '1', amproc => 'hashoidvector' }, +{ amprocfamily => 'hash/oidvector_ops', amproclefttype => 'oidvector', + amprocrighttype => 'oidvector', amprocnum => '2', + amproc => 'hashoidvectorextended' }, +{ amprocfamily => 'hash/text_ops', amproclefttype => 'text', + amprocrighttype => 'text', amprocnum => '1', amproc => 'hashtext' }, +{ amprocfamily => 'hash/text_ops', amproclefttype => 'text', + amprocrighttype => 'text', amprocnum => '2', amproc => 'hashtextextended' }, +{ amprocfamily => 'hash/time_ops', amproclefttype => 'time', + amprocrighttype => 'time', amprocnum => '1', amproc => 'time_hash' }, +{ amprocfamily => 'hash/time_ops', amproclefttype => 'time', + amprocrighttype => 'time', amprocnum => '2', amproc => 'time_hash_extended' }, +{ amprocfamily => 'hash/numeric_ops', amproclefttype => 'numeric', + amprocrighttype => 'numeric', amprocnum => '1', amproc => 'hash_numeric' }, +{ amprocfamily => 'hash/numeric_ops', amproclefttype => 'numeric', + amprocrighttype => 'numeric', amprocnum => '2', + amproc => 'hash_numeric_extended' }, +{ amprocfamily => 'hash/timestamptz_ops', amproclefttype => 'timestamptz', + amprocrighttype => 'timestamptz', amprocnum => '1', + amproc => 'timestamp_hash' }, +{ amprocfamily => 'hash/timestamptz_ops', amproclefttype => 'timestamptz', + amprocrighttype => 'timestamptz', amprocnum => '2', + amproc => 'timestamp_hash_extended' }, +{ amprocfamily => 'hash/timetz_ops', amproclefttype => 'timetz', + amprocrighttype => 'timetz', amprocnum => '1', amproc => 'timetz_hash' }, +{ amprocfamily => 'hash/timetz_ops', amproclefttype => 'timetz', + amprocrighttype => 'timetz', amprocnum => '2', + amproc => 'timetz_hash_extended' }, +{ amprocfamily => 'hash/timestamp_ops', amproclefttype => 'timestamp', + amprocrighttype => 'timestamp', amprocnum => '1', + amproc => 'timestamp_hash' }, +{ amprocfamily => 'hash/timestamp_ops', amproclefttype => 'timestamp', + amprocrighttype => 'timestamp', amprocnum => '2', + amproc => 'timestamp_hash_extended' }, +{ amprocfamily => 'hash/bool_ops', amproclefttype => 'bool', + amprocrighttype => 'bool', amprocnum => '1', amproc => 'hashchar' }, +{ amprocfamily => 'hash/bool_ops', amproclefttype => 'bool', + amprocrighttype => 'bool', amprocnum => '2', amproc => 'hashcharextended' }, +{ amprocfamily => 'hash/bytea_ops', amproclefttype => 'bytea', + amprocrighttype => 'bytea', amprocnum => '1', amproc => 'hashvarlena' }, +{ amprocfamily => 'hash/bytea_ops', amproclefttype => 'bytea', + amprocrighttype => 'bytea', amprocnum => '2', + amproc => 'hashvarlenaextended' }, +{ amprocfamily => 'hash/xid_ops', amproclefttype => 'xid', + amprocrighttype => 'xid', amprocnum => '1', amproc => 'hashint4' }, +{ amprocfamily => 'hash/xid_ops', amproclefttype => 'xid', + amprocrighttype => 'xid', amprocnum => '2', amproc => 'hashint4extended' }, +{ amprocfamily => 'hash/cid_ops', amproclefttype => 'cid', + amprocrighttype => 'cid', amprocnum => '1', amproc => 'hashint4' }, +{ amprocfamily => 'hash/cid_ops', amproclefttype => 'cid', + amprocrighttype => 'cid', amprocnum => '2', amproc => 'hashint4extended' }, +{ amprocfamily => 'hash/abstime_ops', amproclefttype => 'abstime', + amprocrighttype => 'abstime', amprocnum => '1', amproc => 'hashint4' }, +{ amprocfamily => 'hash/abstime_ops', amproclefttype => 'abstime', + amprocrighttype => 'abstime', amprocnum => '2', + amproc => 'hashint4extended' }, +{ amprocfamily => 'hash/reltime_ops', amproclefttype => 'reltime', + amprocrighttype => 'reltime', amprocnum => '1', amproc => 'hashint4' }, +{ amprocfamily => 'hash/reltime_ops', amproclefttype => 'reltime', + amprocrighttype => 'reltime', amprocnum => '2', + amproc => 'hashint4extended' }, +{ amprocfamily => 'hash/text_pattern_ops', amproclefttype => 'text', + amprocrighttype => 'text', amprocnum => '1', amproc => 'hashtext' }, +{ amprocfamily => 'hash/text_pattern_ops', amproclefttype => 'text', + amprocrighttype => 'text', amprocnum => '2', amproc => 'hashtextextended' }, +{ amprocfamily => 'hash/bpchar_pattern_ops', amproclefttype => 'bpchar', + amprocrighttype => 'bpchar', amprocnum => '1', amproc => 'hashbpchar' }, +{ amprocfamily => 'hash/bpchar_pattern_ops', amproclefttype => 'bpchar', + amprocrighttype => 'bpchar', amprocnum => '2', + amproc => 'hashbpcharextended' }, +{ amprocfamily => 'hash/aclitem_ops', amproclefttype => 'aclitem', + amprocrighttype => 'aclitem', amprocnum => '1', amproc => 'hash_aclitem' }, +{ amprocfamily => 'hash/aclitem_ops', amproclefttype => 'aclitem', + amprocrighttype => 'aclitem', amprocnum => '2', + amproc => 'hash_aclitem_extended' }, +{ amprocfamily => 'hash/uuid_ops', amproclefttype => 'uuid', + amprocrighttype => 'uuid', amprocnum => '1', amproc => 'uuid_hash' }, +{ amprocfamily => 'hash/uuid_ops', amproclefttype => 'uuid', + amprocrighttype => 'uuid', amprocnum => '2', amproc => 'uuid_hash_extended' }, +{ amprocfamily => 'hash/pg_lsn_ops', amproclefttype => 'pg_lsn', + amprocrighttype => 'pg_lsn', amprocnum => '1', amproc => 'pg_lsn_hash' }, +{ amprocfamily => 'hash/pg_lsn_ops', amproclefttype => 'pg_lsn', + amprocrighttype => 'pg_lsn', amprocnum => '2', + amproc => 'pg_lsn_hash_extended' }, +{ amprocfamily => 'hash/macaddr8_ops', amproclefttype => 'macaddr8', + amprocrighttype => 'macaddr8', amprocnum => '1', amproc => 'hashmacaddr8' }, +{ amprocfamily => 'hash/macaddr8_ops', amproclefttype => 'macaddr8', + amprocrighttype => 'macaddr8', amprocnum => '2', + amproc => 'hashmacaddr8extended' }, +{ amprocfamily => 'hash/enum_ops', amproclefttype => 'anyenum', + amprocrighttype => 'anyenum', amprocnum => '1', amproc => 'hashenum' }, +{ amprocfamily => 'hash/enum_ops', amproclefttype => 'anyenum', + amprocrighttype => 'anyenum', amprocnum => '2', + amproc => 'hashenumextended' }, +{ amprocfamily => 'hash/range_ops', amproclefttype => 'anyrange', + amprocrighttype => 'anyrange', amprocnum => '1', amproc => 'hash_range' }, +{ amprocfamily => 'hash/range_ops', amproclefttype => 'anyrange', + amprocrighttype => 'anyrange', amprocnum => '2', + amproc => 'hash_range_extended' }, +{ amprocfamily => 'hash/jsonb_ops', amproclefttype => 'jsonb', + amprocrighttype => 'jsonb', amprocnum => '1', amproc => 'jsonb_hash' }, +{ amprocfamily => 'hash/jsonb_ops', amproclefttype => 'jsonb', + amprocrighttype => 'jsonb', amprocnum => '2', + amproc => 'jsonb_hash_extended' }, + +# gist +{ amprocfamily => 'gist/point_ops', amproclefttype => 'point', + amprocrighttype => 'point', amprocnum => '1', + amproc => 'gist_point_consistent' }, +{ amprocfamily => 'gist/point_ops', amproclefttype => 'point', + amprocrighttype => 'point', amprocnum => '2', amproc => 'gist_box_union' }, +{ amprocfamily => 'gist/point_ops', amproclefttype => 'point', + amprocrighttype => 'point', amprocnum => '3', + amproc => 'gist_point_compress' }, +{ amprocfamily => 'gist/point_ops', amproclefttype => 'point', + amprocrighttype => 'point', amprocnum => '5', amproc => 'gist_box_penalty' }, +{ amprocfamily => 'gist/point_ops', amproclefttype => 'point', + amprocrighttype => 'point', amprocnum => '6', + amproc => 'gist_box_picksplit' }, +{ amprocfamily => 'gist/point_ops', amproclefttype => 'point', + amprocrighttype => 'point', amprocnum => '7', amproc => 'gist_box_same' }, +{ amprocfamily => 'gist/point_ops', amproclefttype => 'point', + amprocrighttype => 'point', amprocnum => '8', + amproc => 'gist_point_distance' }, +{ amprocfamily => 'gist/point_ops', amproclefttype => 'point', + amprocrighttype => 'point', amprocnum => '9', amproc => 'gist_point_fetch' }, +{ amprocfamily => 'gist/box_ops', amproclefttype => 'box', + amprocrighttype => 'box', amprocnum => '1', amproc => 'gist_box_consistent' }, +{ amprocfamily => 'gist/box_ops', amproclefttype => 'box', + amprocrighttype => 'box', amprocnum => '2', amproc => 'gist_box_union' }, +{ amprocfamily => 'gist/box_ops', amproclefttype => 'box', + amprocrighttype => 'box', amprocnum => '5', amproc => 'gist_box_penalty' }, +{ amprocfamily => 'gist/box_ops', amproclefttype => 'box', + amprocrighttype => 'box', amprocnum => '6', amproc => 'gist_box_picksplit' }, +{ amprocfamily => 'gist/box_ops', amproclefttype => 'box', + amprocrighttype => 'box', amprocnum => '7', amproc => 'gist_box_same' }, +{ amprocfamily => 'gist/poly_ops', amproclefttype => 'polygon', + amprocrighttype => 'polygon', amprocnum => '1', + amproc => 'gist_poly_consistent' }, +{ amprocfamily => 'gist/poly_ops', amproclefttype => 'polygon', + amprocrighttype => 'polygon', amprocnum => '2', amproc => 'gist_box_union' }, +{ amprocfamily => 'gist/poly_ops', amproclefttype => 'polygon', + amprocrighttype => 'polygon', amprocnum => '3', + amproc => 'gist_poly_compress' }, +{ amprocfamily => 'gist/poly_ops', amproclefttype => 'polygon', + amprocrighttype => 'polygon', amprocnum => '5', + amproc => 'gist_box_penalty' }, +{ amprocfamily => 'gist/poly_ops', amproclefttype => 'polygon', + amprocrighttype => 'polygon', amprocnum => '6', + amproc => 'gist_box_picksplit' }, +{ amprocfamily => 'gist/poly_ops', amproclefttype => 'polygon', + amprocrighttype => 'polygon', amprocnum => '7', amproc => 'gist_box_same' }, +{ amprocfamily => 'gist/poly_ops', amproclefttype => 'polygon', + amprocrighttype => 'polygon', amprocnum => '8', + amproc => 'gist_poly_distance' }, +{ amprocfamily => 'gist/circle_ops', amproclefttype => 'circle', + amprocrighttype => 'circle', amprocnum => '1', + amproc => 'gist_circle_consistent' }, +{ amprocfamily => 'gist/circle_ops', amproclefttype => 'circle', + amprocrighttype => 'circle', amprocnum => '2', amproc => 'gist_box_union' }, +{ amprocfamily => 'gist/circle_ops', amproclefttype => 'circle', + amprocrighttype => 'circle', amprocnum => '3', + amproc => 'gist_circle_compress' }, +{ amprocfamily => 'gist/circle_ops', amproclefttype => 'circle', + amprocrighttype => 'circle', amprocnum => '5', amproc => 'gist_box_penalty' }, +{ amprocfamily => 'gist/circle_ops', amproclefttype => 'circle', + amprocrighttype => 'circle', amprocnum => '6', + amproc => 'gist_box_picksplit' }, +{ amprocfamily => 'gist/circle_ops', amproclefttype => 'circle', + amprocrighttype => 'circle', amprocnum => '7', amproc => 'gist_box_same' }, +{ amprocfamily => 'gist/circle_ops', amproclefttype => 'circle', + amprocrighttype => 'circle', amprocnum => '8', + amproc => 'gist_circle_distance' }, +{ amprocfamily => 'gist/tsvector_ops', amproclefttype => 'tsvector', + amprocrighttype => 'tsvector', amprocnum => '1', + amproc => 'gtsvector_consistent(internal,tsvector,int2,oid,internal)' }, +{ amprocfamily => 'gist/tsvector_ops', amproclefttype => 'tsvector', + amprocrighttype => 'tsvector', amprocnum => '2', + amproc => 'gtsvector_union' }, +{ amprocfamily => 'gist/tsvector_ops', amproclefttype => 'tsvector', + amprocrighttype => 'tsvector', amprocnum => '3', + amproc => 'gtsvector_compress' }, +{ amprocfamily => 'gist/tsvector_ops', amproclefttype => 'tsvector', + amprocrighttype => 'tsvector', amprocnum => '4', + amproc => 'gtsvector_decompress' }, +{ amprocfamily => 'gist/tsvector_ops', amproclefttype => 'tsvector', + amprocrighttype => 'tsvector', amprocnum => '5', + amproc => 'gtsvector_penalty' }, +{ amprocfamily => 'gist/tsvector_ops', amproclefttype => 'tsvector', + amprocrighttype => 'tsvector', amprocnum => '6', + amproc => 'gtsvector_picksplit' }, +{ amprocfamily => 'gist/tsvector_ops', amproclefttype => 'tsvector', + amprocrighttype => 'tsvector', amprocnum => '7', amproc => 'gtsvector_same' }, +{ amprocfamily => 'gist/tsquery_ops', amproclefttype => 'tsquery', + amprocrighttype => 'tsquery', amprocnum => '1', + amproc => 'gtsquery_consistent(internal,tsquery,int2,oid,internal)' }, +{ amprocfamily => 'gist/tsquery_ops', amproclefttype => 'tsquery', + amprocrighttype => 'tsquery', amprocnum => '2', amproc => 'gtsquery_union' }, +{ amprocfamily => 'gist/tsquery_ops', amproclefttype => 'tsquery', + amprocrighttype => 'tsquery', amprocnum => '3', + amproc => 'gtsquery_compress' }, +{ amprocfamily => 'gist/tsquery_ops', amproclefttype => 'tsquery', + amprocrighttype => 'tsquery', amprocnum => '5', + amproc => 'gtsquery_penalty' }, +{ amprocfamily => 'gist/tsquery_ops', amproclefttype => 'tsquery', + amprocrighttype => 'tsquery', amprocnum => '6', + amproc => 'gtsquery_picksplit' }, +{ amprocfamily => 'gist/tsquery_ops', amproclefttype => 'tsquery', + amprocrighttype => 'tsquery', amprocnum => '7', amproc => 'gtsquery_same' }, +{ amprocfamily => 'gist/range_ops', amproclefttype => 'anyrange', + amprocrighttype => 'anyrange', amprocnum => '1', + amproc => 'range_gist_consistent' }, +{ amprocfamily => 'gist/range_ops', amproclefttype => 'anyrange', + amprocrighttype => 'anyrange', amprocnum => '2', + amproc => 'range_gist_union' }, +{ amprocfamily => 'gist/range_ops', amproclefttype => 'anyrange', + amprocrighttype => 'anyrange', amprocnum => '5', + amproc => 'range_gist_penalty' }, +{ amprocfamily => 'gist/range_ops', amproclefttype => 'anyrange', + amprocrighttype => 'anyrange', amprocnum => '6', + amproc => 'range_gist_picksplit' }, +{ amprocfamily => 'gist/range_ops', amproclefttype => 'anyrange', + amprocrighttype => 'anyrange', amprocnum => '7', + amproc => 'range_gist_same' }, +{ amprocfamily => 'gist/network_ops', amproclefttype => 'inet', + amprocrighttype => 'inet', amprocnum => '1', + amproc => 'inet_gist_consistent' }, +{ amprocfamily => 'gist/network_ops', amproclefttype => 'inet', + amprocrighttype => 'inet', amprocnum => '2', amproc => 'inet_gist_union' }, +{ amprocfamily => 'gist/network_ops', amproclefttype => 'inet', + amprocrighttype => 'inet', amprocnum => '3', amproc => 'inet_gist_compress' }, +{ amprocfamily => 'gist/network_ops', amproclefttype => 'inet', + amprocrighttype => 'inet', amprocnum => '5', amproc => 'inet_gist_penalty' }, +{ amprocfamily => 'gist/network_ops', amproclefttype => 'inet', + amprocrighttype => 'inet', amprocnum => '6', + amproc => 'inet_gist_picksplit' }, +{ amprocfamily => 'gist/network_ops', amproclefttype => 'inet', + amprocrighttype => 'inet', amprocnum => '7', amproc => 'inet_gist_same' }, +{ amprocfamily => 'gist/network_ops', amproclefttype => 'inet', + amprocrighttype => 'inet', amprocnum => '9', amproc => 'inet_gist_fetch' }, + +# gin +{ amprocfamily => 'gin/array_ops', amproclefttype => 'anyarray', + amprocrighttype => 'anyarray', amprocnum => '2', + amproc => 'ginarrayextract(anyarray,internal,internal)' }, +{ amprocfamily => 'gin/array_ops', amproclefttype => 'anyarray', + amprocrighttype => 'anyarray', amprocnum => '3', + amproc => 'ginqueryarrayextract' }, +{ amprocfamily => 'gin/array_ops', amproclefttype => 'anyarray', + amprocrighttype => 'anyarray', amprocnum => '4', + amproc => 'ginarrayconsistent' }, +{ amprocfamily => 'gin/array_ops', amproclefttype => 'anyarray', + amprocrighttype => 'anyarray', amprocnum => '6', + amproc => 'ginarraytriconsistent' }, +{ amprocfamily => 'gin/tsvector_ops', amproclefttype => 'tsvector', + amprocrighttype => 'tsvector', amprocnum => '1', + amproc => 'gin_cmp_tslexeme' }, +{ amprocfamily => 'gin/tsvector_ops', amproclefttype => 'tsvector', + amprocrighttype => 'tsvector', amprocnum => '2', + amproc => 'gin_extract_tsvector(tsvector,internal,internal)' }, +{ amprocfamily => 'gin/tsvector_ops', amproclefttype => 'tsvector', + amprocrighttype => 'tsvector', amprocnum => '3', + amproc => 'gin_extract_tsquery(tsvector,internal,int2,internal,internal,internal,internal)' }, +{ amprocfamily => 'gin/tsvector_ops', amproclefttype => 'tsvector', + amprocrighttype => 'tsvector', amprocnum => '4', + amproc => 'gin_tsquery_consistent(internal,int2,tsvector,int4,internal,internal,internal,internal)' }, +{ amprocfamily => 'gin/tsvector_ops', amproclefttype => 'tsvector', + amprocrighttype => 'tsvector', amprocnum => '5', amproc => 'gin_cmp_prefix' }, +{ amprocfamily => 'gin/tsvector_ops', amproclefttype => 'tsvector', + amprocrighttype => 'tsvector', amprocnum => '6', + amproc => 'gin_tsquery_triconsistent' }, +{ amprocfamily => 'gin/jsonb_ops', amproclefttype => 'jsonb', + amprocrighttype => 'jsonb', amprocnum => '1', amproc => 'gin_compare_jsonb' }, +{ amprocfamily => 'gin/jsonb_ops', amproclefttype => 'jsonb', + amprocrighttype => 'jsonb', amprocnum => '2', amproc => 'gin_extract_jsonb' }, +{ amprocfamily => 'gin/jsonb_ops', amproclefttype => 'jsonb', + amprocrighttype => 'jsonb', amprocnum => '3', + amproc => 'gin_extract_jsonb_query' }, +{ amprocfamily => 'gin/jsonb_ops', amproclefttype => 'jsonb', + amprocrighttype => 'jsonb', amprocnum => '4', + amproc => 'gin_consistent_jsonb' }, +{ amprocfamily => 'gin/jsonb_ops', amproclefttype => 'jsonb', + amprocrighttype => 'jsonb', amprocnum => '6', + amproc => 'gin_triconsistent_jsonb' }, +{ amprocfamily => 'gin/jsonb_path_ops', amproclefttype => 'jsonb', + amprocrighttype => 'jsonb', amprocnum => '1', amproc => 'btint4cmp' }, +{ amprocfamily => 'gin/jsonb_path_ops', amproclefttype => 'jsonb', + amprocrighttype => 'jsonb', amprocnum => '2', + amproc => 'gin_extract_jsonb_path' }, +{ amprocfamily => 'gin/jsonb_path_ops', amproclefttype => 'jsonb', + amprocrighttype => 'jsonb', amprocnum => '3', + amproc => 'gin_extract_jsonb_query_path' }, +{ amprocfamily => 'gin/jsonb_path_ops', amproclefttype => 'jsonb', + amprocrighttype => 'jsonb', amprocnum => '4', + amproc => 'gin_consistent_jsonb_path' }, +{ amprocfamily => 'gin/jsonb_path_ops', amproclefttype => 'jsonb', + amprocrighttype => 'jsonb', amprocnum => '6', + amproc => 'gin_triconsistent_jsonb_path' }, + +# sp-gist +{ amprocfamily => 'spgist/range_ops', amproclefttype => 'anyrange', + amprocrighttype => 'anyrange', amprocnum => '1', + amproc => 'spg_range_quad_config' }, +{ amprocfamily => 'spgist/range_ops', amproclefttype => 'anyrange', + amprocrighttype => 'anyrange', amprocnum => '2', + amproc => 'spg_range_quad_choose' }, +{ amprocfamily => 'spgist/range_ops', amproclefttype => 'anyrange', + amprocrighttype => 'anyrange', amprocnum => '3', + amproc => 'spg_range_quad_picksplit' }, +{ amprocfamily => 'spgist/range_ops', amproclefttype => 'anyrange', + amprocrighttype => 'anyrange', amprocnum => '4', + amproc => 'spg_range_quad_inner_consistent' }, +{ amprocfamily => 'spgist/range_ops', amproclefttype => 'anyrange', + amprocrighttype => 'anyrange', amprocnum => '5', + amproc => 'spg_range_quad_leaf_consistent' }, +{ amprocfamily => 'spgist/network_ops', amproclefttype => 'inet', + amprocrighttype => 'inet', amprocnum => '1', amproc => 'inet_spg_config' }, +{ amprocfamily => 'spgist/network_ops', amproclefttype => 'inet', + amprocrighttype => 'inet', amprocnum => '2', amproc => 'inet_spg_choose' }, +{ amprocfamily => 'spgist/network_ops', amproclefttype => 'inet', + amprocrighttype => 'inet', amprocnum => '3', amproc => 'inet_spg_picksplit' }, +{ amprocfamily => 'spgist/network_ops', amproclefttype => 'inet', + amprocrighttype => 'inet', amprocnum => '4', + amproc => 'inet_spg_inner_consistent' }, +{ amprocfamily => 'spgist/network_ops', amproclefttype => 'inet', + amprocrighttype => 'inet', amprocnum => '5', + amproc => 'inet_spg_leaf_consistent' }, +{ amprocfamily => 'spgist/quad_point_ops', amproclefttype => 'point', + amprocrighttype => 'point', amprocnum => '1', amproc => 'spg_quad_config' }, +{ amprocfamily => 'spgist/quad_point_ops', amproclefttype => 'point', + amprocrighttype => 'point', amprocnum => '2', amproc => 'spg_quad_choose' }, +{ amprocfamily => 'spgist/quad_point_ops', amproclefttype => 'point', + amprocrighttype => 'point', amprocnum => '3', + amproc => 'spg_quad_picksplit' }, +{ amprocfamily => 'spgist/quad_point_ops', amproclefttype => 'point', + amprocrighttype => 'point', amprocnum => '4', + amproc => 'spg_quad_inner_consistent' }, +{ amprocfamily => 'spgist/quad_point_ops', amproclefttype => 'point', + amprocrighttype => 'point', amprocnum => '5', + amproc => 'spg_quad_leaf_consistent' }, +{ amprocfamily => 'spgist/kd_point_ops', amproclefttype => 'point', + amprocrighttype => 'point', amprocnum => '1', amproc => 'spg_kd_config' }, +{ amprocfamily => 'spgist/kd_point_ops', amproclefttype => 'point', + amprocrighttype => 'point', amprocnum => '2', amproc => 'spg_kd_choose' }, +{ amprocfamily => 'spgist/kd_point_ops', amproclefttype => 'point', + amprocrighttype => 'point', amprocnum => '3', amproc => 'spg_kd_picksplit' }, +{ amprocfamily => 'spgist/kd_point_ops', amproclefttype => 'point', + amprocrighttype => 'point', amprocnum => '4', + amproc => 'spg_kd_inner_consistent' }, +{ amprocfamily => 'spgist/kd_point_ops', amproclefttype => 'point', + amprocrighttype => 'point', amprocnum => '5', + amproc => 'spg_quad_leaf_consistent' }, +{ amprocfamily => 'spgist/text_ops', amproclefttype => 'text', + amprocrighttype => 'text', amprocnum => '1', amproc => 'spg_text_config' }, +{ amprocfamily => 'spgist/text_ops', amproclefttype => 'text', + amprocrighttype => 'text', amprocnum => '2', amproc => 'spg_text_choose' }, +{ amprocfamily => 'spgist/text_ops', amproclefttype => 'text', + amprocrighttype => 'text', amprocnum => '3', amproc => 'spg_text_picksplit' }, +{ amprocfamily => 'spgist/text_ops', amproclefttype => 'text', + amprocrighttype => 'text', amprocnum => '4', + amproc => 'spg_text_inner_consistent' }, +{ amprocfamily => 'spgist/text_ops', amproclefttype => 'text', + amprocrighttype => 'text', amprocnum => '5', + amproc => 'spg_text_leaf_consistent' }, +{ amprocfamily => 'spgist/box_ops', amproclefttype => 'box', + amprocrighttype => 'box', amprocnum => '1', amproc => 'spg_box_quad_config' }, +{ amprocfamily => 'spgist/box_ops', amproclefttype => 'box', + amprocrighttype => 'box', amprocnum => '2', amproc => 'spg_box_quad_choose' }, +{ amprocfamily => 'spgist/box_ops', amproclefttype => 'box', + amprocrighttype => 'box', amprocnum => '3', + amproc => 'spg_box_quad_picksplit' }, +{ amprocfamily => 'spgist/box_ops', amproclefttype => 'box', + amprocrighttype => 'box', amprocnum => '4', + amproc => 'spg_box_quad_inner_consistent' }, +{ amprocfamily => 'spgist/box_ops', amproclefttype => 'box', + amprocrighttype => 'box', amprocnum => '5', + amproc => 'spg_box_quad_leaf_consistent' }, +{ amprocfamily => 'spgist/poly_ops', amproclefttype => 'polygon', + amprocrighttype => 'polygon', amprocnum => '1', + amproc => 'spg_bbox_quad_config' }, +{ amprocfamily => 'spgist/poly_ops', amproclefttype => 'polygon', + amprocrighttype => 'polygon', amprocnum => '2', + amproc => 'spg_box_quad_choose' }, +{ amprocfamily => 'spgist/poly_ops', amproclefttype => 'polygon', + amprocrighttype => 'polygon', amprocnum => '3', + amproc => 'spg_box_quad_picksplit' }, +{ amprocfamily => 'spgist/poly_ops', amproclefttype => 'polygon', + amprocrighttype => 'polygon', amprocnum => '4', + amproc => 'spg_box_quad_inner_consistent' }, +{ amprocfamily => 'spgist/poly_ops', amproclefttype => 'polygon', + amprocrighttype => 'polygon', amprocnum => '5', + amproc => 'spg_box_quad_leaf_consistent' }, +{ amprocfamily => 'spgist/poly_ops', amproclefttype => 'polygon', + amprocrighttype => 'polygon', amprocnum => '6', + amproc => 'spg_poly_quad_compress' }, + +# BRIN opclasses + +# minmax bytea +{ amprocfamily => 'brin/bytea_minmax_ops', amproclefttype => 'bytea', + amprocrighttype => 'bytea', amprocnum => '1', + amproc => 'brin_minmax_opcinfo' }, +{ amprocfamily => 'brin/bytea_minmax_ops', amproclefttype => 'bytea', + amprocrighttype => 'bytea', amprocnum => '2', + amproc => 'brin_minmax_add_value' }, +{ amprocfamily => 'brin/bytea_minmax_ops', amproclefttype => 'bytea', + amprocrighttype => 'bytea', amprocnum => '3', + amproc => 'brin_minmax_consistent' }, +{ amprocfamily => 'brin/bytea_minmax_ops', amproclefttype => 'bytea', + amprocrighttype => 'bytea', amprocnum => '4', amproc => 'brin_minmax_union' }, + +# minmax "char" +{ amprocfamily => 'brin/char_minmax_ops', amproclefttype => 'char', + amprocrighttype => 'char', amprocnum => '1', + amproc => 'brin_minmax_opcinfo' }, +{ amprocfamily => 'brin/char_minmax_ops', amproclefttype => 'char', + amprocrighttype => 'char', amprocnum => '2', + amproc => 'brin_minmax_add_value' }, +{ amprocfamily => 'brin/char_minmax_ops', amproclefttype => 'char', + amprocrighttype => 'char', amprocnum => '3', + amproc => 'brin_minmax_consistent' }, +{ amprocfamily => 'brin/char_minmax_ops', amproclefttype => 'char', + amprocrighttype => 'char', amprocnum => '4', amproc => 'brin_minmax_union' }, + +# minmax name +{ amprocfamily => 'brin/name_minmax_ops', amproclefttype => 'name', + amprocrighttype => 'name', amprocnum => '1', + amproc => 'brin_minmax_opcinfo' }, +{ amprocfamily => 'brin/name_minmax_ops', amproclefttype => 'name', + amprocrighttype => 'name', amprocnum => '2', + amproc => 'brin_minmax_add_value' }, +{ amprocfamily => 'brin/name_minmax_ops', amproclefttype => 'name', + amprocrighttype => 'name', amprocnum => '3', + amproc => 'brin_minmax_consistent' }, +{ amprocfamily => 'brin/name_minmax_ops', amproclefttype => 'name', + amprocrighttype => 'name', amprocnum => '4', amproc => 'brin_minmax_union' }, + +# minmax integer: int2, int4, int8 +{ amprocfamily => 'brin/integer_minmax_ops', amproclefttype => 'int8', + amprocrighttype => 'int8', amprocnum => '1', + amproc => 'brin_minmax_opcinfo' }, +{ amprocfamily => 'brin/integer_minmax_ops', amproclefttype => 'int8', + amprocrighttype => 'int8', amprocnum => '2', + amproc => 'brin_minmax_add_value' }, +{ amprocfamily => 'brin/integer_minmax_ops', amproclefttype => 'int8', + amprocrighttype => 'int8', amprocnum => '3', + amproc => 'brin_minmax_consistent' }, +{ amprocfamily => 'brin/integer_minmax_ops', amproclefttype => 'int8', + amprocrighttype => 'int8', amprocnum => '4', amproc => 'brin_minmax_union' }, +{ amprocfamily => 'brin/integer_minmax_ops', amproclefttype => 'int8', + amprocrighttype => 'int2', amprocnum => '1', + amproc => 'brin_minmax_opcinfo' }, +{ amprocfamily => 'brin/integer_minmax_ops', amproclefttype => 'int8', + amprocrighttype => 'int2', amprocnum => '2', + amproc => 'brin_minmax_add_value' }, +{ amprocfamily => 'brin/integer_minmax_ops', amproclefttype => 'int8', + amprocrighttype => 'int2', amprocnum => '3', + amproc => 'brin_minmax_consistent' }, +{ amprocfamily => 'brin/integer_minmax_ops', amproclefttype => 'int8', + amprocrighttype => 'int2', amprocnum => '4', amproc => 'brin_minmax_union' }, +{ amprocfamily => 'brin/integer_minmax_ops', amproclefttype => 'int8', + amprocrighttype => 'int4', amprocnum => '1', + amproc => 'brin_minmax_opcinfo' }, +{ amprocfamily => 'brin/integer_minmax_ops', amproclefttype => 'int8', + amprocrighttype => 'int4', amprocnum => '2', + amproc => 'brin_minmax_add_value' }, +{ amprocfamily => 'brin/integer_minmax_ops', amproclefttype => 'int8', + amprocrighttype => 'int4', amprocnum => '3', + amproc => 'brin_minmax_consistent' }, +{ amprocfamily => 'brin/integer_minmax_ops', amproclefttype => 'int8', + amprocrighttype => 'int4', amprocnum => '4', amproc => 'brin_minmax_union' }, +{ amprocfamily => 'brin/integer_minmax_ops', amproclefttype => 'int2', + amprocrighttype => 'int2', amprocnum => '1', + amproc => 'brin_minmax_opcinfo' }, +{ amprocfamily => 'brin/integer_minmax_ops', amproclefttype => 'int2', + amprocrighttype => 'int2', amprocnum => '2', + amproc => 'brin_minmax_add_value' }, +{ amprocfamily => 'brin/integer_minmax_ops', amproclefttype => 'int2', + amprocrighttype => 'int2', amprocnum => '3', + amproc => 'brin_minmax_consistent' }, +{ amprocfamily => 'brin/integer_minmax_ops', amproclefttype => 'int2', + amprocrighttype => 'int2', amprocnum => '4', amproc => 'brin_minmax_union' }, +{ amprocfamily => 'brin/integer_minmax_ops', amproclefttype => 'int2', + amprocrighttype => 'int8', amprocnum => '1', + amproc => 'brin_minmax_opcinfo' }, +{ amprocfamily => 'brin/integer_minmax_ops', amproclefttype => 'int2', + amprocrighttype => 'int8', amprocnum => '2', + amproc => 'brin_minmax_add_value' }, +{ amprocfamily => 'brin/integer_minmax_ops', amproclefttype => 'int2', + amprocrighttype => 'int8', amprocnum => '3', + amproc => 'brin_minmax_consistent' }, +{ amprocfamily => 'brin/integer_minmax_ops', amproclefttype => 'int2', + amprocrighttype => 'int8', amprocnum => '4', amproc => 'brin_minmax_union' }, +{ amprocfamily => 'brin/integer_minmax_ops', amproclefttype => 'int2', + amprocrighttype => 'int4', amprocnum => '1', + amproc => 'brin_minmax_opcinfo' }, +{ amprocfamily => 'brin/integer_minmax_ops', amproclefttype => 'int2', + amprocrighttype => 'int4', amprocnum => '2', + amproc => 'brin_minmax_add_value' }, +{ amprocfamily => 'brin/integer_minmax_ops', amproclefttype => 'int2', + amprocrighttype => 'int4', amprocnum => '3', + amproc => 'brin_minmax_consistent' }, +{ amprocfamily => 'brin/integer_minmax_ops', amproclefttype => 'int2', + amprocrighttype => 'int4', amprocnum => '4', amproc => 'brin_minmax_union' }, +{ amprocfamily => 'brin/integer_minmax_ops', amproclefttype => 'int4', + amprocrighttype => 'int4', amprocnum => '1', + amproc => 'brin_minmax_opcinfo' }, +{ amprocfamily => 'brin/integer_minmax_ops', amproclefttype => 'int4', + amprocrighttype => 'int4', amprocnum => '2', + amproc => 'brin_minmax_add_value' }, +{ amprocfamily => 'brin/integer_minmax_ops', amproclefttype => 'int4', + amprocrighttype => 'int4', amprocnum => '3', + amproc => 'brin_minmax_consistent' }, +{ amprocfamily => 'brin/integer_minmax_ops', amproclefttype => 'int4', + amprocrighttype => 'int4', amprocnum => '4', amproc => 'brin_minmax_union' }, +{ amprocfamily => 'brin/integer_minmax_ops', amproclefttype => 'int4', + amprocrighttype => 'int8', amprocnum => '1', + amproc => 'brin_minmax_opcinfo' }, +{ amprocfamily => 'brin/integer_minmax_ops', amproclefttype => 'int4', + amprocrighttype => 'int8', amprocnum => '2', + amproc => 'brin_minmax_add_value' }, +{ amprocfamily => 'brin/integer_minmax_ops', amproclefttype => 'int4', + amprocrighttype => 'int8', amprocnum => '3', + amproc => 'brin_minmax_consistent' }, +{ amprocfamily => 'brin/integer_minmax_ops', amproclefttype => 'int4', + amprocrighttype => 'int8', amprocnum => '4', amproc => 'brin_minmax_union' }, +{ amprocfamily => 'brin/integer_minmax_ops', amproclefttype => 'int4', + amprocrighttype => 'int2', amprocnum => '1', + amproc => 'brin_minmax_opcinfo' }, +{ amprocfamily => 'brin/integer_minmax_ops', amproclefttype => 'int4', + amprocrighttype => 'int2', amprocnum => '2', + amproc => 'brin_minmax_add_value' }, +{ amprocfamily => 'brin/integer_minmax_ops', amproclefttype => 'int4', + amprocrighttype => 'int2', amprocnum => '3', + amproc => 'brin_minmax_consistent' }, +{ amprocfamily => 'brin/integer_minmax_ops', amproclefttype => 'int4', + amprocrighttype => 'int2', amprocnum => '4', amproc => 'brin_minmax_union' }, + +# minmax text +{ amprocfamily => 'brin/text_minmax_ops', amproclefttype => 'text', + amprocrighttype => 'text', amprocnum => '1', + amproc => 'brin_minmax_opcinfo' }, +{ amprocfamily => 'brin/text_minmax_ops', amproclefttype => 'text', + amprocrighttype => 'text', amprocnum => '2', + amproc => 'brin_minmax_add_value' }, +{ amprocfamily => 'brin/text_minmax_ops', amproclefttype => 'text', + amprocrighttype => 'text', amprocnum => '3', + amproc => 'brin_minmax_consistent' }, +{ amprocfamily => 'brin/text_minmax_ops', amproclefttype => 'text', + amprocrighttype => 'text', amprocnum => '4', amproc => 'brin_minmax_union' }, + +# minmax oid +{ amprocfamily => 'brin/oid_minmax_ops', amproclefttype => 'oid', + amprocrighttype => 'oid', amprocnum => '1', amproc => 'brin_minmax_opcinfo' }, +{ amprocfamily => 'brin/oid_minmax_ops', amproclefttype => 'oid', + amprocrighttype => 'oid', amprocnum => '2', + amproc => 'brin_minmax_add_value' }, +{ amprocfamily => 'brin/oid_minmax_ops', amproclefttype => 'oid', + amprocrighttype => 'oid', amprocnum => '3', + amproc => 'brin_minmax_consistent' }, +{ amprocfamily => 'brin/oid_minmax_ops', amproclefttype => 'oid', + amprocrighttype => 'oid', amprocnum => '4', amproc => 'brin_minmax_union' }, + +# minmax tid +{ amprocfamily => 'brin/tid_minmax_ops', amproclefttype => 'tid', + amprocrighttype => 'tid', amprocnum => '1', amproc => 'brin_minmax_opcinfo' }, +{ amprocfamily => 'brin/tid_minmax_ops', amproclefttype => 'tid', + amprocrighttype => 'tid', amprocnum => '2', + amproc => 'brin_minmax_add_value' }, +{ amprocfamily => 'brin/tid_minmax_ops', amproclefttype => 'tid', + amprocrighttype => 'tid', amprocnum => '3', + amproc => 'brin_minmax_consistent' }, +{ amprocfamily => 'brin/tid_minmax_ops', amproclefttype => 'tid', + amprocrighttype => 'tid', amprocnum => '4', amproc => 'brin_minmax_union' }, + +# minmax float +{ amprocfamily => 'brin/float_minmax_ops', amproclefttype => 'float4', + amprocrighttype => 'float4', amprocnum => '1', + amproc => 'brin_minmax_opcinfo' }, +{ amprocfamily => 'brin/float_minmax_ops', amproclefttype => 'float4', + amprocrighttype => 'float4', amprocnum => '2', + amproc => 'brin_minmax_add_value' }, +{ amprocfamily => 'brin/float_minmax_ops', amproclefttype => 'float4', + amprocrighttype => 'float4', amprocnum => '3', + amproc => 'brin_minmax_consistent' }, +{ amprocfamily => 'brin/float_minmax_ops', amproclefttype => 'float4', + amprocrighttype => 'float4', amprocnum => '4', + amproc => 'brin_minmax_union' }, +{ amprocfamily => 'brin/float_minmax_ops', amproclefttype => 'float4', + amprocrighttype => 'float8', amprocnum => '1', + amproc => 'brin_minmax_opcinfo' }, +{ amprocfamily => 'brin/float_minmax_ops', amproclefttype => 'float4', + amprocrighttype => 'float8', amprocnum => '2', + amproc => 'brin_minmax_add_value' }, +{ amprocfamily => 'brin/float_minmax_ops', amproclefttype => 'float4', + amprocrighttype => 'float8', amprocnum => '3', + amproc => 'brin_minmax_consistent' }, +{ amprocfamily => 'brin/float_minmax_ops', amproclefttype => 'float4', + amprocrighttype => 'float8', amprocnum => '4', + amproc => 'brin_minmax_union' }, +{ amprocfamily => 'brin/float_minmax_ops', amproclefttype => 'float8', + amprocrighttype => 'float8', amprocnum => '1', + amproc => 'brin_minmax_opcinfo' }, +{ amprocfamily => 'brin/float_minmax_ops', amproclefttype => 'float8', + amprocrighttype => 'float8', amprocnum => '2', + amproc => 'brin_minmax_add_value' }, +{ amprocfamily => 'brin/float_minmax_ops', amproclefttype => 'float8', + amprocrighttype => 'float8', amprocnum => '3', + amproc => 'brin_minmax_consistent' }, +{ amprocfamily => 'brin/float_minmax_ops', amproclefttype => 'float8', + amprocrighttype => 'float8', amprocnum => '4', + amproc => 'brin_minmax_union' }, +{ amprocfamily => 'brin/float_minmax_ops', amproclefttype => 'float8', + amprocrighttype => 'float4', amprocnum => '1', + amproc => 'brin_minmax_opcinfo' }, +{ amprocfamily => 'brin/float_minmax_ops', amproclefttype => 'float8', + amprocrighttype => 'float4', amprocnum => '2', + amproc => 'brin_minmax_add_value' }, +{ amprocfamily => 'brin/float_minmax_ops', amproclefttype => 'float8', + amprocrighttype => 'float4', amprocnum => '3', + amproc => 'brin_minmax_consistent' }, +{ amprocfamily => 'brin/float_minmax_ops', amproclefttype => 'float8', + amprocrighttype => 'float4', amprocnum => '4', + amproc => 'brin_minmax_union' }, + +# minmax abstime +{ amprocfamily => 'brin/abstime_minmax_ops', amproclefttype => 'abstime', + amprocrighttype => 'abstime', amprocnum => '1', + amproc => 'brin_minmax_opcinfo' }, +{ amprocfamily => 'brin/abstime_minmax_ops', amproclefttype => 'abstime', + amprocrighttype => 'abstime', amprocnum => '2', + amproc => 'brin_minmax_add_value' }, +{ amprocfamily => 'brin/abstime_minmax_ops', amproclefttype => 'abstime', + amprocrighttype => 'abstime', amprocnum => '3', + amproc => 'brin_minmax_consistent' }, +{ amprocfamily => 'brin/abstime_minmax_ops', amproclefttype => 'abstime', + amprocrighttype => 'abstime', amprocnum => '4', + amproc => 'brin_minmax_union' }, + +# minmax reltime +{ amprocfamily => 'brin/reltime_minmax_ops', amproclefttype => 'reltime', + amprocrighttype => 'reltime', amprocnum => '1', + amproc => 'brin_minmax_opcinfo' }, +{ amprocfamily => 'brin/reltime_minmax_ops', amproclefttype => 'reltime', + amprocrighttype => 'reltime', amprocnum => '2', + amproc => 'brin_minmax_add_value' }, +{ amprocfamily => 'brin/reltime_minmax_ops', amproclefttype => 'reltime', + amprocrighttype => 'reltime', amprocnum => '3', + amproc => 'brin_minmax_consistent' }, +{ amprocfamily => 'brin/reltime_minmax_ops', amproclefttype => 'reltime', + amprocrighttype => 'reltime', amprocnum => '4', + amproc => 'brin_minmax_union' }, + +# minmax macaddr +{ amprocfamily => 'brin/macaddr_minmax_ops', amproclefttype => 'macaddr', + amprocrighttype => 'macaddr', amprocnum => '1', + amproc => 'brin_minmax_opcinfo' }, +{ amprocfamily => 'brin/macaddr_minmax_ops', amproclefttype => 'macaddr', + amprocrighttype => 'macaddr', amprocnum => '2', + amproc => 'brin_minmax_add_value' }, +{ amprocfamily => 'brin/macaddr_minmax_ops', amproclefttype => 'macaddr', + amprocrighttype => 'macaddr', amprocnum => '3', + amproc => 'brin_minmax_consistent' }, +{ amprocfamily => 'brin/macaddr_minmax_ops', amproclefttype => 'macaddr', + amprocrighttype => 'macaddr', amprocnum => '4', + amproc => 'brin_minmax_union' }, + +# minmax macaddr8 +{ amprocfamily => 'brin/macaddr8_minmax_ops', amproclefttype => 'macaddr8', + amprocrighttype => 'macaddr8', amprocnum => '1', + amproc => 'brin_minmax_opcinfo' }, +{ amprocfamily => 'brin/macaddr8_minmax_ops', amproclefttype => 'macaddr8', + amprocrighttype => 'macaddr8', amprocnum => '2', + amproc => 'brin_minmax_add_value' }, +{ amprocfamily => 'brin/macaddr8_minmax_ops', amproclefttype => 'macaddr8', + amprocrighttype => 'macaddr8', amprocnum => '3', + amproc => 'brin_minmax_consistent' }, +{ amprocfamily => 'brin/macaddr8_minmax_ops', amproclefttype => 'macaddr8', + amprocrighttype => 'macaddr8', amprocnum => '4', + amproc => 'brin_minmax_union' }, + +# minmax inet +{ amprocfamily => 'brin/network_minmax_ops', amproclefttype => 'inet', + amprocrighttype => 'inet', amprocnum => '1', + amproc => 'brin_minmax_opcinfo' }, +{ amprocfamily => 'brin/network_minmax_ops', amproclefttype => 'inet', + amprocrighttype => 'inet', amprocnum => '2', + amproc => 'brin_minmax_add_value' }, +{ amprocfamily => 'brin/network_minmax_ops', amproclefttype => 'inet', + amprocrighttype => 'inet', amprocnum => '3', + amproc => 'brin_minmax_consistent' }, +{ amprocfamily => 'brin/network_minmax_ops', amproclefttype => 'inet', + amprocrighttype => 'inet', amprocnum => '4', amproc => 'brin_minmax_union' }, + +# inclusion inet +{ amprocfamily => 'brin/network_inclusion_ops', amproclefttype => 'inet', + amprocrighttype => 'inet', amprocnum => '1', + amproc => 'brin_inclusion_opcinfo' }, +{ amprocfamily => 'brin/network_inclusion_ops', amproclefttype => 'inet', + amprocrighttype => 'inet', amprocnum => '2', + amproc => 'brin_inclusion_add_value' }, +{ amprocfamily => 'brin/network_inclusion_ops', amproclefttype => 'inet', + amprocrighttype => 'inet', amprocnum => '3', + amproc => 'brin_inclusion_consistent' }, +{ amprocfamily => 'brin/network_inclusion_ops', amproclefttype => 'inet', + amprocrighttype => 'inet', amprocnum => '4', + amproc => 'brin_inclusion_union' }, +{ amprocfamily => 'brin/network_inclusion_ops', amproclefttype => 'inet', + amprocrighttype => 'inet', amprocnum => '11', amproc => 'inet_merge' }, +{ amprocfamily => 'brin/network_inclusion_ops', amproclefttype => 'inet', + amprocrighttype => 'inet', amprocnum => '12', amproc => 'inet_same_family' }, +{ amprocfamily => 'brin/network_inclusion_ops', amproclefttype => 'inet', + amprocrighttype => 'inet', amprocnum => '13', amproc => 'network_supeq' }, + +# minmax character +{ amprocfamily => 'brin/bpchar_minmax_ops', amproclefttype => 'bpchar', + amprocrighttype => 'bpchar', amprocnum => '1', + amproc => 'brin_minmax_opcinfo' }, +{ amprocfamily => 'brin/bpchar_minmax_ops', amproclefttype => 'bpchar', + amprocrighttype => 'bpchar', amprocnum => '2', + amproc => 'brin_minmax_add_value' }, +{ amprocfamily => 'brin/bpchar_minmax_ops', amproclefttype => 'bpchar', + amprocrighttype => 'bpchar', amprocnum => '3', + amproc => 'brin_minmax_consistent' }, +{ amprocfamily => 'brin/bpchar_minmax_ops', amproclefttype => 'bpchar', + amprocrighttype => 'bpchar', amprocnum => '4', + amproc => 'brin_minmax_union' }, + +# minmax time without time zone +{ amprocfamily => 'brin/time_minmax_ops', amproclefttype => 'time', + amprocrighttype => 'time', amprocnum => '1', + amproc => 'brin_minmax_opcinfo' }, +{ amprocfamily => 'brin/time_minmax_ops', amproclefttype => 'time', + amprocrighttype => 'time', amprocnum => '2', + amproc => 'brin_minmax_add_value' }, +{ amprocfamily => 'brin/time_minmax_ops', amproclefttype => 'time', + amprocrighttype => 'time', amprocnum => '3', + amproc => 'brin_minmax_consistent' }, +{ amprocfamily => 'brin/time_minmax_ops', amproclefttype => 'time', + amprocrighttype => 'time', amprocnum => '4', amproc => 'brin_minmax_union' }, + +# minmax datetime (date, timestamp, timestamptz) +{ amprocfamily => 'brin/datetime_minmax_ops', amproclefttype => 'timestamp', + amprocrighttype => 'timestamp', amprocnum => '1', + amproc => 'brin_minmax_opcinfo' }, +{ amprocfamily => 'brin/datetime_minmax_ops', amproclefttype => 'timestamp', + amprocrighttype => 'timestamp', amprocnum => '2', + amproc => 'brin_minmax_add_value' }, +{ amprocfamily => 'brin/datetime_minmax_ops', amproclefttype => 'timestamp', + amprocrighttype => 'timestamp', amprocnum => '3', + amproc => 'brin_minmax_consistent' }, +{ amprocfamily => 'brin/datetime_minmax_ops', amproclefttype => 'timestamp', + amprocrighttype => 'timestamp', amprocnum => '4', + amproc => 'brin_minmax_union' }, +{ amprocfamily => 'brin/datetime_minmax_ops', amproclefttype => 'timestamp', + amprocrighttype => 'timestamptz', amprocnum => '1', + amproc => 'brin_minmax_opcinfo' }, +{ amprocfamily => 'brin/datetime_minmax_ops', amproclefttype => 'timestamp', + amprocrighttype => 'timestamptz', amprocnum => '2', + amproc => 'brin_minmax_add_value' }, +{ amprocfamily => 'brin/datetime_minmax_ops', amproclefttype => 'timestamp', + amprocrighttype => 'timestamptz', amprocnum => '3', + amproc => 'brin_minmax_consistent' }, +{ amprocfamily => 'brin/datetime_minmax_ops', amproclefttype => 'timestamp', + amprocrighttype => 'timestamptz', amprocnum => '4', + amproc => 'brin_minmax_union' }, +{ amprocfamily => 'brin/datetime_minmax_ops', amproclefttype => 'timestamp', + amprocrighttype => 'date', amprocnum => '1', + amproc => 'brin_minmax_opcinfo' }, +{ amprocfamily => 'brin/datetime_minmax_ops', amproclefttype => 'timestamp', + amprocrighttype => 'date', amprocnum => '2', + amproc => 'brin_minmax_add_value' }, +{ amprocfamily => 'brin/datetime_minmax_ops', amproclefttype => 'timestamp', + amprocrighttype => 'date', amprocnum => '3', + amproc => 'brin_minmax_consistent' }, +{ amprocfamily => 'brin/datetime_minmax_ops', amproclefttype => 'timestamp', + amprocrighttype => 'date', amprocnum => '4', amproc => 'brin_minmax_union' }, +{ amprocfamily => 'brin/datetime_minmax_ops', amproclefttype => 'timestamptz', + amprocrighttype => 'timestamptz', amprocnum => '1', + amproc => 'brin_minmax_opcinfo' }, +{ amprocfamily => 'brin/datetime_minmax_ops', amproclefttype => 'timestamptz', + amprocrighttype => 'timestamptz', amprocnum => '2', + amproc => 'brin_minmax_add_value' }, +{ amprocfamily => 'brin/datetime_minmax_ops', amproclefttype => 'timestamptz', + amprocrighttype => 'timestamptz', amprocnum => '3', + amproc => 'brin_minmax_consistent' }, +{ amprocfamily => 'brin/datetime_minmax_ops', amproclefttype => 'timestamptz', + amprocrighttype => 'timestamptz', amprocnum => '4', + amproc => 'brin_minmax_union' }, +{ amprocfamily => 'brin/datetime_minmax_ops', amproclefttype => 'timestamptz', + amprocrighttype => 'timestamp', amprocnum => '1', + amproc => 'brin_minmax_opcinfo' }, +{ amprocfamily => 'brin/datetime_minmax_ops', amproclefttype => 'timestamptz', + amprocrighttype => 'timestamp', amprocnum => '2', + amproc => 'brin_minmax_add_value' }, +{ amprocfamily => 'brin/datetime_minmax_ops', amproclefttype => 'timestamptz', + amprocrighttype => 'timestamp', amprocnum => '3', + amproc => 'brin_minmax_consistent' }, +{ amprocfamily => 'brin/datetime_minmax_ops', amproclefttype => 'timestamptz', + amprocrighttype => 'timestamp', amprocnum => '4', + amproc => 'brin_minmax_union' }, +{ amprocfamily => 'brin/datetime_minmax_ops', amproclefttype => 'timestamptz', + amprocrighttype => 'date', amprocnum => '1', + amproc => 'brin_minmax_opcinfo' }, +{ amprocfamily => 'brin/datetime_minmax_ops', amproclefttype => 'timestamptz', + amprocrighttype => 'date', amprocnum => '2', + amproc => 'brin_minmax_add_value' }, +{ amprocfamily => 'brin/datetime_minmax_ops', amproclefttype => 'timestamptz', + amprocrighttype => 'date', amprocnum => '3', + amproc => 'brin_minmax_consistent' }, +{ amprocfamily => 'brin/datetime_minmax_ops', amproclefttype => 'timestamptz', + amprocrighttype => 'date', amprocnum => '4', amproc => 'brin_minmax_union' }, +{ amprocfamily => 'brin/datetime_minmax_ops', amproclefttype => 'date', + amprocrighttype => 'date', amprocnum => '1', + amproc => 'brin_minmax_opcinfo' }, +{ amprocfamily => 'brin/datetime_minmax_ops', amproclefttype => 'date', + amprocrighttype => 'date', amprocnum => '2', + amproc => 'brin_minmax_add_value' }, +{ amprocfamily => 'brin/datetime_minmax_ops', amproclefttype => 'date', + amprocrighttype => 'date', amprocnum => '3', + amproc => 'brin_minmax_consistent' }, +{ amprocfamily => 'brin/datetime_minmax_ops', amproclefttype => 'date', + amprocrighttype => 'date', amprocnum => '4', amproc => 'brin_minmax_union' }, +{ amprocfamily => 'brin/datetime_minmax_ops', amproclefttype => 'date', + amprocrighttype => 'timestamp', amprocnum => '1', + amproc => 'brin_minmax_opcinfo' }, +{ amprocfamily => 'brin/datetime_minmax_ops', amproclefttype => 'date', + amprocrighttype => 'timestamp', amprocnum => '2', + amproc => 'brin_minmax_add_value' }, +{ amprocfamily => 'brin/datetime_minmax_ops', amproclefttype => 'date', + amprocrighttype => 'timestamp', amprocnum => '3', + amproc => 'brin_minmax_consistent' }, +{ amprocfamily => 'brin/datetime_minmax_ops', amproclefttype => 'date', + amprocrighttype => 'timestamp', amprocnum => '4', + amproc => 'brin_minmax_union' }, +{ amprocfamily => 'brin/datetime_minmax_ops', amproclefttype => 'date', + amprocrighttype => 'timestamptz', amprocnum => '1', + amproc => 'brin_minmax_opcinfo' }, +{ amprocfamily => 'brin/datetime_minmax_ops', amproclefttype => 'date', + amprocrighttype => 'timestamptz', amprocnum => '2', + amproc => 'brin_minmax_add_value' }, +{ amprocfamily => 'brin/datetime_minmax_ops', amproclefttype => 'date', + amprocrighttype => 'timestamptz', amprocnum => '3', + amproc => 'brin_minmax_consistent' }, +{ amprocfamily => 'brin/datetime_minmax_ops', amproclefttype => 'date', + amprocrighttype => 'timestamptz', amprocnum => '4', + amproc => 'brin_minmax_union' }, + +# minmax interval +{ amprocfamily => 'brin/interval_minmax_ops', amproclefttype => 'interval', + amprocrighttype => 'interval', amprocnum => '1', + amproc => 'brin_minmax_opcinfo' }, +{ amprocfamily => 'brin/interval_minmax_ops', amproclefttype => 'interval', + amprocrighttype => 'interval', amprocnum => '2', + amproc => 'brin_minmax_add_value' }, +{ amprocfamily => 'brin/interval_minmax_ops', amproclefttype => 'interval', + amprocrighttype => 'interval', amprocnum => '3', + amproc => 'brin_minmax_consistent' }, +{ amprocfamily => 'brin/interval_minmax_ops', amproclefttype => 'interval', + amprocrighttype => 'interval', amprocnum => '4', + amproc => 'brin_minmax_union' }, + +# minmax time with time zone +{ amprocfamily => 'brin/timetz_minmax_ops', amproclefttype => 'timetz', + amprocrighttype => 'timetz', amprocnum => '1', + amproc => 'brin_minmax_opcinfo' }, +{ amprocfamily => 'brin/timetz_minmax_ops', amproclefttype => 'timetz', + amprocrighttype => 'timetz', amprocnum => '2', + amproc => 'brin_minmax_add_value' }, +{ amprocfamily => 'brin/timetz_minmax_ops', amproclefttype => 'timetz', + amprocrighttype => 'timetz', amprocnum => '3', + amproc => 'brin_minmax_consistent' }, +{ amprocfamily => 'brin/timetz_minmax_ops', amproclefttype => 'timetz', + amprocrighttype => 'timetz', amprocnum => '4', + amproc => 'brin_minmax_union' }, + +# minmax bit +{ amprocfamily => 'brin/bit_minmax_ops', amproclefttype => 'bit', + amprocrighttype => 'bit', amprocnum => '1', amproc => 'brin_minmax_opcinfo' }, +{ amprocfamily => 'brin/bit_minmax_ops', amproclefttype => 'bit', + amprocrighttype => 'bit', amprocnum => '2', + amproc => 'brin_minmax_add_value' }, +{ amprocfamily => 'brin/bit_minmax_ops', amproclefttype => 'bit', + amprocrighttype => 'bit', amprocnum => '3', + amproc => 'brin_minmax_consistent' }, +{ amprocfamily => 'brin/bit_minmax_ops', amproclefttype => 'bit', + amprocrighttype => 'bit', amprocnum => '4', amproc => 'brin_minmax_union' }, + +# minmax bit varying +{ amprocfamily => 'brin/varbit_minmax_ops', amproclefttype => 'varbit', + amprocrighttype => 'varbit', amprocnum => '1', + amproc => 'brin_minmax_opcinfo' }, +{ amprocfamily => 'brin/varbit_minmax_ops', amproclefttype => 'varbit', + amprocrighttype => 'varbit', amprocnum => '2', + amproc => 'brin_minmax_add_value' }, +{ amprocfamily => 'brin/varbit_minmax_ops', amproclefttype => 'varbit', + amprocrighttype => 'varbit', amprocnum => '3', + amproc => 'brin_minmax_consistent' }, +{ amprocfamily => 'brin/varbit_minmax_ops', amproclefttype => 'varbit', + amprocrighttype => 'varbit', amprocnum => '4', + amproc => 'brin_minmax_union' }, + +# minmax numeric +{ amprocfamily => 'brin/numeric_minmax_ops', amproclefttype => 'numeric', + amprocrighttype => 'numeric', amprocnum => '1', + amproc => 'brin_minmax_opcinfo' }, +{ amprocfamily => 'brin/numeric_minmax_ops', amproclefttype => 'numeric', + amprocrighttype => 'numeric', amprocnum => '2', + amproc => 'brin_minmax_add_value' }, +{ amprocfamily => 'brin/numeric_minmax_ops', amproclefttype => 'numeric', + amprocrighttype => 'numeric', amprocnum => '3', + amproc => 'brin_minmax_consistent' }, +{ amprocfamily => 'brin/numeric_minmax_ops', amproclefttype => 'numeric', + amprocrighttype => 'numeric', amprocnum => '4', + amproc => 'brin_minmax_union' }, + +# minmax uuid +{ amprocfamily => 'brin/uuid_minmax_ops', amproclefttype => 'uuid', + amprocrighttype => 'uuid', amprocnum => '1', + amproc => 'brin_minmax_opcinfo' }, +{ amprocfamily => 'brin/uuid_minmax_ops', amproclefttype => 'uuid', + amprocrighttype => 'uuid', amprocnum => '2', + amproc => 'brin_minmax_add_value' }, +{ amprocfamily => 'brin/uuid_minmax_ops', amproclefttype => 'uuid', + amprocrighttype => 'uuid', amprocnum => '3', + amproc => 'brin_minmax_consistent' }, +{ amprocfamily => 'brin/uuid_minmax_ops', amproclefttype => 'uuid', + amprocrighttype => 'uuid', amprocnum => '4', amproc => 'brin_minmax_union' }, + +# inclusion range types +{ amprocfamily => 'brin/range_inclusion_ops', amproclefttype => 'anyrange', + amprocrighttype => 'anyrange', amprocnum => '1', + amproc => 'brin_inclusion_opcinfo' }, +{ amprocfamily => 'brin/range_inclusion_ops', amproclefttype => 'anyrange', + amprocrighttype => 'anyrange', amprocnum => '2', + amproc => 'brin_inclusion_add_value' }, +{ amprocfamily => 'brin/range_inclusion_ops', amproclefttype => 'anyrange', + amprocrighttype => 'anyrange', amprocnum => '3', + amproc => 'brin_inclusion_consistent' }, +{ amprocfamily => 'brin/range_inclusion_ops', amproclefttype => 'anyrange', + amprocrighttype => 'anyrange', amprocnum => '4', + amproc => 'brin_inclusion_union' }, +{ amprocfamily => 'brin/range_inclusion_ops', amproclefttype => 'anyrange', + amprocrighttype => 'anyrange', amprocnum => '11', amproc => 'range_merge' }, +{ amprocfamily => 'brin/range_inclusion_ops', amproclefttype => 'anyrange', + amprocrighttype => 'anyrange', amprocnum => '13', + amproc => 'range_contains' }, +{ amprocfamily => 'brin/range_inclusion_ops', amproclefttype => 'anyrange', + amprocrighttype => 'anyrange', amprocnum => '14', amproc => 'isempty' }, + +# minmax pg_lsn +{ amprocfamily => 'brin/pg_lsn_minmax_ops', amproclefttype => 'pg_lsn', + amprocrighttype => 'pg_lsn', amprocnum => '1', + amproc => 'brin_minmax_opcinfo' }, +{ amprocfamily => 'brin/pg_lsn_minmax_ops', amproclefttype => 'pg_lsn', + amprocrighttype => 'pg_lsn', amprocnum => '2', + amproc => 'brin_minmax_add_value' }, +{ amprocfamily => 'brin/pg_lsn_minmax_ops', amproclefttype => 'pg_lsn', + amprocrighttype => 'pg_lsn', amprocnum => '3', + amproc => 'brin_minmax_consistent' }, +{ amprocfamily => 'brin/pg_lsn_minmax_ops', amproclefttype => 'pg_lsn', + amprocrighttype => 'pg_lsn', amprocnum => '4', + amproc => 'brin_minmax_union' }, + +# inclusion box +{ amprocfamily => 'brin/box_inclusion_ops', amproclefttype => 'box', + amprocrighttype => 'box', amprocnum => '1', + amproc => 'brin_inclusion_opcinfo' }, +{ amprocfamily => 'brin/box_inclusion_ops', amproclefttype => 'box', + amprocrighttype => 'box', amprocnum => '2', + amproc => 'brin_inclusion_add_value' }, +{ amprocfamily => 'brin/box_inclusion_ops', amproclefttype => 'box', + amprocrighttype => 'box', amprocnum => '3', + amproc => 'brin_inclusion_consistent' }, +{ amprocfamily => 'brin/box_inclusion_ops', amproclefttype => 'box', + amprocrighttype => 'box', amprocnum => '4', + amproc => 'brin_inclusion_union' }, +{ amprocfamily => 'brin/box_inclusion_ops', amproclefttype => 'box', + amprocrighttype => 'box', amprocnum => '11', amproc => 'bound_box' }, +{ amprocfamily => 'brin/box_inclusion_ops', amproclefttype => 'box', + amprocrighttype => 'box', amprocnum => '13', amproc => 'box_contain' }, + +] diff --git a/src/include/catalog/pg_amproc.h b/src/include/catalog/pg_amproc.h index eb595e81db..d638e0cbfe 100644 --- a/src/include/catalog/pg_amproc.h +++ b/src/include/catalog/pg_amproc.h @@ -2,7 +2,6 @@ * * pg_amproc.h * definition of the system "amproc" relation (pg_amproc) - * along with the relation's initial contents. * * The amproc table identifies support procedures associated with index * operator families and classes. These procedures can't be listed in pg_amop @@ -25,8 +24,8 @@ * src/include/catalog/pg_amproc.h * * NOTES - * the genbki.pl script reads this file and generates .bki - * information from the DATA() statements. + * The Catalog.pm module reads this file and derives schema + * information. * *------------------------------------------------------------------------- */ @@ -34,21 +33,29 @@ #define PG_AMPROC_H #include "catalog/genbki.h" +#include "catalog/pg_amproc_d.h" /* ---------------- * pg_amproc definition. cpp turns this into * typedef struct FormData_pg_amproc * ---------------- */ -#define AccessMethodProcedureRelationId 2603 - -CATALOG(pg_amproc,2603) +CATALOG(pg_amproc,2603,AccessMethodProcedureRelationId) { - Oid amprocfamily; /* the index opfamily this entry is for */ - Oid amproclefttype; /* procedure's left input data type */ - Oid amprocrighttype; /* procedure's right input data type */ - int16 amprocnum; /* support procedure index */ - regproc amproc; /* OID of the proc */ + /* the index opfamily this entry is for */ + Oid amprocfamily BKI_LOOKUP(pg_opfamily); + + /* procedure's left input data type */ + Oid amproclefttype BKI_LOOKUP(pg_type); + + /* procedure's right input data type */ + Oid amprocrighttype BKI_LOOKUP(pg_type); + + /* support procedure index */ + int16 amprocnum; + + /* OID of the proc */ + regproc amproc BKI_LOOKUP(pg_proc); } FormData_pg_amproc; /* ---------------- @@ -58,529 +65,4 @@ CATALOG(pg_amproc,2603) */ typedef FormData_pg_amproc *Form_pg_amproc; -/* ---------------- - * compiler constants for pg_amproc - * ---------------- - */ -#define Natts_pg_amproc 5 -#define Anum_pg_amproc_amprocfamily 1 -#define Anum_pg_amproc_amproclefttype 2 -#define Anum_pg_amproc_amprocrighttype 3 -#define Anum_pg_amproc_amprocnum 4 -#define Anum_pg_amproc_amproc 5 - -/* ---------------- - * initial contents of pg_amproc - * ---------------- - */ - -/* btree */ -DATA(insert ( 397 2277 2277 1 382 )); -DATA(insert ( 421 702 702 1 357 )); -DATA(insert ( 423 1560 1560 1 1596 )); -DATA(insert ( 424 16 16 1 1693 )); -DATA(insert ( 426 1042 1042 1 1078 )); -DATA(insert ( 426 1042 1042 2 3328 )); -DATA(insert ( 428 17 17 1 1954 )); -DATA(insert ( 428 17 17 2 3331 )); -DATA(insert ( 429 18 18 1 358 )); -DATA(insert ( 434 1082 1082 1 1092 )); -DATA(insert ( 434 1082 1082 2 3136 )); -DATA(insert ( 434 1082 1114 1 2344 )); -DATA(insert ( 434 1082 1184 1 2357 )); -DATA(insert ( 434 1114 1114 1 2045 )); -DATA(insert ( 434 1114 1114 2 3137 )); -DATA(insert ( 434 1114 1082 1 2370 )); -DATA(insert ( 434 1114 1184 1 2526 )); -DATA(insert ( 434 1184 1184 1 1314 )); -DATA(insert ( 434 1184 1184 2 3137 )); -DATA(insert ( 434 1184 1082 1 2383 )); -DATA(insert ( 434 1184 1114 1 2533 )); -DATA(insert ( 434 1082 1186 3 4133 )); -DATA(insert ( 434 1114 1186 3 4134 )); -DATA(insert ( 434 1184 1186 3 4135 )); -DATA(insert ( 1970 700 700 1 354 )); -DATA(insert ( 1970 700 700 2 3132 )); -DATA(insert ( 1970 700 701 1 2194 )); -DATA(insert ( 1970 701 701 1 355 )); -DATA(insert ( 1970 701 701 2 3133 )); -DATA(insert ( 1970 701 700 1 2195 )); -DATA(insert ( 1970 701 701 3 4139 )); -DATA(insert ( 1970 700 701 3 4140 )); -DATA(insert ( 1974 869 869 1 926 )); -DATA(insert ( 1976 21 21 1 350 )); -DATA(insert ( 1976 21 21 2 3129 )); -DATA(insert ( 1976 21 23 1 2190 )); -DATA(insert ( 1976 21 20 1 2192 )); -DATA(insert ( 1976 21 20 3 4130 )); -DATA(insert ( 1976 21 23 3 4131 )); -DATA(insert ( 1976 21 21 3 4132 )); -DATA(insert ( 1976 23 23 1 351 )); -DATA(insert ( 1976 23 23 2 3130 )); -DATA(insert ( 1976 23 20 1 2188 )); -DATA(insert ( 1976 23 21 1 2191 )); -DATA(insert ( 1976 23 20 3 4127 )); -DATA(insert ( 1976 23 23 3 4128 )); -DATA(insert ( 1976 23 21 3 4129 )); -DATA(insert ( 1976 20 20 1 842 )); -DATA(insert ( 1976 20 20 2 3131 )); -DATA(insert ( 1976 20 23 1 2189 )); -DATA(insert ( 1976 20 21 1 2193 )); -DATA(insert ( 1976 20 20 3 4126 )); -DATA(insert ( 1982 1186 1186 1 1315 )); -DATA(insert ( 1982 1186 1186 3 4136 )); -DATA(insert ( 1984 829 829 1 836 )); -DATA(insert ( 1984 829 829 2 3359 )); -DATA(insert ( 1986 19 19 1 359 )); -DATA(insert ( 1986 19 19 2 3135 )); -DATA(insert ( 1988 1700 1700 1 1769 )); -DATA(insert ( 1988 1700 1700 2 3283 )); -DATA(insert ( 1988 1700 1700 3 4141 )); -DATA(insert ( 1989 26 26 1 356 )); -DATA(insert ( 1989 26 26 2 3134 )); -DATA(insert ( 1991 30 30 1 404 )); -DATA(insert ( 1994 25 25 1 360 )); -DATA(insert ( 1994 25 25 2 3255 )); -DATA(insert ( 1996 1083 1083 1 1107 )); -DATA(insert ( 1996 1083 1186 3 4137 )); -DATA(insert ( 2000 1266 1266 1 1358 )); -DATA(insert ( 2000 1266 1186 3 4138 )); -DATA(insert ( 2002 1562 1562 1 1672 )); -DATA(insert ( 2095 25 25 1 2166 )); -DATA(insert ( 2095 25 25 2 3332 )); -DATA(insert ( 2097 1042 1042 1 2180 )); -DATA(insert ( 2097 1042 1042 2 3333 )); -DATA(insert ( 2099 790 790 1 377 )); -DATA(insert ( 2233 703 703 1 380 )); -DATA(insert ( 2234 704 704 1 381 )); -DATA(insert ( 2789 27 27 1 2794 )); -DATA(insert ( 2968 2950 2950 1 2960 )); -DATA(insert ( 2968 2950 2950 2 3300 )); -DATA(insert ( 2994 2249 2249 1 2987 )); -DATA(insert ( 3194 2249 2249 1 3187 )); -DATA(insert ( 3253 3220 3220 1 3251 )); -DATA(insert ( 3371 774 774 1 4119 )); -DATA(insert ( 3522 3500 3500 1 3514 )); -DATA(insert ( 3626 3614 3614 1 3622 )); -DATA(insert ( 3683 3615 3615 1 3668 )); -DATA(insert ( 3901 3831 3831 1 3870 )); -DATA(insert ( 4033 3802 3802 1 4044 )); - - -/* hash */ -DATA(insert ( 427 1042 1042 1 1080 )); -DATA(insert ( 427 1042 1042 2 972 )); -DATA(insert ( 431 18 18 1 454 )); -DATA(insert ( 431 18 18 2 446 )); -DATA(insert ( 435 1082 1082 1 450 )); -DATA(insert ( 435 1082 1082 2 425 )); -DATA(insert ( 627 2277 2277 1 626 )); -DATA(insert ( 627 2277 2277 2 782 )); -DATA(insert ( 1971 700 700 1 451 )); -DATA(insert ( 1971 700 700 2 443 )); -DATA(insert ( 1971 701 701 1 452 )); -DATA(insert ( 1971 701 701 2 444 )); -DATA(insert ( 1975 869 869 1 422 )); -DATA(insert ( 1975 869 869 2 779 )); -DATA(insert ( 1977 21 21 1 449 )); -DATA(insert ( 1977 21 21 2 441 )); -DATA(insert ( 1977 23 23 1 450 )); -DATA(insert ( 1977 23 23 2 425 )); -DATA(insert ( 1977 20 20 1 949 )); -DATA(insert ( 1977 20 20 2 442 )); -DATA(insert ( 1983 1186 1186 1 1697 )); -DATA(insert ( 1983 1186 1186 2 3418 )); -DATA(insert ( 1985 829 829 1 399 )); -DATA(insert ( 1985 829 829 2 778 )); -DATA(insert ( 1987 19 19 1 455 )); -DATA(insert ( 1987 19 19 2 447 )); -DATA(insert ( 1990 26 26 1 453 )); -DATA(insert ( 1990 26 26 2 445 )); -DATA(insert ( 1992 30 30 1 457 )); -DATA(insert ( 1992 30 30 2 776 )); -DATA(insert ( 1995 25 25 1 400 )); -DATA(insert ( 1995 25 25 2 448)); -DATA(insert ( 1997 1083 1083 1 1688 )); -DATA(insert ( 1997 1083 1083 2 3409 )); -DATA(insert ( 1998 1700 1700 1 432 )); -DATA(insert ( 1998 1700 1700 2 780 )); -DATA(insert ( 1999 1184 1184 1 2039 )); -DATA(insert ( 1999 1184 1184 2 3411 )); -DATA(insert ( 2001 1266 1266 1 1696 )); -DATA(insert ( 2001 1266 1266 2 3410 )); -DATA(insert ( 2040 1114 1114 1 2039 )); -DATA(insert ( 2040 1114 1114 2 3411 )); -DATA(insert ( 2222 16 16 1 454 )); -DATA(insert ( 2222 16 16 2 446 )); -DATA(insert ( 2223 17 17 1 456 )); -DATA(insert ( 2223 17 17 2 772 )); -DATA(insert ( 2225 28 28 1 450 )); -DATA(insert ( 2225 28 28 2 425)); -DATA(insert ( 2226 29 29 1 450 )); -DATA(insert ( 2226 29 29 2 425 )); -DATA(insert ( 2227 702 702 1 450 )); -DATA(insert ( 2227 702 702 2 425 )); -DATA(insert ( 2228 703 703 1 450 )); -DATA(insert ( 2228 703 703 2 425 )); -DATA(insert ( 2229 25 25 1 400 )); -DATA(insert ( 2229 25 25 2 448 )); -DATA(insert ( 2231 1042 1042 1 1080 )); -DATA(insert ( 2231 1042 1042 2 972 )); -DATA(insert ( 2235 1033 1033 1 329 )); -DATA(insert ( 2235 1033 1033 2 777 )); -DATA(insert ( 2969 2950 2950 1 2963 )); -DATA(insert ( 2969 2950 2950 2 3412 )); -DATA(insert ( 3254 3220 3220 1 3252 )); -DATA(insert ( 3254 3220 3220 2 3413 )); -DATA(insert ( 3372 774 774 1 328 )); -DATA(insert ( 3372 774 774 2 781 )); -DATA(insert ( 3523 3500 3500 1 3515 )); -DATA(insert ( 3523 3500 3500 2 3414 )); -DATA(insert ( 3903 3831 3831 1 3902 )); -DATA(insert ( 3903 3831 3831 2 3417 )); -DATA(insert ( 4034 3802 3802 1 4045 )); -DATA(insert ( 4034 3802 3802 2 3416)); - - -/* gist */ -DATA(insert ( 1029 600 600 1 2179 )); -DATA(insert ( 1029 600 600 2 2583 )); -DATA(insert ( 1029 600 600 3 1030 )); -DATA(insert ( 1029 600 600 5 2581 )); -DATA(insert ( 1029 600 600 6 2582 )); -DATA(insert ( 1029 600 600 7 2584 )); -DATA(insert ( 1029 600 600 8 3064 )); -DATA(insert ( 1029 600 600 9 3282 )); -DATA(insert ( 2593 603 603 1 2578 )); -DATA(insert ( 2593 603 603 2 2583 )); -DATA(insert ( 2593 603 603 5 2581 )); -DATA(insert ( 2593 603 603 6 2582 )); -DATA(insert ( 2593 603 603 7 2584 )); -DATA(insert ( 2594 604 604 1 2585 )); -DATA(insert ( 2594 604 604 2 2583 )); -DATA(insert ( 2594 604 604 3 2586 )); -DATA(insert ( 2594 604 604 5 2581 )); -DATA(insert ( 2594 604 604 6 2582 )); -DATA(insert ( 2594 604 604 7 2584 )); -DATA(insert ( 2594 604 604 8 3288 )); -DATA(insert ( 2595 718 718 1 2591 )); -DATA(insert ( 2595 718 718 2 2583 )); -DATA(insert ( 2595 718 718 3 2592 )); -DATA(insert ( 2595 718 718 5 2581 )); -DATA(insert ( 2595 718 718 6 2582 )); -DATA(insert ( 2595 718 718 7 2584 )); -DATA(insert ( 2595 718 718 8 3280 )); -DATA(insert ( 3655 3614 3614 1 3654 )); -DATA(insert ( 3655 3614 3614 2 3651 )); -DATA(insert ( 3655 3614 3614 3 3648 )); -DATA(insert ( 3655 3614 3614 4 3649 )); -DATA(insert ( 3655 3614 3614 5 3653 )); -DATA(insert ( 3655 3614 3614 6 3650 )); -DATA(insert ( 3655 3614 3614 7 3652 )); -DATA(insert ( 3702 3615 3615 1 3701 )); -DATA(insert ( 3702 3615 3615 2 3698 )); -DATA(insert ( 3702 3615 3615 3 3695 )); -DATA(insert ( 3702 3615 3615 5 3700 )); -DATA(insert ( 3702 3615 3615 6 3697 )); -DATA(insert ( 3702 3615 3615 7 3699 )); -DATA(insert ( 3919 3831 3831 1 3875 )); -DATA(insert ( 3919 3831 3831 2 3876 )); -DATA(insert ( 3919 3831 3831 5 3879 )); -DATA(insert ( 3919 3831 3831 6 3880 )); -DATA(insert ( 3919 3831 3831 7 3881 )); -DATA(insert ( 3550 869 869 1 3553 )); -DATA(insert ( 3550 869 869 2 3554 )); -DATA(insert ( 3550 869 869 3 3555 )); -DATA(insert ( 3550 869 869 5 3557 )); -DATA(insert ( 3550 869 869 6 3558 )); -DATA(insert ( 3550 869 869 7 3559 )); -DATA(insert ( 3550 869 869 9 3573 )); - - -/* gin */ -DATA(insert ( 2745 2277 2277 2 2743 )); -DATA(insert ( 2745 2277 2277 3 2774 )); -DATA(insert ( 2745 2277 2277 4 2744 )); -DATA(insert ( 2745 2277 2277 6 3920 )); -DATA(insert ( 3659 3614 3614 1 3724 )); -DATA(insert ( 3659 3614 3614 2 3656 )); -DATA(insert ( 3659 3614 3614 3 3657 )); -DATA(insert ( 3659 3614 3614 4 3658 )); -DATA(insert ( 3659 3614 3614 5 2700 )); -DATA(insert ( 3659 3614 3614 6 3921 )); -DATA(insert ( 4036 3802 3802 1 3480 )); -DATA(insert ( 4036 3802 3802 2 3482 )); -DATA(insert ( 4036 3802 3802 3 3483 )); -DATA(insert ( 4036 3802 3802 4 3484 )); -DATA(insert ( 4036 3802 3802 6 3488 )); -DATA(insert ( 4037 3802 3802 1 351 )); -DATA(insert ( 4037 3802 3802 2 3485 )); -DATA(insert ( 4037 3802 3802 3 3486 )); -DATA(insert ( 4037 3802 3802 4 3487 )); -DATA(insert ( 4037 3802 3802 6 3489 )); - -/* sp-gist */ -DATA(insert ( 3474 3831 3831 1 3469 )); -DATA(insert ( 3474 3831 3831 2 3470 )); -DATA(insert ( 3474 3831 3831 3 3471 )); -DATA(insert ( 3474 3831 3831 4 3472 )); -DATA(insert ( 3474 3831 3831 5 3473 )); -DATA(insert ( 3794 869 869 1 3795 )); -DATA(insert ( 3794 869 869 2 3796 )); -DATA(insert ( 3794 869 869 3 3797 )); -DATA(insert ( 3794 869 869 4 3798 )); -DATA(insert ( 3794 869 869 5 3799 )); -DATA(insert ( 4015 600 600 1 4018 )); -DATA(insert ( 4015 600 600 2 4019 )); -DATA(insert ( 4015 600 600 3 4020 )); -DATA(insert ( 4015 600 600 4 4021 )); -DATA(insert ( 4015 600 600 5 4022 )); -DATA(insert ( 4016 600 600 1 4023 )); -DATA(insert ( 4016 600 600 2 4024 )); -DATA(insert ( 4016 600 600 3 4025 )); -DATA(insert ( 4016 600 600 4 4026 )); -DATA(insert ( 4016 600 600 5 4022 )); -DATA(insert ( 4017 25 25 1 4027 )); -DATA(insert ( 4017 25 25 2 4028 )); -DATA(insert ( 4017 25 25 3 4029 )); -DATA(insert ( 4017 25 25 4 4030 )); -DATA(insert ( 4017 25 25 5 4031 )); -DATA(insert ( 5000 603 603 1 5012 )); -DATA(insert ( 5000 603 603 2 5013 )); -DATA(insert ( 5000 603 603 3 5014 )); -DATA(insert ( 5000 603 603 4 5015 )); -DATA(insert ( 5000 603 603 5 5016 )); -DATA(insert ( 5008 604 604 1 5010 )); -DATA(insert ( 5008 604 604 2 5013 )); -DATA(insert ( 5008 604 604 3 5014 )); -DATA(insert ( 5008 604 604 4 5015 )); -DATA(insert ( 5008 604 604 5 5016 )); -DATA(insert ( 5008 604 604 6 5011 )); - -/* BRIN opclasses */ -/* minmax bytea */ -DATA(insert ( 4064 17 17 1 3383 )); -DATA(insert ( 4064 17 17 2 3384 )); -DATA(insert ( 4064 17 17 3 3385 )); -DATA(insert ( 4064 17 17 4 3386 )); -/* minmax "char" */ -DATA(insert ( 4062 18 18 1 3383 )); -DATA(insert ( 4062 18 18 2 3384 )); -DATA(insert ( 4062 18 18 3 3385 )); -DATA(insert ( 4062 18 18 4 3386 )); -/* minmax name */ -DATA(insert ( 4065 19 19 1 3383 )); -DATA(insert ( 4065 19 19 2 3384 )); -DATA(insert ( 4065 19 19 3 3385 )); -DATA(insert ( 4065 19 19 4 3386 )); -/* minmax integer: int2, int4, int8 */ -DATA(insert ( 4054 20 20 1 3383 )); -DATA(insert ( 4054 20 20 2 3384 )); -DATA(insert ( 4054 20 20 3 3385 )); -DATA(insert ( 4054 20 20 4 3386 )); -DATA(insert ( 4054 20 21 1 3383 )); -DATA(insert ( 4054 20 21 2 3384 )); -DATA(insert ( 4054 20 21 3 3385 )); -DATA(insert ( 4054 20 21 4 3386 )); -DATA(insert ( 4054 20 23 1 3383 )); -DATA(insert ( 4054 20 23 2 3384 )); -DATA(insert ( 4054 20 23 3 3385 )); -DATA(insert ( 4054 20 23 4 3386 )); - -DATA(insert ( 4054 21 21 1 3383 )); -DATA(insert ( 4054 21 21 2 3384 )); -DATA(insert ( 4054 21 21 3 3385 )); -DATA(insert ( 4054 21 21 4 3386 )); -DATA(insert ( 4054 21 20 1 3383 )); -DATA(insert ( 4054 21 20 2 3384 )); -DATA(insert ( 4054 21 20 3 3385 )); -DATA(insert ( 4054 21 20 4 3386 )); -DATA(insert ( 4054 21 23 1 3383 )); -DATA(insert ( 4054 21 23 2 3384 )); -DATA(insert ( 4054 21 23 3 3385 )); -DATA(insert ( 4054 21 23 4 3386 )); - -DATA(insert ( 4054 23 23 1 3383 )); -DATA(insert ( 4054 23 23 2 3384 )); -DATA(insert ( 4054 23 23 3 3385 )); -DATA(insert ( 4054 23 23 4 3386 )); -DATA(insert ( 4054 23 20 1 3383 )); -DATA(insert ( 4054 23 20 2 3384 )); -DATA(insert ( 4054 23 20 3 3385 )); -DATA(insert ( 4054 23 20 4 3386 )); -DATA(insert ( 4054 23 21 1 3383 )); -DATA(insert ( 4054 23 21 2 3384 )); -DATA(insert ( 4054 23 21 3 3385 )); -DATA(insert ( 4054 23 21 4 3386 )); - -/* minmax text */ -DATA(insert ( 4056 25 25 1 3383 )); -DATA(insert ( 4056 25 25 2 3384 )); -DATA(insert ( 4056 25 25 3 3385 )); -DATA(insert ( 4056 25 25 4 3386 )); -/* minmax oid */ -DATA(insert ( 4068 26 26 1 3383 )); -DATA(insert ( 4068 26 26 2 3384 )); -DATA(insert ( 4068 26 26 3 3385 )); -DATA(insert ( 4068 26 26 4 3386 )); -/* minmax tid */ -DATA(insert ( 4069 27 27 1 3383 )); -DATA(insert ( 4069 27 27 2 3384 )); -DATA(insert ( 4069 27 27 3 3385 )); -DATA(insert ( 4069 27 27 4 3386 )); -/* minmax float */ -DATA(insert ( 4070 700 700 1 3383 )); -DATA(insert ( 4070 700 700 2 3384 )); -DATA(insert ( 4070 700 700 3 3385 )); -DATA(insert ( 4070 700 700 4 3386 )); - -DATA(insert ( 4070 700 701 1 3383 )); -DATA(insert ( 4070 700 701 2 3384 )); -DATA(insert ( 4070 700 701 3 3385 )); -DATA(insert ( 4070 700 701 4 3386 )); - -DATA(insert ( 4070 701 701 1 3383 )); -DATA(insert ( 4070 701 701 2 3384 )); -DATA(insert ( 4070 701 701 3 3385 )); -DATA(insert ( 4070 701 701 4 3386 )); - -DATA(insert ( 4070 701 700 1 3383 )); -DATA(insert ( 4070 701 700 2 3384 )); -DATA(insert ( 4070 701 700 3 3385 )); -DATA(insert ( 4070 701 700 4 3386 )); - -/* minmax abstime */ -DATA(insert ( 4072 702 702 1 3383 )); -DATA(insert ( 4072 702 702 2 3384 )); -DATA(insert ( 4072 702 702 3 3385 )); -DATA(insert ( 4072 702 702 4 3386 )); -/* minmax reltime */ -DATA(insert ( 4073 703 703 1 3383 )); -DATA(insert ( 4073 703 703 2 3384 )); -DATA(insert ( 4073 703 703 3 3385 )); -DATA(insert ( 4073 703 703 4 3386 )); -/* minmax macaddr */ -DATA(insert ( 4074 829 829 1 3383 )); -DATA(insert ( 4074 829 829 2 3384 )); -DATA(insert ( 4074 829 829 3 3385 )); -DATA(insert ( 4074 829 829 4 3386 )); -/* minmax macaddr8 */ -DATA(insert ( 4109 774 774 1 3383 )); -DATA(insert ( 4109 774 774 2 3384 )); -DATA(insert ( 4109 774 774 3 3385 )); -DATA(insert ( 4109 774 774 4 3386 )); -/* minmax inet */ -DATA(insert ( 4075 869 869 1 3383 )); -DATA(insert ( 4075 869 869 2 3384 )); -DATA(insert ( 4075 869 869 3 3385 )); -DATA(insert ( 4075 869 869 4 3386 )); -/* inclusion inet */ -DATA(insert ( 4102 869 869 1 4105 )); -DATA(insert ( 4102 869 869 2 4106 )); -DATA(insert ( 4102 869 869 3 4107 )); -DATA(insert ( 4102 869 869 4 4108 )); -DATA(insert ( 4102 869 869 11 4063 )); -DATA(insert ( 4102 869 869 12 4071 )); -DATA(insert ( 4102 869 869 13 930 )); -/* minmax character */ -DATA(insert ( 4076 1042 1042 1 3383 )); -DATA(insert ( 4076 1042 1042 2 3384 )); -DATA(insert ( 4076 1042 1042 3 3385 )); -DATA(insert ( 4076 1042 1042 4 3386 )); -/* minmax time without time zone */ -DATA(insert ( 4077 1083 1083 1 3383 )); -DATA(insert ( 4077 1083 1083 2 3384 )); -DATA(insert ( 4077 1083 1083 3 3385 )); -DATA(insert ( 4077 1083 1083 4 3386 )); -/* minmax datetime (date, timestamp, timestamptz) */ -DATA(insert ( 4059 1114 1114 1 3383 )); -DATA(insert ( 4059 1114 1114 2 3384 )); -DATA(insert ( 4059 1114 1114 3 3385 )); -DATA(insert ( 4059 1114 1114 4 3386 )); -DATA(insert ( 4059 1114 1184 1 3383 )); -DATA(insert ( 4059 1114 1184 2 3384 )); -DATA(insert ( 4059 1114 1184 3 3385 )); -DATA(insert ( 4059 1114 1184 4 3386 )); -DATA(insert ( 4059 1114 1082 1 3383 )); -DATA(insert ( 4059 1114 1082 2 3384 )); -DATA(insert ( 4059 1114 1082 3 3385 )); -DATA(insert ( 4059 1114 1082 4 3386 )); - -DATA(insert ( 4059 1184 1184 1 3383 )); -DATA(insert ( 4059 1184 1184 2 3384 )); -DATA(insert ( 4059 1184 1184 3 3385 )); -DATA(insert ( 4059 1184 1184 4 3386 )); -DATA(insert ( 4059 1184 1114 1 3383 )); -DATA(insert ( 4059 1184 1114 2 3384 )); -DATA(insert ( 4059 1184 1114 3 3385 )); -DATA(insert ( 4059 1184 1114 4 3386 )); -DATA(insert ( 4059 1184 1082 1 3383 )); -DATA(insert ( 4059 1184 1082 2 3384 )); -DATA(insert ( 4059 1184 1082 3 3385 )); -DATA(insert ( 4059 1184 1082 4 3386 )); - -DATA(insert ( 4059 1082 1082 1 3383 )); -DATA(insert ( 4059 1082 1082 2 3384 )); -DATA(insert ( 4059 1082 1082 3 3385 )); -DATA(insert ( 4059 1082 1082 4 3386 )); -DATA(insert ( 4059 1082 1114 1 3383 )); -DATA(insert ( 4059 1082 1114 2 3384 )); -DATA(insert ( 4059 1082 1114 3 3385 )); -DATA(insert ( 4059 1082 1114 4 3386 )); -DATA(insert ( 4059 1082 1184 1 3383 )); -DATA(insert ( 4059 1082 1184 2 3384 )); -DATA(insert ( 4059 1082 1184 3 3385 )); -DATA(insert ( 4059 1082 1184 4 3386 )); - -/* minmax interval */ -DATA(insert ( 4078 1186 1186 1 3383 )); -DATA(insert ( 4078 1186 1186 2 3384 )); -DATA(insert ( 4078 1186 1186 3 3385 )); -DATA(insert ( 4078 1186 1186 4 3386 )); -/* minmax time with time zone */ -DATA(insert ( 4058 1266 1266 1 3383 )); -DATA(insert ( 4058 1266 1266 2 3384 )); -DATA(insert ( 4058 1266 1266 3 3385 )); -DATA(insert ( 4058 1266 1266 4 3386 )); -/* minmax bit */ -DATA(insert ( 4079 1560 1560 1 3383 )); -DATA(insert ( 4079 1560 1560 2 3384 )); -DATA(insert ( 4079 1560 1560 3 3385 )); -DATA(insert ( 4079 1560 1560 4 3386 )); -/* minmax bit varying */ -DATA(insert ( 4080 1562 1562 1 3383 )); -DATA(insert ( 4080 1562 1562 2 3384 )); -DATA(insert ( 4080 1562 1562 3 3385 )); -DATA(insert ( 4080 1562 1562 4 3386 )); -/* minmax numeric */ -DATA(insert ( 4055 1700 1700 1 3383 )); -DATA(insert ( 4055 1700 1700 2 3384 )); -DATA(insert ( 4055 1700 1700 3 3385 )); -DATA(insert ( 4055 1700 1700 4 3386 )); -/* minmax uuid */ -DATA(insert ( 4081 2950 2950 1 3383 )); -DATA(insert ( 4081 2950 2950 2 3384 )); -DATA(insert ( 4081 2950 2950 3 3385 )); -DATA(insert ( 4081 2950 2950 4 3386 )); -/* inclusion range types */ -DATA(insert ( 4103 3831 3831 1 4105 )); -DATA(insert ( 4103 3831 3831 2 4106 )); -DATA(insert ( 4103 3831 3831 3 4107 )); -DATA(insert ( 4103 3831 3831 4 4108 )); -DATA(insert ( 4103 3831 3831 11 4057 )); -DATA(insert ( 4103 3831 3831 13 3859 )); -DATA(insert ( 4103 3831 3831 14 3850 )); -/* minmax pg_lsn */ -DATA(insert ( 4082 3220 3220 1 3383 )); -DATA(insert ( 4082 3220 3220 2 3384 )); -DATA(insert ( 4082 3220 3220 3 3385 )); -DATA(insert ( 4082 3220 3220 4 3386 )); -/* inclusion box */ -DATA(insert ( 4104 603 603 1 4105 )); -DATA(insert ( 4104 603 603 2 4106 )); -DATA(insert ( 4104 603 603 3 4107 )); -DATA(insert ( 4104 603 603 4 4108 )); -DATA(insert ( 4104 603 603 11 4067 )); -DATA(insert ( 4104 603 603 13 187 )); - #endif /* PG_AMPROC_H */ diff --git a/src/include/catalog/pg_attrdef.h b/src/include/catalog/pg_attrdef.h index 8a8b8cac52..16b106d9ad 100644 --- a/src/include/catalog/pg_attrdef.h +++ b/src/include/catalog/pg_attrdef.h @@ -2,7 +2,6 @@ * * pg_attrdef.h * definition of the system "attribute defaults" relation (pg_attrdef) - * along with the relation's initial contents. * * * Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group @@ -11,8 +10,8 @@ * src/include/catalog/pg_attrdef.h * * NOTES - * the genbki.pl script reads this file and generates .bki - * information from the DATA() statements. + * The Catalog.pm module reads this file and derives schema + * information. * *------------------------------------------------------------------------- */ @@ -20,15 +19,14 @@ #define PG_ATTRDEF_H #include "catalog/genbki.h" +#include "catalog/pg_attrdef_d.h" /* ---------------- * pg_attrdef definition. cpp turns this into * typedef struct FormData_pg_attrdef * ---------------- */ -#define AttrDefaultRelationId 2604 - -CATALOG(pg_attrdef,2604) +CATALOG(pg_attrdef,2604,AttrDefaultRelationId) { Oid adrelid; /* OID of table containing attribute */ int16 adnum; /* attnum of attribute */ @@ -46,14 +44,4 @@ CATALOG(pg_attrdef,2604) */ typedef FormData_pg_attrdef *Form_pg_attrdef; -/* ---------------- - * compiler constants for pg_attrdef - * ---------------- - */ -#define Natts_pg_attrdef 4 -#define Anum_pg_attrdef_adrelid 1 -#define Anum_pg_attrdef_adnum 2 -#define Anum_pg_attrdef_adbin 3 -#define Anum_pg_attrdef_adsrc 4 - #endif /* PG_ATTRDEF_H */ diff --git a/src/include/catalog/pg_attribute.h b/src/include/catalog/pg_attribute.h index 5bb64f7c31..8eef7d2fed 100644 --- a/src/include/catalog/pg_attribute.h +++ b/src/include/catalog/pg_attribute.h @@ -2,7 +2,10 @@ * * pg_attribute.h * definition of the system "attribute" relation (pg_attribute) - * along with the relation's initial contents. + * + * The initial contents of pg_attribute are generated at compile time by + * genbki.pl, so there is no pg_attribute.dat file. Only "bootstrapped" + * relations need be included. * * * Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group @@ -11,8 +14,8 @@ * src/include/catalog/pg_attribute.h * * NOTES - * the genbki.pl script reads this file and generates .bki - * information from the DATA() statements. + * The Catalog.pm module reads this file and derives schema + * information. * *------------------------------------------------------------------------- */ @@ -20,6 +23,7 @@ #define PG_ATTRIBUTE_H #include "catalog/genbki.h" +#include "catalog/pg_attribute_d.h" /* ---------------- * pg_attribute definition. cpp turns this into @@ -30,10 +34,7 @@ * You may need to change catalog/genbki.pl as well. * ---------------- */ -#define AttributeRelationId 1249 -#define AttributeRelation_Rowtype_Id 75 - -CATALOG(pg_attribute,1249) BKI_BOOTSTRAP BKI_WITHOUT_OIDS BKI_ROWTYPE_OID(75) BKI_SCHEMA_MACRO +CATALOG(pg_attribute,1249,AttributeRelationId) BKI_BOOTSTRAP BKI_WITHOUT_OIDS BKI_ROWTYPE_OID(75,AttributeRelation_Rowtype_Id) BKI_SCHEMA_MACRO { Oid attrelid; /* OID of relation containing this attribute */ NameData attname; /* name of attribute */ @@ -137,7 +138,7 @@ CATALOG(pg_attribute,1249) BKI_BOOTSTRAP BKI_WITHOUT_OIDS BKI_ROWTYPE_OID(75) BK bool atthasmissing BKI_DEFAULT(f); /* One of the ATTRIBUTE_IDENTITY_* constants below, or '\0' */ - char attidentity BKI_DEFAULT(""); + char attidentity BKI_DEFAULT('\0'); /* Is dropped (ie, logically invisible) or not */ bool attisdropped BKI_DEFAULT(f); @@ -195,47 +196,11 @@ CATALOG(pg_attribute,1249) BKI_BOOTSTRAP BKI_WITHOUT_OIDS BKI_ROWTYPE_OID(75) BK */ typedef FormData_pg_attribute *Form_pg_attribute; -/* ---------------- - * compiler constants for pg_attribute - * ---------------- - */ - -#define Natts_pg_attribute 24 -#define Anum_pg_attribute_attrelid 1 -#define Anum_pg_attribute_attname 2 -#define Anum_pg_attribute_atttypid 3 -#define Anum_pg_attribute_attstattarget 4 -#define Anum_pg_attribute_attlen 5 -#define Anum_pg_attribute_attnum 6 -#define Anum_pg_attribute_attndims 7 -#define Anum_pg_attribute_attcacheoff 8 -#define Anum_pg_attribute_atttypmod 9 -#define Anum_pg_attribute_attbyval 10 -#define Anum_pg_attribute_attstorage 11 -#define Anum_pg_attribute_attalign 12 -#define Anum_pg_attribute_attnotnull 13 -#define Anum_pg_attribute_atthasdef 14 -#define Anum_pg_attribute_atthasmissing 15 -#define Anum_pg_attribute_attidentity 16 -#define Anum_pg_attribute_attisdropped 17 -#define Anum_pg_attribute_attislocal 18 -#define Anum_pg_attribute_attinhcount 19 -#define Anum_pg_attribute_attcollation 20 -#define Anum_pg_attribute_attacl 21 -#define Anum_pg_attribute_attoptions 22 -#define Anum_pg_attribute_attfdwoptions 23 -#define Anum_pg_attribute_attmissingval 24 - -/* ---------------- - * initial contents of pg_attribute - * - * The initial contents of pg_attribute are generated at compile time by - * genbki.pl. Only "bootstrapped" relations need be included. - * ---------------- - */ - +#ifdef EXPOSE_TO_CLIENT_CODE #define ATTRIBUTE_IDENTITY_ALWAYS 'a' #define ATTRIBUTE_IDENTITY_BY_DEFAULT 'd' +#endif /* EXPOSE_TO_CLIENT_CODE */ + #endif /* PG_ATTRIBUTE_H */ diff --git a/src/include/catalog/pg_auth_members.h b/src/include/catalog/pg_auth_members.h index ae3c14aa7a..75bc2baa14 100644 --- a/src/include/catalog/pg_auth_members.h +++ b/src/include/catalog/pg_auth_members.h @@ -2,7 +2,7 @@ * * pg_auth_members.h * definition of the system "authorization identifier members" relation - * (pg_auth_members) along with the relation's initial contents. + * (pg_auth_members). * * * Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group @@ -11,8 +11,8 @@ * src/include/catalog/pg_auth_members.h * * NOTES - * the genbki.pl script reads this file and generates .bki - * information from the DATA() statements. + * The Catalog.pm module reads this file and derives schema + * information. * *------------------------------------------------------------------------- */ @@ -20,16 +20,14 @@ #define PG_AUTH_MEMBERS_H #include "catalog/genbki.h" +#include "catalog/pg_auth_members_d.h" /* ---------------- * pg_auth_members definition. cpp turns this into * typedef struct FormData_pg_auth_members * ---------------- */ -#define AuthMemRelationId 1261 -#define AuthMemRelation_Rowtype_Id 2843 - -CATALOG(pg_auth_members,1261) BKI_SHARED_RELATION BKI_WITHOUT_OIDS BKI_ROWTYPE_OID(2843) BKI_SCHEMA_MACRO +CATALOG(pg_auth_members,1261,AuthMemRelationId) BKI_SHARED_RELATION BKI_WITHOUT_OIDS BKI_ROWTYPE_OID(2843,AuthMemRelation_Rowtype_Id) BKI_SCHEMA_MACRO { Oid roleid; /* ID of a role */ Oid member; /* ID of a member of that role */ @@ -44,14 +42,4 @@ CATALOG(pg_auth_members,1261) BKI_SHARED_RELATION BKI_WITHOUT_OIDS BKI_ROWTYPE_O */ typedef FormData_pg_auth_members *Form_pg_auth_members; -/* ---------------- - * compiler constants for pg_auth_members - * ---------------- - */ -#define Natts_pg_auth_members 4 -#define Anum_pg_auth_members_roleid 1 -#define Anum_pg_auth_members_member 2 -#define Anum_pg_auth_members_grantor 3 -#define Anum_pg_auth_members_admin_option 4 - #endif /* PG_AUTH_MEMBERS_H */ diff --git a/src/include/catalog/pg_authid.dat b/src/include/catalog/pg_authid.dat new file mode 100644 index 0000000000..52f4259560 --- /dev/null +++ b/src/include/catalog/pg_authid.dat @@ -0,0 +1,67 @@ +#---------------------------------------------------------------------- +# +# pg_authid.dat +# Initial contents of the pg_authid system relation. +# +# Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group +# Portions Copyright (c) 1994, Regents of the University of California +# +# src/include/catalog/pg_authid.dat +# +#---------------------------------------------------------------------- + +[ + +# POSTGRES will be replaced at initdb time with a user choice that might +# contain non-word characters, so we must double-quote it. + +# The C code typically refers to these roles using the #define symbols, +# so make sure every entry has an oid_symbol value. + +{ oid => '10', oid_symbol => 'BOOTSTRAP_SUPERUSERID', + rolname => '"POSTGRES"', rolsuper => 't', rolinherit => 't', + rolcreaterole => 't', rolcreatedb => 't', rolcanlogin => 't', + rolreplication => 't', rolbypassrls => 't', rolconnlimit => '-1', + rolpassword => '_null_', rolvaliduntil => '_null_' }, +{ oid => '3373', oid_symbol => 'DEFAULT_ROLE_MONITOR', + rolname => 'pg_monitor', rolsuper => 'f', rolinherit => 't', + rolcreaterole => 'f', rolcreatedb => 'f', rolcanlogin => 'f', + rolreplication => 'f', rolbypassrls => 'f', rolconnlimit => '-1', + rolpassword => '_null_', rolvaliduntil => '_null_' }, +{ oid => '3374', oid_symbol => 'DEFAULT_ROLE_READ_ALL_SETTINGS', + rolname => 'pg_read_all_settings', rolsuper => 'f', rolinherit => 't', + rolcreaterole => 'f', rolcreatedb => 'f', rolcanlogin => 'f', + rolreplication => 'f', rolbypassrls => 'f', rolconnlimit => '-1', + rolpassword => '_null_', rolvaliduntil => '_null_' }, +{ oid => '3375', oid_symbol => 'DEFAULT_ROLE_READ_ALL_STATS', + rolname => 'pg_read_all_stats', rolsuper => 'f', rolinherit => 't', + rolcreaterole => 'f', rolcreatedb => 'f', rolcanlogin => 'f', + rolreplication => 'f', rolbypassrls => 'f', rolconnlimit => '-1', + rolpassword => '_null_', rolvaliduntil => '_null_' }, +{ oid => '3377', oid_symbol => 'DEFAULT_ROLE_STAT_SCAN_TABLES', + rolname => 'pg_stat_scan_tables', rolsuper => 'f', rolinherit => 't', + rolcreaterole => 'f', rolcreatedb => 'f', rolcanlogin => 'f', + rolreplication => 'f', rolbypassrls => 'f', rolconnlimit => '-1', + rolpassword => '_null_', rolvaliduntil => '_null_' }, +{ oid => '4569', oid_symbol => 'DEFAULT_ROLE_READ_SERVER_FILES', + rolname => 'pg_read_server_files', rolsuper => 'f', rolinherit => 't', + rolcreaterole => 'f', rolcreatedb => 'f', rolcanlogin => 'f', + rolreplication => 'f', rolbypassrls => 'f', rolconnlimit => '-1', + rolpassword => '_null_', rolvaliduntil => '_null_' }, +{ oid => '4570', oid_symbol => 'DEFAULT_ROLE_WRITE_SERVER_FILES', + rolname => 'pg_write_server_files', rolsuper => 'f', rolinherit => 't', + rolcreaterole => 'f', rolcreatedb => 'f', rolcanlogin => 'f', + rolreplication => 'f', rolbypassrls => 'f', rolconnlimit => '-1', + rolpassword => '_null_', rolvaliduntil => '_null_' }, +{ oid => '4571', oid_symbol => 'DEFAULT_ROLE_EXECUTE_SERVER_PROGRAM', + rolname => 'pg_execute_server_program', rolsuper => 'f', rolinherit => 't', + rolcreaterole => 'f', rolcreatedb => 'f', rolcanlogin => 'f', + rolreplication => 'f', rolbypassrls => 'f', rolconnlimit => '-1', + rolpassword => '_null_', rolvaliduntil => '_null_' }, +{ oid => '4200', oid_symbol => 'DEFAULT_ROLE_SIGNAL_BACKENDID', + rolname => 'pg_signal_backend', rolsuper => 'f', rolinherit => 't', + rolcreaterole => 'f', rolcreatedb => 'f', rolcanlogin => 'f', + rolreplication => 'f', rolbypassrls => 'f', rolconnlimit => '-1', + rolpassword => '_null_', rolvaliduntil => '_null_' }, + +] diff --git a/src/include/catalog/pg_authid.h b/src/include/catalog/pg_authid.h index 8e98513530..863ef65ebf 100644 --- a/src/include/catalog/pg_authid.h +++ b/src/include/catalog/pg_authid.h @@ -2,7 +2,6 @@ * * pg_authid.h * definition of the system "authorization identifier" relation (pg_authid) - * along with the relation's initial contents. * * pg_shadow and pg_group are now publicly accessible views on pg_authid. * @@ -13,8 +12,8 @@ * src/include/catalog/pg_authid.h * * NOTES - * the genbki.pl script reads this file and generates .bki - * information from the DATA() statements. + * The Catalog.pm module reads this file and derives schema + * information. * *------------------------------------------------------------------------- */ @@ -22,27 +21,14 @@ #define PG_AUTHID_H #include "catalog/genbki.h" - -/* - * The CATALOG definition has to refer to the type of rolvaliduntil as - * "timestamptz" (lower case) so that bootstrap mode recognizes it. But - * the C header files define this type as TimestampTz. Since the field is - * potentially-null and therefore can't be accessed directly from C code, - * there is no particular need for the C struct definition to show the - * field type as TimestampTz --- instead we just make it int. - */ -#define timestamptz int - +#include "catalog/pg_authid_d.h" /* ---------------- * pg_authid definition. cpp turns this into * typedef struct FormData_pg_authid * ---------------- */ -#define AuthIdRelationId 1260 -#define AuthIdRelation_Rowtype_Id 2842 - -CATALOG(pg_authid,1260) BKI_SHARED_RELATION BKI_ROWTYPE_OID(2842) BKI_SCHEMA_MACRO +CATALOG(pg_authid,1260,AuthIdRelationId) BKI_SHARED_RELATION BKI_ROWTYPE_OID(2842,AuthIdRelation_Rowtype_Id) BKI_SCHEMA_MACRO { NameData rolname; /* name of role */ bool rolsuper; /* read this field via superuser() only! */ @@ -61,9 +47,6 @@ CATALOG(pg_authid,1260) BKI_SHARED_RELATION BKI_ROWTYPE_OID(2842) BKI_SCHEMA_MAC #endif } FormData_pg_authid; -#undef timestamptz - - /* ---------------- * Form_pg_authid corresponds to a pointer to a tuple with * the format of pg_authid relation. @@ -71,50 +54,4 @@ CATALOG(pg_authid,1260) BKI_SHARED_RELATION BKI_ROWTYPE_OID(2842) BKI_SCHEMA_MAC */ typedef FormData_pg_authid *Form_pg_authid; -/* ---------------- - * compiler constants for pg_authid - * ---------------- - */ -#define Natts_pg_authid 11 -#define Anum_pg_authid_rolname 1 -#define Anum_pg_authid_rolsuper 2 -#define Anum_pg_authid_rolinherit 3 -#define Anum_pg_authid_rolcreaterole 4 -#define Anum_pg_authid_rolcreatedb 5 -#define Anum_pg_authid_rolcanlogin 6 -#define Anum_pg_authid_rolreplication 7 -#define Anum_pg_authid_rolbypassrls 8 -#define Anum_pg_authid_rolconnlimit 9 -#define Anum_pg_authid_rolpassword 10 -#define Anum_pg_authid_rolvaliduntil 11 - -/* ---------------- - * initial contents of pg_authid - * - * 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. - * ---------------- - */ -DATA(insert OID = 10 ( "POSTGRES" t t t t t t t -1 _null_ _null_)); -#define BOOTSTRAP_SUPERUSERID 10 -DATA(insert OID = 3373 ( pg_monitor f t f f f f f -1 _null_ _null_)); -#define DEFAULT_ROLE_MONITOR 3373 -DATA(insert OID = 3374 ( pg_read_all_settings f t f f f f f -1 _null_ _null_)); -#define DEFAULT_ROLE_READ_ALL_SETTINGS 3374 -DATA(insert OID = 3375 ( pg_read_all_stats f t f f f f f -1 _null_ _null_)); -#define DEFAULT_ROLE_READ_ALL_STATS 3375 -DATA(insert OID = 3377 ( pg_stat_scan_tables f t f f f f f -1 _null_ _null_)); -#define DEFAULT_ROLE_STAT_SCAN_TABLES 3377 -DATA(insert OID = 4569 ( pg_read_server_files f t f f f f f -1 _null_ _null_)); -#define DEFAULT_ROLE_READ_SERVER_FILES 4569 -DATA(insert OID = 4570 ( pg_write_server_files f t f f f f f -1 _null_ _null_)); -#define DEFAULT_ROLE_WRITE_SERVER_FILES 4570 -DATA(insert OID = 4571 ( pg_execute_server_program f t f f f f f -1 _null_ _null_)); -#define DEFAULT_ROLE_EXECUTE_SERVER_PROGRAM 4571 -DATA(insert OID = 4200 ( pg_signal_backend f t f f f f f -1 _null_ _null_)); -#define DEFAULT_ROLE_SIGNAL_BACKENDID 4200 - #endif /* PG_AUTHID_H */ diff --git a/src/include/catalog/pg_cast.dat b/src/include/catalog/pg_cast.dat new file mode 100644 index 0000000000..c335a7686d --- /dev/null +++ b/src/include/catalog/pg_cast.dat @@ -0,0 +1,535 @@ +#---------------------------------------------------------------------- +# +# pg_cast.dat +# Initial contents of the pg_cast system relation. +# +# Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group +# Portions Copyright (c) 1994, Regents of the University of California +# +# src/include/catalog/pg_cast.dat +# +#---------------------------------------------------------------------- + +[ + +# Note: this table has OIDs, but we don't bother to assign them manually, +# since nothing needs to know the specific OID of any built-in cast. + +# Numeric category: implicit casts are allowed in the direction +# int2->int4->int8->numeric->float4->float8, while casts in the +# reverse direction are assignment-only. +{ castsource => 'int8', casttarget => 'int2', castfunc => 'int2(int8)', + castcontext => 'a', castmethod => 'f' }, +{ castsource => 'int8', casttarget => 'int4', castfunc => 'int4(int8)', + castcontext => 'a', castmethod => 'f' }, +{ castsource => 'int8', casttarget => 'float4', castfunc => 'float4(int8)', + castcontext => 'i', castmethod => 'f' }, +{ castsource => 'int8', casttarget => 'float8', castfunc => 'float8(int8)', + castcontext => 'i', castmethod => 'f' }, +{ castsource => 'int8', casttarget => 'numeric', castfunc => 'numeric(int8)', + castcontext => 'i', castmethod => 'f' }, +{ castsource => 'int2', casttarget => 'int8', castfunc => 'int8(int2)', + castcontext => 'i', castmethod => 'f' }, +{ castsource => 'int2', casttarget => 'int4', castfunc => 'int4(int2)', + castcontext => 'i', castmethod => 'f' }, +{ castsource => 'int2', casttarget => 'float4', castfunc => 'float4(int2)', + castcontext => 'i', castmethod => 'f' }, +{ castsource => 'int2', casttarget => 'float8', castfunc => 'float8(int2)', + castcontext => 'i', castmethod => 'f' }, +{ castsource => 'int2', casttarget => 'numeric', castfunc => 'numeric(int2)', + castcontext => 'i', castmethod => 'f' }, +{ castsource => 'int4', casttarget => 'int8', castfunc => 'int8(int4)', + castcontext => 'i', castmethod => 'f' }, +{ castsource => 'int4', casttarget => 'int2', castfunc => 'int2(int4)', + castcontext => 'a', castmethod => 'f' }, +{ castsource => 'int4', casttarget => 'float4', castfunc => 'float4(int4)', + castcontext => 'i', castmethod => 'f' }, +{ castsource => 'int4', casttarget => 'float8', castfunc => 'float8(int4)', + castcontext => 'i', castmethod => 'f' }, +{ castsource => 'int4', casttarget => 'numeric', castfunc => 'numeric(int4)', + castcontext => 'i', castmethod => 'f' }, +{ castsource => 'float4', casttarget => 'int8', castfunc => 'int8(float4)', + castcontext => 'a', castmethod => 'f' }, +{ castsource => 'float4', casttarget => 'int2', castfunc => 'int2(float4)', + castcontext => 'a', castmethod => 'f' }, +{ castsource => 'float4', casttarget => 'int4', castfunc => 'int4(float4)', + castcontext => 'a', castmethod => 'f' }, +{ castsource => 'float4', casttarget => 'float8', castfunc => 'float8(float4)', + castcontext => 'i', castmethod => 'f' }, +{ castsource => 'float4', casttarget => 'numeric', + castfunc => 'numeric(float4)', castcontext => 'a', castmethod => 'f' }, +{ castsource => 'float8', casttarget => 'int8', castfunc => 'int8(float8)', + castcontext => 'a', castmethod => 'f' }, +{ castsource => 'float8', casttarget => 'int2', castfunc => 'int2(float8)', + castcontext => 'a', castmethod => 'f' }, +{ castsource => 'float8', casttarget => 'int4', castfunc => 'int4(float8)', + castcontext => 'a', castmethod => 'f' }, +{ castsource => 'float8', casttarget => 'float4', castfunc => 'float4(float8)', + castcontext => 'a', castmethod => 'f' }, +{ castsource => 'float8', casttarget => 'numeric', + castfunc => 'numeric(float8)', castcontext => 'a', castmethod => 'f' }, +{ castsource => 'numeric', casttarget => 'int8', castfunc => 'int8(numeric)', + castcontext => 'a', castmethod => 'f' }, +{ castsource => 'numeric', casttarget => 'int2', castfunc => 'int2(numeric)', + castcontext => 'a', castmethod => 'f' }, +{ castsource => 'numeric', casttarget => 'int4', castfunc => 'int4(numeric)', + castcontext => 'a', castmethod => 'f' }, +{ castsource => 'numeric', casttarget => 'float4', + castfunc => 'float4(numeric)', castcontext => 'i', castmethod => 'f' }, +{ castsource => 'numeric', casttarget => 'float8', + castfunc => 'float8(numeric)', castcontext => 'i', castmethod => 'f' }, +{ castsource => 'money', casttarget => 'numeric', castfunc => 'numeric(money)', + castcontext => 'a', castmethod => 'f' }, +{ castsource => 'numeric', casttarget => 'money', castfunc => 'money(numeric)', + castcontext => 'a', castmethod => 'f' }, +{ castsource => 'int4', casttarget => 'money', castfunc => 'money(int4)', + castcontext => 'a', castmethod => 'f' }, +{ castsource => 'int8', casttarget => 'money', castfunc => 'money(int8)', + castcontext => 'a', castmethod => 'f' }, + +# Allow explicit coercions between int4 and bool +{ castsource => 'int4', casttarget => 'bool', castfunc => 'bool(int4)', + castcontext => 'e', castmethod => 'f' }, +{ castsource => 'bool', casttarget => 'int4', castfunc => 'int4(bool)', + castcontext => 'e', castmethod => 'f' }, + +# OID category: allow implicit conversion from any integral type (including +# int8, to support OID literals > 2G) to OID, as well as assignment coercion +# from OID to int4 or int8. Similarly for each OID-alias type. Also allow +# implicit coercions between OID and each OID-alias type, as well as +# regproc<->regprocedure and regoper<->regoperator. (Other coercions +# 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 => 'int8', casttarget => 'oid', castfunc => 'oid', + castcontext => 'i', castmethod => 'f' }, +{ castsource => 'int2', casttarget => 'oid', castfunc => 'int4(int2)', + castcontext => 'i', castmethod => 'f' }, +{ castsource => 'int4', casttarget => 'oid', castfunc => '0', + castcontext => 'i', castmethod => 'b' }, +{ castsource => 'oid', casttarget => 'int8', castfunc => 'int8(oid)', + castcontext => 'a', castmethod => 'f' }, +{ castsource => 'oid', casttarget => 'int4', castfunc => '0', + castcontext => 'a', castmethod => 'b' }, +{ castsource => 'oid', casttarget => 'regproc', castfunc => '0', + castcontext => 'i', castmethod => 'b' }, +{ castsource => 'regproc', casttarget => 'oid', castfunc => '0', + castcontext => 'i', castmethod => 'b' }, +{ castsource => 'int8', casttarget => 'regproc', castfunc => 'oid', + castcontext => 'i', castmethod => 'f' }, +{ castsource => 'int2', casttarget => 'regproc', castfunc => 'int4(int2)', + castcontext => 'i', castmethod => 'f' }, +{ castsource => 'int4', casttarget => 'regproc', castfunc => '0', + castcontext => 'i', castmethod => 'b' }, +{ castsource => 'regproc', casttarget => 'int8', castfunc => 'int8(oid)', + castcontext => 'a', castmethod => 'f' }, +{ castsource => 'regproc', casttarget => 'int4', castfunc => '0', + castcontext => 'a', castmethod => 'b' }, +{ castsource => 'regproc', casttarget => 'regprocedure', castfunc => '0', + castcontext => 'i', castmethod => 'b' }, +{ castsource => 'regprocedure', casttarget => 'regproc', castfunc => '0', + castcontext => 'i', castmethod => 'b' }, +{ castsource => 'oid', casttarget => 'regprocedure', castfunc => '0', + castcontext => 'i', castmethod => 'b' }, +{ castsource => 'regprocedure', casttarget => 'oid', castfunc => '0', + castcontext => 'i', castmethod => 'b' }, +{ castsource => 'int8', casttarget => 'regprocedure', castfunc => 'oid', + castcontext => 'i', castmethod => 'f' }, +{ castsource => 'int2', casttarget => 'regprocedure', castfunc => 'int4(int2)', + castcontext => 'i', castmethod => 'f' }, +{ castsource => 'int4', casttarget => 'regprocedure', castfunc => '0', + castcontext => 'i', castmethod => 'b' }, +{ castsource => 'regprocedure', casttarget => 'int8', castfunc => 'int8(oid)', + castcontext => 'a', castmethod => 'f' }, +{ castsource => 'regprocedure', casttarget => 'int4', castfunc => '0', + castcontext => 'a', castmethod => 'b' }, +{ castsource => 'oid', casttarget => 'regoper', castfunc => '0', + castcontext => 'i', castmethod => 'b' }, +{ castsource => 'regoper', casttarget => 'oid', castfunc => '0', + castcontext => 'i', castmethod => 'b' }, +{ castsource => 'int8', casttarget => 'regoper', castfunc => 'oid', + castcontext => 'i', castmethod => 'f' }, +{ castsource => 'int2', casttarget => 'regoper', castfunc => 'int4(int2)', + castcontext => 'i', castmethod => 'f' }, +{ castsource => 'int4', casttarget => 'regoper', castfunc => '0', + castcontext => 'i', castmethod => 'b' }, +{ castsource => 'regoper', casttarget => 'int8', castfunc => 'int8(oid)', + castcontext => 'a', castmethod => 'f' }, +{ castsource => 'regoper', casttarget => 'int4', castfunc => '0', + castcontext => 'a', castmethod => 'b' }, +{ castsource => 'regoper', casttarget => 'regoperator', castfunc => '0', + castcontext => 'i', castmethod => 'b' }, +{ castsource => 'regoperator', casttarget => 'regoper', castfunc => '0', + castcontext => 'i', castmethod => 'b' }, +{ castsource => 'oid', casttarget => 'regoperator', castfunc => '0', + castcontext => 'i', castmethod => 'b' }, +{ castsource => 'regoperator', casttarget => 'oid', castfunc => '0', + castcontext => 'i', castmethod => 'b' }, +{ castsource => 'int8', casttarget => 'regoperator', castfunc => 'oid', + castcontext => 'i', castmethod => 'f' }, +{ castsource => 'int2', casttarget => 'regoperator', castfunc => 'int4(int2)', + castcontext => 'i', castmethod => 'f' }, +{ castsource => 'int4', casttarget => 'regoperator', castfunc => '0', + castcontext => 'i', castmethod => 'b' }, +{ castsource => 'regoperator', casttarget => 'int8', castfunc => 'int8(oid)', + castcontext => 'a', castmethod => 'f' }, +{ castsource => 'regoperator', casttarget => 'int4', castfunc => '0', + castcontext => 'a', castmethod => 'b' }, +{ castsource => 'oid', casttarget => 'regclass', castfunc => '0', + castcontext => 'i', castmethod => 'b' }, +{ castsource => 'regclass', casttarget => 'oid', castfunc => '0', + castcontext => 'i', castmethod => 'b' }, +{ castsource => 'int8', casttarget => 'regclass', castfunc => 'oid', + castcontext => 'i', castmethod => 'f' }, +{ castsource => 'int2', casttarget => 'regclass', castfunc => 'int4(int2)', + castcontext => 'i', castmethod => 'f' }, +{ castsource => 'int4', casttarget => 'regclass', castfunc => '0', + castcontext => 'i', castmethod => 'b' }, +{ castsource => 'regclass', casttarget => 'int8', castfunc => 'int8(oid)', + castcontext => 'a', castmethod => 'f' }, +{ castsource => 'regclass', casttarget => 'int4', castfunc => '0', + castcontext => 'a', castmethod => 'b' }, +{ castsource => 'oid', casttarget => 'regtype', castfunc => '0', + castcontext => 'i', castmethod => 'b' }, +{ castsource => 'regtype', casttarget => 'oid', castfunc => '0', + castcontext => 'i', castmethod => 'b' }, +{ castsource => 'int8', casttarget => 'regtype', castfunc => 'oid', + castcontext => 'i', castmethod => 'f' }, +{ castsource => 'int2', casttarget => 'regtype', castfunc => 'int4(int2)', + castcontext => 'i', castmethod => 'f' }, +{ castsource => 'int4', casttarget => 'regtype', castfunc => '0', + castcontext => 'i', castmethod => 'b' }, +{ castsource => 'regtype', casttarget => 'int8', castfunc => 'int8(oid)', + castcontext => 'a', castmethod => 'f' }, +{ castsource => 'regtype', casttarget => 'int4', castfunc => '0', + castcontext => 'a', castmethod => 'b' }, +{ castsource => 'oid', casttarget => 'regconfig', castfunc => '0', + castcontext => 'i', castmethod => 'b' }, +{ castsource => 'regconfig', casttarget => 'oid', castfunc => '0', + castcontext => 'i', castmethod => 'b' }, +{ castsource => 'int8', casttarget => 'regconfig', castfunc => 'oid', + castcontext => 'i', castmethod => 'f' }, +{ castsource => 'int2', casttarget => 'regconfig', castfunc => 'int4(int2)', + castcontext => 'i', castmethod => 'f' }, +{ castsource => 'int4', casttarget => 'regconfig', castfunc => '0', + castcontext => 'i', castmethod => 'b' }, +{ castsource => 'regconfig', casttarget => 'int8', castfunc => 'int8(oid)', + castcontext => 'a', castmethod => 'f' }, +{ castsource => 'regconfig', casttarget => 'int4', castfunc => '0', + castcontext => 'a', castmethod => 'b' }, +{ castsource => 'oid', casttarget => 'regdictionary', castfunc => '0', + castcontext => 'i', castmethod => 'b' }, +{ castsource => 'regdictionary', casttarget => 'oid', castfunc => '0', + castcontext => 'i', castmethod => 'b' }, +{ castsource => 'int8', casttarget => 'regdictionary', castfunc => 'oid', + castcontext => 'i', castmethod => 'f' }, +{ castsource => 'int2', casttarget => 'regdictionary', castfunc => 'int4(int2)', + castcontext => 'i', castmethod => 'f' }, +{ castsource => 'int4', casttarget => 'regdictionary', castfunc => '0', + castcontext => 'i', castmethod => 'b' }, +{ castsource => 'regdictionary', casttarget => 'int8', castfunc => 'int8(oid)', + castcontext => 'a', castmethod => 'f' }, +{ castsource => 'regdictionary', casttarget => 'int4', castfunc => '0', + castcontext => 'a', castmethod => 'b' }, +{ castsource => 'text', casttarget => 'regclass', castfunc => 'regclass', + castcontext => 'i', castmethod => 'f' }, +{ castsource => 'varchar', casttarget => 'regclass', castfunc => 'regclass', + castcontext => 'i', castmethod => 'f' }, +{ castsource => 'oid', casttarget => 'regrole', castfunc => '0', + castcontext => 'i', castmethod => 'b' }, +{ castsource => 'regrole', casttarget => 'oid', castfunc => '0', + castcontext => 'i', castmethod => 'b' }, +{ castsource => 'int8', casttarget => 'regrole', castfunc => 'oid', + castcontext => 'i', castmethod => 'f' }, +{ castsource => 'int2', casttarget => 'regrole', castfunc => 'int4(int2)', + castcontext => 'i', castmethod => 'f' }, +{ castsource => 'int4', casttarget => 'regrole', castfunc => '0', + castcontext => 'i', castmethod => 'b' }, +{ castsource => 'regrole', casttarget => 'int8', castfunc => 'int8(oid)', + castcontext => 'a', castmethod => 'f' }, +{ castsource => 'regrole', casttarget => 'int4', castfunc => '0', + castcontext => 'a', castmethod => 'b' }, +{ castsource => 'oid', casttarget => 'regnamespace', castfunc => '0', + castcontext => 'i', castmethod => 'b' }, +{ castsource => 'regnamespace', casttarget => 'oid', castfunc => '0', + castcontext => 'i', castmethod => 'b' }, +{ castsource => 'int8', casttarget => 'regnamespace', castfunc => 'oid', + castcontext => 'i', castmethod => 'f' }, +{ castsource => 'int2', casttarget => 'regnamespace', castfunc => 'int4(int2)', + castcontext => 'i', castmethod => 'f' }, +{ castsource => 'int4', casttarget => 'regnamespace', castfunc => '0', + castcontext => 'i', castmethod => 'b' }, +{ castsource => 'regnamespace', casttarget => 'int8', castfunc => 'int8(oid)', + castcontext => 'a', castmethod => 'f' }, +{ castsource => 'regnamespace', casttarget => 'int4', castfunc => '0', + castcontext => 'a', castmethod => 'b' }, + +# String category +{ castsource => 'text', casttarget => 'bpchar', castfunc => '0', + castcontext => 'i', castmethod => 'b' }, +{ castsource => 'text', casttarget => 'varchar', castfunc => '0', + castcontext => 'i', castmethod => 'b' }, +{ castsource => 'bpchar', casttarget => 'text', castfunc => 'text(bpchar)', + castcontext => 'i', castmethod => 'f' }, +{ castsource => 'bpchar', casttarget => 'varchar', castfunc => 'text(bpchar)', + castcontext => 'i', castmethod => 'f' }, +{ castsource => 'varchar', casttarget => 'text', castfunc => '0', + castcontext => 'i', castmethod => 'b' }, +{ castsource => 'varchar', casttarget => 'bpchar', castfunc => '0', + castcontext => 'i', castmethod => 'b' }, +{ castsource => 'char', casttarget => 'text', castfunc => 'text(char)', + castcontext => 'i', castmethod => 'f' }, +{ castsource => 'char', casttarget => 'bpchar', castfunc => 'bpchar(char)', + castcontext => 'a', castmethod => 'f' }, +{ castsource => 'char', casttarget => 'varchar', castfunc => 'text(char)', + castcontext => 'a', castmethod => 'f' }, +{ castsource => 'name', casttarget => 'text', castfunc => 'text(name)', + castcontext => 'i', castmethod => 'f' }, +{ castsource => 'name', casttarget => 'bpchar', castfunc => 'bpchar(name)', + castcontext => 'a', castmethod => 'f' }, +{ castsource => 'name', casttarget => 'varchar', castfunc => 'varchar(name)', + castcontext => 'a', castmethod => 'f' }, +{ castsource => 'text', casttarget => 'char', castfunc => 'char(text)', + castcontext => 'a', castmethod => 'f' }, +{ castsource => 'bpchar', casttarget => 'char', castfunc => 'char(text)', + castcontext => 'a', castmethod => 'f' }, +{ castsource => 'varchar', casttarget => 'char', castfunc => 'char(text)', + castcontext => 'a', castmethod => 'f' }, +{ castsource => 'text', casttarget => 'name', castfunc => 'name(text)', + castcontext => 'i', castmethod => 'f' }, +{ castsource => 'bpchar', casttarget => 'name', castfunc => 'name(bpchar)', + castcontext => 'i', castmethod => 'f' }, +{ castsource => 'varchar', casttarget => 'name', castfunc => 'name(varchar)', + castcontext => 'i', castmethod => 'f' }, + +# Allow explicit coercions between int4 and "char" +{ castsource => 'char', casttarget => 'int4', castfunc => 'int4(char)', + castcontext => 'e', castmethod => 'f' }, +{ castsource => 'int4', casttarget => 'char', castfunc => 'char(int4)', + castcontext => 'e', castmethod => 'f' }, + +# pg_node_tree can be coerced to, but not from, text +{ castsource => 'pg_node_tree', casttarget => 'text', castfunc => '0', + castcontext => 'i', castmethod => 'b' }, + +# pg_ndistinct can be coerced to, but not from, bytea and text +{ castsource => 'pg_ndistinct', casttarget => 'bytea', castfunc => '0', + castcontext => 'i', castmethod => 'b' }, +{ castsource => 'pg_ndistinct', casttarget => 'text', castfunc => '0', + castcontext => 'i', castmethod => 'i' }, + +# pg_dependencies can be coerced to, but not from, bytea and text +{ castsource => 'pg_dependencies', casttarget => 'bytea', castfunc => '0', + castcontext => 'i', castmethod => 'b' }, +{ castsource => 'pg_dependencies', casttarget => 'text', castfunc => '0', + castcontext => 'i', castmethod => 'i' }, + +# Datetime category +{ castsource => 'abstime', casttarget => 'date', castfunc => 'date(abstime)', + castcontext => 'a', castmethod => 'f' }, +{ castsource => 'abstime', casttarget => 'time', castfunc => 'time(abstime)', + castcontext => 'a', castmethod => 'f' }, +{ castsource => 'abstime', casttarget => 'timestamp', + castfunc => 'timestamp(abstime)', castcontext => 'i', castmethod => 'f' }, +{ castsource => 'abstime', casttarget => 'timestamptz', + castfunc => 'timestamptz(abstime)', castcontext => 'i', castmethod => 'f' }, +{ castsource => 'reltime', casttarget => 'interval', + castfunc => 'interval(reltime)', castcontext => 'i', castmethod => 'f' }, +{ castsource => 'date', casttarget => 'timestamp', + castfunc => 'timestamp(date)', castcontext => 'i', castmethod => 'f' }, +{ castsource => 'date', casttarget => 'timestamptz', + castfunc => 'timestamptz(date)', castcontext => 'i', castmethod => 'f' }, +{ castsource => 'time', casttarget => 'interval', castfunc => 'interval(time)', + castcontext => 'i', castmethod => 'f' }, +{ castsource => 'time', casttarget => 'timetz', castfunc => 'timetz(time)', + castcontext => 'i', castmethod => 'f' }, +{ castsource => 'timestamp', casttarget => 'abstime', + castfunc => 'abstime(timestamp)', castcontext => 'a', castmethod => 'f' }, +{ castsource => 'timestamp', casttarget => 'date', + castfunc => 'date(timestamp)', castcontext => 'a', castmethod => 'f' }, +{ castsource => 'timestamp', casttarget => 'time', + castfunc => 'time(timestamp)', castcontext => 'a', castmethod => 'f' }, +{ castsource => 'timestamp', casttarget => 'timestamptz', + castfunc => 'timestamptz(timestamp)', castcontext => 'i', castmethod => 'f' }, +{ castsource => 'timestamptz', casttarget => 'abstime', + castfunc => 'abstime(timestamptz)', castcontext => 'a', castmethod => 'f' }, +{ castsource => 'timestamptz', casttarget => 'date', + castfunc => 'date(timestamptz)', castcontext => 'a', castmethod => 'f' }, +{ castsource => 'timestamptz', casttarget => 'time', + castfunc => 'time(timestamptz)', castcontext => 'a', castmethod => 'f' }, +{ castsource => 'timestamptz', casttarget => 'timestamp', + castfunc => 'timestamp(timestamptz)', castcontext => 'a', castmethod => 'f' }, +{ castsource => 'timestamptz', casttarget => 'timetz', + castfunc => 'timetz(timestamptz)', castcontext => 'a', castmethod => 'f' }, +{ castsource => 'interval', casttarget => 'reltime', castfunc => 'reltime', + castcontext => 'a', castmethod => 'f' }, +{ castsource => 'interval', casttarget => 'time', castfunc => 'time(interval)', + castcontext => 'a', castmethod => 'f' }, +{ castsource => 'timetz', casttarget => 'time', castfunc => 'time(timetz)', + castcontext => 'a', castmethod => 'f' }, + +# Cross-category casts between int4 and abstime, reltime +{ castsource => 'int4', casttarget => 'abstime', castfunc => '0', + castcontext => 'e', castmethod => 'b' }, +{ castsource => 'abstime', casttarget => 'int4', castfunc => '0', + castcontext => 'e', castmethod => 'b' }, +{ castsource => 'int4', casttarget => 'reltime', castfunc => '0', + castcontext => 'e', castmethod => 'b' }, +{ castsource => 'reltime', casttarget => 'int4', castfunc => '0', + castcontext => 'e', castmethod => 'b' }, + +# Geometric category +{ castsource => 'point', casttarget => 'box', castfunc => 'box(point)', + castcontext => 'a', castmethod => 'f' }, +{ castsource => 'lseg', casttarget => 'point', castfunc => 'point(lseg)', + castcontext => 'e', castmethod => 'f' }, +{ castsource => 'path', casttarget => 'point', castfunc => 'point(path)', + castcontext => 'e', castmethod => 'f' }, +{ castsource => 'path', casttarget => 'polygon', castfunc => 'polygon(path)', + castcontext => 'a', castmethod => 'f' }, +{ castsource => 'box', casttarget => 'point', castfunc => 'point(box)', + castcontext => 'e', castmethod => 'f' }, +{ castsource => 'box', casttarget => 'lseg', castfunc => 'lseg(box)', + castcontext => 'e', castmethod => 'f' }, +{ castsource => 'box', casttarget => 'polygon', castfunc => 'polygon(box)', + castcontext => 'a', castmethod => 'f' }, +{ castsource => 'box', casttarget => 'circle', castfunc => 'circle(box)', + castcontext => 'e', castmethod => 'f' }, +{ castsource => 'polygon', casttarget => 'point', castfunc => 'point(polygon)', + castcontext => 'e', castmethod => 'f' }, +{ castsource => 'polygon', casttarget => 'path', castfunc => 'path', + castcontext => 'a', castmethod => 'f' }, +{ castsource => 'polygon', casttarget => 'box', castfunc => 'box(polygon)', + castcontext => 'e', castmethod => 'f' }, +{ castsource => 'polygon', casttarget => 'circle', + castfunc => 'circle(polygon)', castcontext => 'e', castmethod => 'f' }, +{ castsource => 'circle', casttarget => 'point', castfunc => 'point(circle)', + castcontext => 'e', castmethod => 'f' }, +{ castsource => 'circle', casttarget => 'box', castfunc => 'box(circle)', + castcontext => 'e', castmethod => 'f' }, +{ castsource => 'circle', casttarget => 'polygon', + castfunc => 'polygon(circle)', castcontext => 'e', castmethod => 'f' }, + +# MAC address category +{ castsource => 'macaddr', casttarget => 'macaddr8', castfunc => 'macaddr8', + castcontext => 'i', castmethod => 'f' }, +{ castsource => 'macaddr8', casttarget => 'macaddr', castfunc => 'macaddr', + castcontext => 'i', castmethod => 'f' }, + +# INET category +{ castsource => 'cidr', casttarget => 'inet', castfunc => '0', + castcontext => 'i', castmethod => 'b' }, +{ castsource => 'inet', casttarget => 'cidr', castfunc => 'cidr', + castcontext => 'a', castmethod => 'f' }, + +# BitString category +{ castsource => 'bit', casttarget => 'varbit', castfunc => '0', + castcontext => 'i', castmethod => 'b' }, +{ castsource => 'varbit', casttarget => 'bit', castfunc => '0', + castcontext => 'i', castmethod => 'b' }, + +# Cross-category casts between bit and int4, int8 +{ castsource => 'int8', casttarget => 'bit', castfunc => 'bit(int8,int4)', + castcontext => 'e', castmethod => 'f' }, +{ castsource => 'int4', casttarget => 'bit', castfunc => 'bit(int4,int4)', + castcontext => 'e', castmethod => 'f' }, +{ castsource => 'bit', casttarget => 'int8', castfunc => 'int8(bit)', + castcontext => 'e', castmethod => 'f' }, +{ castsource => 'bit', casttarget => 'int4', castfunc => 'int4(bit)', + castcontext => 'e', castmethod => 'f' }, + +# Cross-category casts to and from TEXT +# We need entries here only for a few specialized cases where the behavior +# of the cast function differs from the datatype's I/O functions. Otherwise, +# parse_coerce.c will generate CoerceViaIO operations without any prompting. +# Note that the castcontext values specified here should be no stronger than +# 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 => 'cidr', casttarget => 'text', castfunc => 'text(inet)', + castcontext => 'a', castmethod => 'f' }, +{ castsource => 'inet', casttarget => 'text', castfunc => 'text(inet)', + castcontext => 'a', castmethod => 'f' }, +{ castsource => 'bool', casttarget => 'text', castfunc => 'text(bool)', + castcontext => 'a', castmethod => 'f' }, +{ castsource => 'xml', casttarget => 'text', castfunc => '0', + castcontext => 'a', castmethod => 'b' }, +{ castsource => 'text', casttarget => 'xml', castfunc => 'xml', + castcontext => 'e', castmethod => 'f' }, + +# Cross-category casts to and from VARCHAR +# We support all the same casts as for TEXT. +{ castsource => 'cidr', casttarget => 'varchar', castfunc => 'text(inet)', + castcontext => 'a', castmethod => 'f' }, +{ castsource => 'inet', casttarget => 'varchar', castfunc => 'text(inet)', + castcontext => 'a', castmethod => 'f' }, +{ castsource => 'bool', casttarget => 'varchar', castfunc => 'text(bool)', + castcontext => 'a', castmethod => 'f' }, +{ castsource => 'xml', casttarget => 'varchar', castfunc => '0', + castcontext => 'a', castmethod => 'b' }, +{ castsource => 'varchar', casttarget => 'xml', castfunc => 'xml', + castcontext => 'e', castmethod => 'f' }, + +# Cross-category casts to and from BPCHAR +# We support all the same casts as for TEXT. +{ castsource => 'cidr', casttarget => 'bpchar', castfunc => 'text(inet)', + castcontext => 'a', castmethod => 'f' }, +{ castsource => 'inet', casttarget => 'bpchar', castfunc => 'text(inet)', + castcontext => 'a', castmethod => 'f' }, +{ castsource => 'bool', casttarget => 'bpchar', castfunc => 'text(bool)', + castcontext => 'a', castmethod => 'f' }, +{ castsource => 'xml', casttarget => 'bpchar', castfunc => '0', + castcontext => 'a', castmethod => 'b' }, +{ castsource => 'bpchar', casttarget => 'xml', castfunc => 'xml', + castcontext => 'e', castmethod => 'f' }, + +# Length-coercion functions +{ castsource => 'bpchar', casttarget => 'bpchar', + castfunc => 'bpchar(bpchar,int4,bool)', castcontext => 'i', + castmethod => 'f' }, +{ castsource => 'varchar', casttarget => 'varchar', + castfunc => 'varchar(varchar,int4,bool)', castcontext => 'i', + castmethod => 'f' }, +{ castsource => 'time', casttarget => 'time', castfunc => 'time(time,int4)', + castcontext => 'i', castmethod => 'f' }, +{ castsource => 'timestamp', casttarget => 'timestamp', + castfunc => 'timestamp(timestamp,int4)', castcontext => 'i', + castmethod => 'f' }, +{ castsource => 'timestamptz', casttarget => 'timestamptz', + castfunc => 'timestamptz(timestamptz,int4)', castcontext => 'i', + castmethod => 'f' }, +{ castsource => 'interval', casttarget => 'interval', + castfunc => 'interval(interval,int4)', castcontext => 'i', + castmethod => 'f' }, +{ castsource => 'timetz', casttarget => 'timetz', + castfunc => 'timetz(timetz,int4)', castcontext => 'i', castmethod => 'f' }, +{ castsource => 'bit', casttarget => 'bit', castfunc => 'bit(bit,int4,bool)', + castcontext => 'i', castmethod => 'f' }, +{ castsource => 'varbit', casttarget => 'varbit', castfunc => 'varbit', + castcontext => 'i', castmethod => 'f' }, +{ castsource => 'numeric', casttarget => 'numeric', + castfunc => 'numeric(numeric,int4)', castcontext => 'i', castmethod => 'f' }, + +# json to/from jsonb +{ castsource => 'json', casttarget => 'jsonb', castfunc => '0', + castcontext => 'a', castmethod => 'i' }, +{ castsource => 'jsonb', casttarget => 'json', castfunc => '0', + castcontext => 'a', castmethod => 'i' }, + +# jsonb to numeric and bool types +{ castsource => 'jsonb', casttarget => 'bool', castfunc => 'bool(jsonb)', + castcontext => 'e', castmethod => 'f' }, +{ castsource => 'jsonb', casttarget => 'numeric', castfunc => 'numeric(jsonb)', + castcontext => 'e', castmethod => 'f' }, +{ castsource => 'jsonb', casttarget => 'int2', castfunc => 'int2(jsonb)', + castcontext => 'e', castmethod => 'f' }, +{ castsource => 'jsonb', casttarget => 'int4', castfunc => 'int4(jsonb)', + castcontext => 'e', castmethod => 'f' }, +{ castsource => 'jsonb', casttarget => 'int8', castfunc => 'int8(jsonb)', + castcontext => 'e', castmethod => 'f' }, +{ castsource => 'jsonb', casttarget => 'float4', castfunc => 'float4(jsonb)', + castcontext => 'e', castmethod => 'f' }, +{ castsource => 'jsonb', casttarget => 'float8', castfunc => 'float8(jsonb)', + castcontext => 'e', castmethod => 'f' }, + +] diff --git a/src/include/catalog/pg_cast.h b/src/include/catalog/pg_cast.h index c47fb5bd0d..10c796ab02 100644 --- a/src/include/catalog/pg_cast.h +++ b/src/include/catalog/pg_cast.h @@ -2,7 +2,6 @@ * * pg_cast.h * definition of the system "type casts" relation (pg_cast) - * along with the relation's initial contents. * * As of Postgres 8.0, pg_cast describes not only type coercion functions * but also length coercion functions. @@ -13,8 +12,8 @@ * src/include/catalog/pg_cast.h * * NOTES - * the genbki.pl script reads this file and generates .bki - * information from the DATA() statements. + * The Catalog.pm module reads this file and derives schema + * information. * *------------------------------------------------------------------------- */ @@ -22,25 +21,40 @@ #define PG_CAST_H #include "catalog/genbki.h" +#include "catalog/pg_cast_d.h" /* ---------------- * pg_cast definition. cpp turns this into * typedef struct FormData_pg_cast * ---------------- */ -#define CastRelationId 2605 - -CATALOG(pg_cast,2605) +CATALOG(pg_cast,2605,CastRelationId) { - Oid castsource; /* source datatype for cast */ - Oid casttarget; /* destination datatype for cast */ - Oid castfunc; /* cast function; 0 = binary coercible */ - char castcontext; /* contexts in which cast can be used */ - char castmethod; /* cast method */ + /* source datatype for cast */ + Oid castsource BKI_LOOKUP(pg_type); + + /* destination datatype for cast */ + Oid casttarget BKI_LOOKUP(pg_type); + + /* cast function; 0 = binary coercible */ + Oid castfunc BKI_LOOKUP(pg_proc); + + /* contexts in which cast can be used */ + char castcontext; + + /* cast method */ + char castmethod; } FormData_pg_cast; +/* ---------------- + * Form_pg_cast corresponds to a pointer to a tuple with + * the format of pg_cast relation. + * ---------------- + */ typedef FormData_pg_cast *Form_pg_cast; +#ifdef EXPOSE_TO_CLIENT_CODE + /* * The allowable values for pg_cast.castcontext are specified by this enum. * Since castcontext is stored as a "char", we use ASCII codes for human @@ -69,336 +83,6 @@ typedef enum CoercionMethod COERCION_METHOD_INOUT = 'i' /* use input/output functions */ } CoercionMethod; - -/* ---------------- - * compiler constants for pg_cast - * ---------------- - */ -#define Natts_pg_cast 5 -#define Anum_pg_cast_castsource 1 -#define Anum_pg_cast_casttarget 2 -#define Anum_pg_cast_castfunc 3 -#define Anum_pg_cast_castcontext 4 -#define Anum_pg_cast_castmethod 5 - -/* ---------------- - * initial contents of pg_cast - * - * Note: this table has OIDs, but we don't bother to assign them manually, - * since nothing needs to know the specific OID of any built-in cast. - * ---------------- - */ - -/* - * Numeric category: implicit casts are allowed in the direction - * int2->int4->int8->numeric->float4->float8, while casts in the - * reverse direction are assignment-only. - */ -DATA(insert ( 20 21 714 a f )); -DATA(insert ( 20 23 480 a f )); -DATA(insert ( 20 700 652 i f )); -DATA(insert ( 20 701 482 i f )); -DATA(insert ( 20 1700 1781 i f )); -DATA(insert ( 21 20 754 i f )); -DATA(insert ( 21 23 313 i f )); -DATA(insert ( 21 700 236 i f )); -DATA(insert ( 21 701 235 i f )); -DATA(insert ( 21 1700 1782 i f )); -DATA(insert ( 23 20 481 i f )); -DATA(insert ( 23 21 314 a f )); -DATA(insert ( 23 700 318 i f )); -DATA(insert ( 23 701 316 i f )); -DATA(insert ( 23 1700 1740 i f )); -DATA(insert ( 700 20 653 a f )); -DATA(insert ( 700 21 238 a f )); -DATA(insert ( 700 23 319 a f )); -DATA(insert ( 700 701 311 i f )); -DATA(insert ( 700 1700 1742 a f )); -DATA(insert ( 701 20 483 a f )); -DATA(insert ( 701 21 237 a f )); -DATA(insert ( 701 23 317 a f )); -DATA(insert ( 701 700 312 a f )); -DATA(insert ( 701 1700 1743 a f )); -DATA(insert ( 1700 20 1779 a f )); -DATA(insert ( 1700 21 1783 a f )); -DATA(insert ( 1700 23 1744 a f )); -DATA(insert ( 1700 700 1745 i f )); -DATA(insert ( 1700 701 1746 i f )); -DATA(insert ( 790 1700 3823 a f )); -DATA(insert ( 1700 790 3824 a f )); -DATA(insert ( 23 790 3811 a f )); -DATA(insert ( 20 790 3812 a f )); - -/* Allow explicit coercions between int4 and bool */ -DATA(insert ( 23 16 2557 e f )); -DATA(insert ( 16 23 2558 e f )); - -/* - * OID category: allow implicit conversion from any integral type (including - * int8, to support OID literals > 2G) to OID, as well as assignment coercion - * from OID to int4 or int8. Similarly for each OID-alias type. Also allow - * implicit coercions between OID and each OID-alias type, as well as - * regproc<->regprocedure and regoper<->regoperator. (Other coercions - * 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. - */ -DATA(insert ( 20 26 1287 i f )); -DATA(insert ( 21 26 313 i f )); -DATA(insert ( 23 26 0 i b )); -DATA(insert ( 26 20 1288 a f )); -DATA(insert ( 26 23 0 a b )); -DATA(insert ( 26 24 0 i b )); -DATA(insert ( 24 26 0 i b )); -DATA(insert ( 20 24 1287 i f )); -DATA(insert ( 21 24 313 i f )); -DATA(insert ( 23 24 0 i b )); -DATA(insert ( 24 20 1288 a f )); -DATA(insert ( 24 23 0 a b )); -DATA(insert ( 24 2202 0 i b )); -DATA(insert ( 2202 24 0 i b )); -DATA(insert ( 26 2202 0 i b )); -DATA(insert ( 2202 26 0 i b )); -DATA(insert ( 20 2202 1287 i f )); -DATA(insert ( 21 2202 313 i f )); -DATA(insert ( 23 2202 0 i b )); -DATA(insert ( 2202 20 1288 a f )); -DATA(insert ( 2202 23 0 a b )); -DATA(insert ( 26 2203 0 i b )); -DATA(insert ( 2203 26 0 i b )); -DATA(insert ( 20 2203 1287 i f )); -DATA(insert ( 21 2203 313 i f )); -DATA(insert ( 23 2203 0 i b )); -DATA(insert ( 2203 20 1288 a f )); -DATA(insert ( 2203 23 0 a b )); -DATA(insert ( 2203 2204 0 i b )); -DATA(insert ( 2204 2203 0 i b )); -DATA(insert ( 26 2204 0 i b )); -DATA(insert ( 2204 26 0 i b )); -DATA(insert ( 20 2204 1287 i f )); -DATA(insert ( 21 2204 313 i f )); -DATA(insert ( 23 2204 0 i b )); -DATA(insert ( 2204 20 1288 a f )); -DATA(insert ( 2204 23 0 a b )); -DATA(insert ( 26 2205 0 i b )); -DATA(insert ( 2205 26 0 i b )); -DATA(insert ( 20 2205 1287 i f )); -DATA(insert ( 21 2205 313 i f )); -DATA(insert ( 23 2205 0 i b )); -DATA(insert ( 2205 20 1288 a f )); -DATA(insert ( 2205 23 0 a b )); -DATA(insert ( 26 2206 0 i b )); -DATA(insert ( 2206 26 0 i b )); -DATA(insert ( 20 2206 1287 i f )); -DATA(insert ( 21 2206 313 i f )); -DATA(insert ( 23 2206 0 i b )); -DATA(insert ( 2206 20 1288 a f )); -DATA(insert ( 2206 23 0 a b )); -DATA(insert ( 26 3734 0 i b )); -DATA(insert ( 3734 26 0 i b )); -DATA(insert ( 20 3734 1287 i f )); -DATA(insert ( 21 3734 313 i f )); -DATA(insert ( 23 3734 0 i b )); -DATA(insert ( 3734 20 1288 a f )); -DATA(insert ( 3734 23 0 a b )); -DATA(insert ( 26 3769 0 i b )); -DATA(insert ( 3769 26 0 i b )); -DATA(insert ( 20 3769 1287 i f )); -DATA(insert ( 21 3769 313 i f )); -DATA(insert ( 23 3769 0 i b )); -DATA(insert ( 3769 20 1288 a f )); -DATA(insert ( 3769 23 0 a b )); -DATA(insert ( 25 2205 1079 i f )); -DATA(insert ( 1043 2205 1079 i f )); -DATA(insert ( 26 4096 0 i b )); -DATA(insert ( 4096 26 0 i b )); -DATA(insert ( 20 4096 1287 i f )); -DATA(insert ( 21 4096 313 i f )); -DATA(insert ( 23 4096 0 i b )); -DATA(insert ( 4096 20 1288 a f )); -DATA(insert ( 4096 23 0 a b )); -DATA(insert ( 26 4089 0 i b )); -DATA(insert ( 4089 26 0 i b )); -DATA(insert ( 20 4089 1287 i f )); -DATA(insert ( 21 4089 313 i f )); -DATA(insert ( 23 4089 0 i b )); -DATA(insert ( 4089 20 1288 a f )); -DATA(insert ( 4089 23 0 a b )); - -/* - * String category - */ -DATA(insert ( 25 1042 0 i b )); -DATA(insert ( 25 1043 0 i b )); -DATA(insert ( 1042 25 401 i f )); -DATA(insert ( 1042 1043 401 i f )); -DATA(insert ( 1043 25 0 i b )); -DATA(insert ( 1043 1042 0 i b )); -DATA(insert ( 18 25 946 i f )); -DATA(insert ( 18 1042 860 a f )); -DATA(insert ( 18 1043 946 a f )); -DATA(insert ( 19 25 406 i f )); -DATA(insert ( 19 1042 408 a f )); -DATA(insert ( 19 1043 1401 a f )); -DATA(insert ( 25 18 944 a f )); -DATA(insert ( 1042 18 944 a f )); -DATA(insert ( 1043 18 944 a f )); -DATA(insert ( 25 19 407 i f )); -DATA(insert ( 1042 19 409 i f )); -DATA(insert ( 1043 19 1400 i f )); - -/* Allow explicit coercions between int4 and "char" */ -DATA(insert ( 18 23 77 e f )); -DATA(insert ( 23 18 78 e f )); - -/* pg_node_tree can be coerced to, but not from, text */ -DATA(insert ( 194 25 0 i b )); - -/* pg_ndistinct can be coerced to, but not from, bytea and text */ -DATA(insert ( 3361 17 0 i b )); -DATA(insert ( 3361 25 0 i i )); - -/* pg_dependencies can be coerced to, but not from, bytea and text */ -DATA(insert ( 3402 17 0 i b )); -DATA(insert ( 3402 25 0 i i )); - -/* - * Datetime category - */ -DATA(insert ( 702 1082 1179 a f )); -DATA(insert ( 702 1083 1364 a f )); -DATA(insert ( 702 1114 2023 i f )); -DATA(insert ( 702 1184 1173 i f )); -DATA(insert ( 703 1186 1177 i f )); -DATA(insert ( 1082 1114 2024 i f )); -DATA(insert ( 1082 1184 1174 i f )); -DATA(insert ( 1083 1186 1370 i f )); -DATA(insert ( 1083 1266 2047 i f )); -DATA(insert ( 1114 702 2030 a f )); -DATA(insert ( 1114 1082 2029 a f )); -DATA(insert ( 1114 1083 1316 a f )); -DATA(insert ( 1114 1184 2028 i f )); -DATA(insert ( 1184 702 1180 a f )); -DATA(insert ( 1184 1082 1178 a f )); -DATA(insert ( 1184 1083 2019 a f )); -DATA(insert ( 1184 1114 2027 a f )); -DATA(insert ( 1184 1266 1388 a f )); -DATA(insert ( 1186 703 1194 a f )); -DATA(insert ( 1186 1083 1419 a f )); -DATA(insert ( 1266 1083 2046 a f )); -/* Cross-category casts between int4 and abstime, reltime */ -DATA(insert ( 23 702 0 e b )); -DATA(insert ( 702 23 0 e b )); -DATA(insert ( 23 703 0 e b )); -DATA(insert ( 703 23 0 e b )); - -/* - * Geometric category - */ -DATA(insert ( 600 603 4091 a f )); -DATA(insert ( 601 600 1532 e f )); -DATA(insert ( 602 600 1533 e f )); -DATA(insert ( 602 604 1449 a f )); -DATA(insert ( 603 600 1534 e f )); -DATA(insert ( 603 601 1541 e f )); -DATA(insert ( 603 604 1448 a f )); -DATA(insert ( 603 718 1479 e f )); -DATA(insert ( 604 600 1540 e f )); -DATA(insert ( 604 602 1447 a f )); -DATA(insert ( 604 603 1446 e f )); -DATA(insert ( 604 718 1474 e f )); -DATA(insert ( 718 600 1416 e f )); -DATA(insert ( 718 603 1480 e f )); -DATA(insert ( 718 604 1544 e f )); - -/* - * MAC address category - */ -DATA(insert ( 829 774 4123 i f )); -DATA(insert ( 774 829 4124 i f )); - -/* - * INET category - */ -DATA(insert ( 650 869 0 i b )); -DATA(insert ( 869 650 1715 a f )); - -/* - * BitString category - */ -DATA(insert ( 1560 1562 0 i b )); -DATA(insert ( 1562 1560 0 i b )); -/* Cross-category casts between bit and int4, int8 */ -DATA(insert ( 20 1560 2075 e f )); -DATA(insert ( 23 1560 1683 e f )); -DATA(insert ( 1560 20 2076 e f )); -DATA(insert ( 1560 23 1684 e f )); - -/* - * Cross-category casts to and from TEXT - * - * We need entries here only for a few specialized cases where the behavior - * of the cast function differs from the datatype's I/O functions. Otherwise, - * parse_coerce.c will generate CoerceViaIO operations without any prompting. - * - * Note that the castcontext values specified here should be no stronger than - * 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! - */ -DATA(insert ( 650 25 730 a f )); -DATA(insert ( 869 25 730 a f )); -DATA(insert ( 16 25 2971 a f )); -DATA(insert ( 142 25 0 a b )); -DATA(insert ( 25 142 2896 e f )); - -/* - * Cross-category casts to and from VARCHAR - * - * We support all the same casts as for TEXT. - */ -DATA(insert ( 650 1043 730 a f )); -DATA(insert ( 869 1043 730 a f )); -DATA(insert ( 16 1043 2971 a f )); -DATA(insert ( 142 1043 0 a b )); -DATA(insert ( 1043 142 2896 e f )); - -/* - * Cross-category casts to and from BPCHAR - * - * We support all the same casts as for TEXT. - */ -DATA(insert ( 650 1042 730 a f )); -DATA(insert ( 869 1042 730 a f )); -DATA(insert ( 16 1042 2971 a f )); -DATA(insert ( 142 1042 0 a b )); -DATA(insert ( 1042 142 2896 e f )); - -/* - * Length-coercion functions - */ -DATA(insert ( 1042 1042 668 i f )); -DATA(insert ( 1043 1043 669 i f )); -DATA(insert ( 1083 1083 1968 i f )); -DATA(insert ( 1114 1114 1961 i f )); -DATA(insert ( 1184 1184 1967 i f )); -DATA(insert ( 1186 1186 1200 i f )); -DATA(insert ( 1266 1266 1969 i f )); -DATA(insert ( 1560 1560 1685 i f )); -DATA(insert ( 1562 1562 1687 i f )); -DATA(insert ( 1700 1700 1703 i f )); - -/* json to/from jsonb */ -DATA(insert ( 114 3802 0 a i )); -DATA(insert ( 3802 114 0 a i )); - -/* jsonb to numeric and bool types */ -DATA(insert ( 3802 16 3556 e f )); -DATA(insert ( 3802 1700 3449 e f )); -DATA(insert ( 3802 21 3450 e f )); -DATA(insert ( 3802 23 3451 e f )); -DATA(insert ( 3802 20 3452 e f )); -DATA(insert ( 3802 700 3453 e f )); -DATA(insert ( 3802 701 2580 e f )); +#endif /* EXPOSE_TO_CLIENT_CODE */ #endif /* PG_CAST_H */ diff --git a/src/include/catalog/pg_class.dat b/src/include/catalog/pg_class.dat new file mode 100644 index 0000000000..e1450e3fc7 --- /dev/null +++ b/src/include/catalog/pg_class.dat @@ -0,0 +1,68 @@ +#---------------------------------------------------------------------- +# +# pg_class.dat +# Initial contents of the pg_class system relation. +# +# Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group +# Portions Copyright (c) 1994, Regents of the University of California +# +# src/include/catalog/pg_class.dat +# +#---------------------------------------------------------------------- + +[ + +# Note: only "bootstrapped" relations, ie those marked BKI_BOOTSTRAP, need to +# have entries here. Be sure that the OIDs listed here match those given in +# their CATALOG and BKI_ROWTYPE_OID 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', relnamespace => 'PGNSP', reltype => '71', + reloftype => '0', relowner => 'PGUID', relam => '0', relfilenode => '0', + reltablespace => '0', relpages => '0', reltuples => '0', relallvisible => '0', + reltoastrelid => '0', relhasindex => 'f', relisshared => 'f', + relpersistence => 'p', relkind => 'r', relnatts => '30', relchecks => '0', + relhasoids => 't', relhasrules => 'f', relhastriggers => 'f', + relhassubclass => 'f', relrowsecurity => 'f', relforcerowsecurity => 'f', + relispopulated => 't', relreplident => 'n', relispartition => 'f', + relrewrite => '0', relfrozenxid => '3', relminmxid => '1', relacl => '_null_', + reloptions => '_null_', relpartbound => '_null_' }, +{ oid => '1249', + relname => 'pg_attribute', relnamespace => 'PGNSP', reltype => '75', + reloftype => '0', relowner => 'PGUID', relam => '0', relfilenode => '0', + reltablespace => '0', relpages => '0', reltuples => '0', relallvisible => '0', + reltoastrelid => '0', relhasindex => 'f', relisshared => 'f', + relpersistence => 'p', relkind => 'r', relnatts => '24', relchecks => '0', + relhasoids => 'f', relhasrules => 'f', relhastriggers => 'f', + relhassubclass => 'f', relrowsecurity => 'f', relforcerowsecurity => 'f', + relispopulated => 't', relreplident => 'n', relispartition => 'f', + relrewrite => '0', relfrozenxid => '3', relminmxid => '1', relacl => '_null_', + reloptions => '_null_', relpartbound => '_null_' }, +{ oid => '1255', + relname => 'pg_proc', relnamespace => 'PGNSP', reltype => '81', + reloftype => '0', relowner => 'PGUID', relam => '0', relfilenode => '0', + reltablespace => '0', relpages => '0', reltuples => '0', relallvisible => '0', + reltoastrelid => '0', relhasindex => 'f', relisshared => 'f', + relpersistence => 'p', relkind => 'r', relnatts => '28', relchecks => '0', + relhasoids => 't', relhasrules => 'f', relhastriggers => 'f', + relhassubclass => 'f', relrowsecurity => 'f', relforcerowsecurity => 'f', + relispopulated => 't', relreplident => 'n', relispartition => 'f', + relrewrite => '0', relfrozenxid => '3', relminmxid => '1', relacl => '_null_', + reloptions => '_null_', relpartbound => '_null_' }, +{ oid => '1259', + relname => 'pg_class', relnamespace => 'PGNSP', reltype => '83', + reloftype => '0', relowner => 'PGUID', relam => '0', relfilenode => '0', + reltablespace => '0', relpages => '0', reltuples => '0', relallvisible => '0', + reltoastrelid => '0', relhasindex => 'f', relisshared => 'f', + relpersistence => 'p', relkind => 'r', relnatts => '33', relchecks => '0', + relhasoids => 't', relhasrules => 'f', relhastriggers => 'f', + relhassubclass => 'f', relrowsecurity => 'f', relforcerowsecurity => 'f', + relispopulated => 't', relreplident => 'n', relispartition => 'f', + relrewrite => '0', relfrozenxid => '3', relminmxid => '1', relacl => '_null_', + reloptions => '_null_', relpartbound => '_null_' }, + +] diff --git a/src/include/catalog/pg_class.h b/src/include/catalog/pg_class.h index 135f33d0f3..ef62c30cf9 100644 --- a/src/include/catalog/pg_class.h +++ b/src/include/catalog/pg_class.h @@ -2,7 +2,6 @@ * * pg_class.h * definition of the system "relation" relation (pg_class) - * along with the relation's initial contents. * * * Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group @@ -11,8 +10,8 @@ * src/include/catalog/pg_class.h * * NOTES - * the genbki.pl script reads this file and generates .bki - * information from the DATA() statements. + * The Catalog.pm module reads this file and derives schema + * information. * *------------------------------------------------------------------------- */ @@ -20,16 +19,14 @@ #define PG_CLASS_H #include "catalog/genbki.h" +#include "catalog/pg_class_d.h" /* ---------------- * pg_class definition. cpp turns this into * typedef struct FormData_pg_class * ---------------- */ -#define RelationRelationId 1259 -#define RelationRelation_Rowtype_Id 83 - -CATALOG(pg_class,1259) BKI_BOOTSTRAP BKI_ROWTYPE_OID(83) BKI_SCHEMA_MACRO +CATALOG(pg_class,1259,RelationRelationId) BKI_BOOTSTRAP BKI_ROWTYPE_OID(83,RelationRelation_Rowtype_Id) BKI_SCHEMA_MACRO { NameData relname; /* class name */ Oid relnamespace; /* OID of namespace containing this class */ @@ -94,68 +91,7 @@ CATALOG(pg_class,1259) BKI_BOOTSTRAP BKI_ROWTYPE_OID(83) BKI_SCHEMA_MACRO */ typedef FormData_pg_class *Form_pg_class; -/* ---------------- - * compiler constants for pg_class - * ---------------- - */ - -#define Natts_pg_class 33 -#define Anum_pg_class_relname 1 -#define Anum_pg_class_relnamespace 2 -#define Anum_pg_class_reltype 3 -#define Anum_pg_class_reloftype 4 -#define Anum_pg_class_relowner 5 -#define Anum_pg_class_relam 6 -#define Anum_pg_class_relfilenode 7 -#define Anum_pg_class_reltablespace 8 -#define Anum_pg_class_relpages 9 -#define Anum_pg_class_reltuples 10 -#define Anum_pg_class_relallvisible 11 -#define Anum_pg_class_reltoastrelid 12 -#define Anum_pg_class_relhasindex 13 -#define Anum_pg_class_relisshared 14 -#define Anum_pg_class_relpersistence 15 -#define Anum_pg_class_relkind 16 -#define Anum_pg_class_relnatts 17 -#define Anum_pg_class_relchecks 18 -#define Anum_pg_class_relhasoids 19 -#define Anum_pg_class_relhasrules 20 -#define Anum_pg_class_relhastriggers 21 -#define Anum_pg_class_relhassubclass 22 -#define Anum_pg_class_relrowsecurity 23 -#define Anum_pg_class_relforcerowsecurity 24 -#define Anum_pg_class_relispopulated 25 -#define Anum_pg_class_relreplident 26 -#define Anum_pg_class_relispartition 27 -#define Anum_pg_class_relrewrite 28 -#define Anum_pg_class_relfrozenxid 29 -#define Anum_pg_class_relminmxid 30 -#define Anum_pg_class_relacl 31 -#define Anum_pg_class_reloptions 32 -#define Anum_pg_class_relpartbound 33 - -/* ---------------- - * initial contents of pg_class - * - * 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 - */ -DATA(insert OID = 1247 ( pg_type PGNSP 71 0 PGUID 0 0 0 0 0 0 0 f f p r 30 0 t f f f f f t n f 0 3 1 _null_ _null_ _null_)); -DESCR(""); -DATA(insert OID = 1249 ( pg_attribute PGNSP 75 0 PGUID 0 0 0 0 0 0 0 f f p r 24 0 f f f f f f t n f 0 3 1 _null_ _null_ _null_)); -DESCR(""); -DATA(insert OID = 1255 ( pg_proc PGNSP 81 0 PGUID 0 0 0 0 0 0 0 f f p r 28 0 t f f f f f t n f 0 3 1 _null_ _null_ _null_)); -DESCR(""); -DATA(insert OID = 1259 ( pg_class PGNSP 83 0 PGUID 0 0 0 0 0 0 0 f f p r 33 0 t f f f f f t n f 0 3 1 _null_ _null_ _null_)); -DESCR(""); - +#ifdef EXPOSE_TO_CLIENT_CODE #define RELKIND_RELATION 'r' /* ordinary table */ #define RELKIND_INDEX 'i' /* secondary index */ @@ -185,4 +121,6 @@ DESCR(""); */ #define REPLICA_IDENTITY_INDEX 'i' +#endif /* EXPOSE_TO_CLIENT_CODE */ + #endif /* PG_CLASS_H */ diff --git a/src/include/catalog/pg_collation.dat b/src/include/catalog/pg_collation.dat new file mode 100644 index 0000000000..e98a4fd817 --- /dev/null +++ b/src/include/catalog/pg_collation.dat @@ -0,0 +1,31 @@ +#---------------------------------------------------------------------- +# +# pg_collation.dat +# Initial contents of the pg_collation system relation. +# +# Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group +# Portions Copyright (c) 1994, Regents of the University of California +# +# src/include/catalog/pg_collation.dat +# +#---------------------------------------------------------------------- + +[ + +{ oid => '100', oid_symbol => 'DEFAULT_COLLATION_OID', + descr => 'database\'s default collation', + collname => 'default', collnamespace => 'PGNSP', collowner => 'PGUID', + collprovider => 'd', collencoding => '-1', collcollate => '', collctype => '', + collversion => '_null_' }, +{ oid => '950', oid_symbol => 'C_COLLATION_OID', + descr => 'standard C collation', + collname => 'C', collnamespace => 'PGNSP', collowner => 'PGUID', + collprovider => 'c', collencoding => '-1', collcollate => 'C', + collctype => 'C', collversion => '_null_' }, +{ oid => '951', oid_symbol => 'POSIX_COLLATION_OID', + descr => 'standard POSIX collation', + collname => 'POSIX', collnamespace => 'PGNSP', collowner => 'PGUID', + collprovider => 'c', collencoding => '-1', collcollate => 'POSIX', + collctype => 'POSIX', collversion => '_null_' }, + +] diff --git a/src/include/catalog/pg_collation.h b/src/include/catalog/pg_collation.h index 8ef804c73b..d932a42ce0 100644 --- a/src/include/catalog/pg_collation.h +++ b/src/include/catalog/pg_collation.h @@ -2,7 +2,6 @@ * * pg_collation.h * definition of the system "collation" relation (pg_collation) - * along with the relation's initial contents. * * * Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group @@ -12,8 +11,8 @@ * src/include/catalog/pg_collation.h * * NOTES - * the genbki.pl script reads this file and generates .bki - * information from the DATA() statements. + * The Catalog.pm module reads this file and derives schema + * information. * *------------------------------------------------------------------------- */ @@ -21,15 +20,14 @@ #define PG_COLLATION_H #include "catalog/genbki.h" +#include "catalog/pg_collation_d.h" /* ---------------- * pg_collation definition. cpp turns this into * typedef struct FormData_pg_collation * ---------------- */ -#define CollationRelationId 3456 - -CATALOG(pg_collation,3456) +CATALOG(pg_collation,3456,CollationRelationId) { NameData collname; /* collation name */ Oid collnamespace; /* OID of namespace containing collation */ @@ -51,38 +49,12 @@ CATALOG(pg_collation,3456) */ typedef FormData_pg_collation *Form_pg_collation; -/* ---------------- - * compiler constants for pg_collation - * ---------------- - */ -#define Natts_pg_collation 8 -#define Anum_pg_collation_collname 1 -#define Anum_pg_collation_collnamespace 2 -#define Anum_pg_collation_collowner 3 -#define Anum_pg_collation_collprovider 4 -#define Anum_pg_collation_collencoding 5 -#define Anum_pg_collation_collcollate 6 -#define Anum_pg_collation_collctype 7 -#define Anum_pg_collation_collversion 8 - -/* ---------------- - * initial contents of pg_collation - * ---------------- - */ - -DATA(insert OID = 100 ( default PGNSP PGUID d -1 "" "" _null_ )); -DESCR("database's default collation"); -#define DEFAULT_COLLATION_OID 100 -DATA(insert OID = 950 ( C PGNSP PGUID c -1 C C _null_ )); -DESCR("standard C collation"); -#define C_COLLATION_OID 950 -DATA(insert OID = 951 ( POSIX PGNSP PGUID c -1 POSIX POSIX _null_ )); -DESCR("standard POSIX collation"); -#define POSIX_COLLATION_OID 951 - +#ifdef EXPOSE_TO_CLIENT_CODE #define COLLPROVIDER_DEFAULT 'd' #define COLLPROVIDER_ICU 'i' #define COLLPROVIDER_LIBC 'c' +#endif /* EXPOSE_TO_CLIENT_CODE */ + #endif /* PG_COLLATION_H */ diff --git a/src/include/catalog/pg_constraint.h b/src/include/catalog/pg_constraint.h index a0fb5f8243..5164092231 100644 --- a/src/include/catalog/pg_constraint.h +++ b/src/include/catalog/pg_constraint.h @@ -2,7 +2,6 @@ * * pg_constraint.h * definition of the system "constraint" relation (pg_constraint) - * along with the relation's initial contents. * * * Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group @@ -11,8 +10,8 @@ * src/include/catalog/pg_constraint.h * * NOTES - * the genbki.pl script reads this file and generates .bki - * information from the DATA() statements. + * The Catalog.pm module reads this file and derives schema + * information. * *------------------------------------------------------------------------- */ @@ -20,15 +19,14 @@ #define PG_CONSTRAINT_H #include "catalog/genbki.h" +#include "catalog/pg_constraint_d.h" /* ---------------- * pg_constraint definition. cpp turns this into * typedef struct FormData_pg_constraint * ---------------- */ -#define ConstraintRelationId 2606 - -CATALOG(pg_constraint,2606) +CATALOG(pg_constraint,2606,ConstraintRelationId) { /* * conname + connamespace is deliberately not unique; we allow, for @@ -105,8 +103,8 @@ CATALOG(pg_constraint,2606) int16 conkey[1]; /* - * Columns of conrelid that the constraint does not apply to, but included - * into the same index with key columns. + * Columns of conrelid that the constraint does not apply to, but are + * included into the same index as the key columns */ int16 conincluding[1]; @@ -158,45 +156,7 @@ CATALOG(pg_constraint,2606) */ typedef FormData_pg_constraint *Form_pg_constraint; -/* ---------------- - * compiler constants for pg_constraint - * ---------------- - */ -#define Natts_pg_constraint 26 -#define Anum_pg_constraint_conname 1 -#define Anum_pg_constraint_connamespace 2 -#define Anum_pg_constraint_contype 3 -#define Anum_pg_constraint_condeferrable 4 -#define Anum_pg_constraint_condeferred 5 -#define Anum_pg_constraint_convalidated 6 -#define Anum_pg_constraint_conrelid 7 -#define Anum_pg_constraint_contypid 8 -#define Anum_pg_constraint_conindid 9 -#define Anum_pg_constraint_conparentid 10 -#define Anum_pg_constraint_confrelid 11 -#define Anum_pg_constraint_confupdtype 12 -#define Anum_pg_constraint_confdeltype 13 -#define Anum_pg_constraint_confmatchtype 14 -#define Anum_pg_constraint_conislocal 15 -#define Anum_pg_constraint_coninhcount 16 -#define Anum_pg_constraint_connoinherit 17 -#define Anum_pg_constraint_conkey 18 -#define Anum_pg_constraint_conincluding 19 -#define Anum_pg_constraint_confkey 20 -#define Anum_pg_constraint_conpfeqop 21 -#define Anum_pg_constraint_conppeqop 22 -#define Anum_pg_constraint_conffeqop 23 -#define Anum_pg_constraint_conexclop 24 -#define Anum_pg_constraint_conbin 25 -#define Anum_pg_constraint_consrc 26 - -/* ---------------- - * initial contents of pg_constraint - * ---------------- - */ - -/* nothing, at present */ - +#ifdef EXPOSE_TO_CLIENT_CODE /* Valid values for contype */ #define CONSTRAINT_CHECK 'c' @@ -212,4 +172,6 @@ typedef FormData_pg_constraint *Form_pg_constraint; * the FKCONSTR_MATCH_xxx constants defined in parsenodes.h. */ +#endif /* EXPOSE_TO_CLIENT_CODE */ + #endif /* PG_CONSTRAINT_H */ diff --git a/src/include/catalog/pg_conversion.h b/src/include/catalog/pg_conversion.h index 29f3c9d65a..2a38d71b48 100644 --- a/src/include/catalog/pg_conversion.h +++ b/src/include/catalog/pg_conversion.h @@ -2,7 +2,6 @@ * * pg_conversion.h * definition of the system "conversion" relation (pg_conversion) - * along with the relation's initial contents. * * * Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group @@ -11,8 +10,8 @@ * src/include/catalog/pg_conversion.h * * NOTES - * the genbki.pl script reads this file and generates .bki - * information from the DATA() statements. + * The Catalog.pm module reads this file and derives schema + * information. * *------------------------------------------------------------------------- */ @@ -20,6 +19,7 @@ #define PG_CONVERSION_H #include "catalog/genbki.h" +#include "catalog/pg_conversion_d.h" /* ---------------------------------------------------------------- * pg_conversion definition. @@ -35,9 +35,7 @@ * condefault true if this is a default conversion * ---------------------------------------------------------------- */ -#define ConversionRelationId 2607 - -CATALOG(pg_conversion,2607) +CATALOG(pg_conversion,2607,ConversionRelationId) { NameData conname; Oid connamespace; @@ -55,23 +53,4 @@ CATALOG(pg_conversion,2607) */ typedef FormData_pg_conversion *Form_pg_conversion; -/* ---------------- - * compiler constants for pg_conversion - * ---------------- - */ - -#define Natts_pg_conversion 7 -#define Anum_pg_conversion_conname 1 -#define Anum_pg_conversion_connamespace 2 -#define Anum_pg_conversion_conowner 3 -#define Anum_pg_conversion_conforencoding 4 -#define Anum_pg_conversion_contoencoding 5 -#define Anum_pg_conversion_conproc 6 -#define Anum_pg_conversion_condefault 7 - -/* ---------------- - * initial contents of pg_conversion - * --------------- - */ - #endif /* PG_CONVERSION_H */ diff --git a/src/include/catalog/pg_database.dat b/src/include/catalog/pg_database.dat new file mode 100644 index 0000000000..957ca8408a --- /dev/null +++ b/src/include/catalog/pg_database.dat @@ -0,0 +1,26 @@ +#---------------------------------------------------------------------- +# +# pg_database.dat +# Initial contents of the pg_database system relation. +# +# Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group +# Portions Copyright (c) 1994, Regents of the University of California +# +# src/include/catalog/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', oid_symbol => 'TemplateDbOid', + descr => '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_database.h b/src/include/catalog/pg_database.h index 56f9960dfe..7f03d24c1e 100644 --- a/src/include/catalog/pg_database.h +++ b/src/include/catalog/pg_database.h @@ -2,7 +2,6 @@ * * pg_database.h * definition of the system "database" relation (pg_database) - * along with the relation's initial contents. * * * Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group @@ -11,8 +10,8 @@ * src/include/catalog/pg_database.h * * NOTES - * the genbki.pl script reads this file and generates .bki - * information from the DATA() statements. + * The Catalog.pm module reads this file and derives schema + * information. * *------------------------------------------------------------------------- */ @@ -20,16 +19,14 @@ #define PG_DATABASE_H #include "catalog/genbki.h" +#include "catalog/pg_database_d.h" /* ---------------- * pg_database definition. cpp turns this into * typedef struct FormData_pg_database * ---------------- */ -#define DatabaseRelationId 1262 -#define DatabaseRelation_Rowtype_Id 1248 - -CATALOG(pg_database,1262) BKI_SHARED_RELATION BKI_ROWTYPE_OID(1248) BKI_SCHEMA_MACRO +CATALOG(pg_database,1262,DatabaseRelationId) BKI_SHARED_RELATION BKI_ROWTYPE_OID(1248,DatabaseRelation_Rowtype_Id) BKI_SCHEMA_MACRO { NameData datname; /* database name */ Oid datdba; /* owner of database */ @@ -56,27 +53,4 @@ CATALOG(pg_database,1262) BKI_SHARED_RELATION BKI_ROWTYPE_OID(1248) BKI_SCHEMA_M */ typedef FormData_pg_database *Form_pg_database; -/* ---------------- - * compiler constants for pg_database - * ---------------- - */ -#define Natts_pg_database 13 -#define Anum_pg_database_datname 1 -#define Anum_pg_database_datdba 2 -#define Anum_pg_database_encoding 3 -#define Anum_pg_database_datcollate 4 -#define Anum_pg_database_datctype 5 -#define Anum_pg_database_datistemplate 6 -#define Anum_pg_database_datallowconn 7 -#define Anum_pg_database_datconnlimit 8 -#define Anum_pg_database_datlastsysoid 9 -#define Anum_pg_database_datfrozenxid 10 -#define Anum_pg_database_datminmxid 11 -#define Anum_pg_database_dattablespace 12 -#define Anum_pg_database_datacl 13 - -DATA(insert OID = 1 ( template1 PGUID ENCODING "LC_COLLATE" "LC_CTYPE" t t -1 0 0 1 1663 _null_)); -SHDESCR("default template for new databases"); -#define TemplateDbOid 1 - #endif /* PG_DATABASE_H */ diff --git a/src/include/catalog/pg_db_role_setting.h b/src/include/catalog/pg_db_role_setting.h index 86cc17d725..896c410a17 100644 --- a/src/include/catalog/pg_db_role_setting.h +++ b/src/include/catalog/pg_db_role_setting.h @@ -1,7 +1,7 @@ /*------------------------------------------------------------------------- * * pg_db_role_setting.h - * definition of configuration settings + * definition of per-database/per-user configuration settings relation * * * Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group @@ -10,17 +10,16 @@ * src/include/catalog/pg_db_role_setting.h * * NOTES - * the genbki.pl script reads this file and generates .bki - * information from the DATA() statements. - * - * XXX do NOT break up DATA() statements into multiple lines! - * the scripts are not as smart as you might think... + * The Catalog.pm module reads this file and derives schema + * information. * *------------------------------------------------------------------------- */ #ifndef PG_DB_ROLE_SETTING_H #define PG_DB_ROLE_SETTING_H +#include "catalog/genbki.h" +#include "catalog/pg_db_role_setting_d.h" #include "utils/guc.h" #include "utils/relcache.h" #include "utils/snapshot.h" @@ -30,9 +29,7 @@ * typedef struct FormData_pg_db_role_setting * ---------------- */ -#define DbRoleSettingRelationId 2964 - -CATALOG(pg_db_role_setting,2964) BKI_SHARED_RELATION BKI_WITHOUT_OIDS +CATALOG(pg_db_role_setting,2964,DbRoleSettingRelationId) BKI_SHARED_RELATION BKI_WITHOUT_OIDS { Oid setdatabase; /* database */ Oid setrole; /* role */ @@ -44,20 +41,6 @@ CATALOG(pg_db_role_setting,2964) BKI_SHARED_RELATION BKI_WITHOUT_OIDS typedef FormData_pg_db_role_setting * Form_pg_db_role_setting; -/* ---------------- - * compiler constants for pg_db_role_setting - * ---------------- - */ -#define Natts_pg_db_role_setting 3 -#define Anum_pg_db_role_setting_setdatabase 1 -#define Anum_pg_db_role_setting_setrole 2 -#define Anum_pg_db_role_setting_setconfig 3 - -/* ---------------- - * initial contents of pg_db_role_setting are NOTHING - * ---------------- - */ - /* * prototypes for functions in pg_db_role_setting.h */ diff --git a/src/include/catalog/pg_default_acl.h b/src/include/catalog/pg_default_acl.h index 11b306037d..d672d5b3f8 100644 --- a/src/include/catalog/pg_default_acl.h +++ b/src/include/catalog/pg_default_acl.h @@ -10,8 +10,8 @@ * src/include/catalog/pg_default_acl.h * * NOTES - * the genbki.pl script reads this file and generates .bki - * information from the DATA() statements. + * The Catalog.pm module reads this file and derives schema + * information. * *------------------------------------------------------------------------- */ @@ -19,15 +19,14 @@ #define PG_DEFAULT_ACL_H #include "catalog/genbki.h" +#include "catalog/pg_default_acl_d.h" /* ---------------- * pg_default_acl definition. cpp turns this into * typedef struct FormData_pg_default_acl * ---------------- */ -#define DefaultAclRelationId 826 - -CATALOG(pg_default_acl,826) +CATALOG(pg_default_acl,826,DefaultAclRelationId) { Oid defaclrole; /* OID of role owning this ACL */ Oid defaclnamespace; /* OID of namespace, or 0 for all */ @@ -45,21 +44,7 @@ CATALOG(pg_default_acl,826) */ typedef FormData_pg_default_acl *Form_pg_default_acl; -/* ---------------- - * compiler constants for pg_default_acl - * ---------------- - */ - -#define Natts_pg_default_acl 4 -#define Anum_pg_default_acl_defaclrole 1 -#define Anum_pg_default_acl_defaclnamespace 2 -#define Anum_pg_default_acl_defaclobjtype 3 -#define Anum_pg_default_acl_defaclacl 4 - -/* ---------------- - * pg_default_acl has no initial contents - * ---------------- - */ +#ifdef EXPOSE_TO_CLIENT_CODE /* * Types of objects for which the user is allowed to specify default @@ -72,4 +57,6 @@ typedef FormData_pg_default_acl *Form_pg_default_acl; #define DEFACLOBJ_TYPE 'T' /* type */ #define DEFACLOBJ_NAMESPACE 'n' /* namespace */ +#endif /* EXPOSE_TO_CLIENT_CODE */ + #endif /* PG_DEFAULT_ACL_H */ diff --git a/src/include/catalog/pg_depend.h b/src/include/catalog/pg_depend.h index be3867bbf2..bf31c1ab40 100644 --- a/src/include/catalog/pg_depend.h +++ b/src/include/catalog/pg_depend.h @@ -2,7 +2,18 @@ * * pg_depend.h * definition of the system "dependency" relation (pg_depend) - * along with the relation's initial contents. + * + * pg_depend has no preloaded contents, so there is no pg_depend.dat + * file; system-defined dependencies are loaded into it during a late stage + * of the initdb process. + * + * NOTE: we do not represent all possible dependency pairs in pg_depend; + * for example, there's not much value in creating an explicit dependency + * from an attribute to its relation. Usually we make a dependency for + * cases where the relationship is conditional rather than essential + * (for example, not all triggers are dependent on constraints, but all + * attributes are dependent on relations) or where the dependency is not + * convenient to find from the contents of other catalogs. * * * Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group @@ -11,8 +22,8 @@ * src/include/catalog/pg_depend.h * * NOTES - * the genbki.pl script reads this file and generates .bki - * information from the DATA() statements. + * The Catalog.pm module reads this file and derives schema + * information. * *------------------------------------------------------------------------- */ @@ -20,15 +31,14 @@ #define PG_DEPEND_H #include "catalog/genbki.h" +#include "catalog/pg_depend_d.h" /* ---------------- * pg_depend definition. cpp turns this into * typedef struct FormData_pg_depend * ---------------- */ -#define DependRelationId 2608 - -CATALOG(pg_depend,2608) BKI_WITHOUT_OIDS +CATALOG(pg_depend,2608,DependRelationId) BKI_WITHOUT_OIDS { /* * Identification of the dependent (referencing) object. @@ -60,31 +70,4 @@ CATALOG(pg_depend,2608) BKI_WITHOUT_OIDS */ typedef FormData_pg_depend *Form_pg_depend; -/* ---------------- - * compiler constants for pg_depend - * ---------------- - */ -#define Natts_pg_depend 7 -#define Anum_pg_depend_classid 1 -#define Anum_pg_depend_objid 2 -#define Anum_pg_depend_objsubid 3 -#define Anum_pg_depend_refclassid 4 -#define Anum_pg_depend_refobjid 5 -#define Anum_pg_depend_refobjsubid 6 -#define Anum_pg_depend_deptype 7 - - -/* - * pg_depend has no preloaded contents; system-defined dependencies are - * loaded into it during a late stage of the initdb process. - * - * NOTE: we do not represent all possible dependency pairs in pg_depend; - * for example, there's not much value in creating an explicit dependency - * from an attribute to its relation. Usually we make a dependency for - * cases where the relationship is conditional rather than essential - * (for example, not all triggers are dependent on constraints, but all - * attributes are dependent on relations) or where the dependency is not - * convenient to find from the contents of other catalogs. - */ - #endif /* PG_DEPEND_H */ diff --git a/src/include/catalog/pg_description.h b/src/include/catalog/pg_description.h index d29100013e..b95b188d28 100644 --- a/src/include/catalog/pg_description.h +++ b/src/include/catalog/pg_description.h @@ -3,6 +3,10 @@ * pg_description.h * definition of the system "description" relation (pg_description) * + * Because the contents of this table are taken from the *.dat files + * of other catalogs, there is no pg_description.dat file. The initial + * contents are assembled by genbki.pl and loaded during initdb. + * * NOTE: an object is identified by the OID of the row that primarily * defines the object, plus the OID of the table that that row appears in. * For example, a function is identified by the OID of its pg_proc row @@ -25,11 +29,8 @@ * src/include/catalog/pg_description.h * * NOTES - * the genbki.pl script reads this file and generates .bki - * information from the DATA() statements. - * - * XXX do NOT break up DATA() statements into multiple lines! - * the scripts are not as smart as you might think... + * The Catalog.pm module reads this file and derives schema + * information. * *------------------------------------------------------------------------- */ @@ -37,15 +38,14 @@ #define PG_DESCRIPTION_H #include "catalog/genbki.h" +#include "catalog/pg_description_d.h" /* ---------------- * pg_description definition. cpp turns this into * typedef struct FormData_pg_description * ---------------- */ -#define DescriptionRelationId 2609 - -CATALOG(pg_description,2609) BKI_WITHOUT_OIDS +CATALOG(pg_description,2609,DescriptionRelationId) BKI_WITHOUT_OIDS { Oid objoid; /* OID of object itself */ Oid classoid; /* OID of table containing object */ @@ -63,25 +63,4 @@ CATALOG(pg_description,2609) BKI_WITHOUT_OIDS */ typedef FormData_pg_description * Form_pg_description; -/* ---------------- - * compiler constants for pg_description - * ---------------- - */ -#define Natts_pg_description 4 -#define Anum_pg_description_objoid 1 -#define Anum_pg_description_classoid 2 -#define Anum_pg_description_objsubid 3 -#define Anum_pg_description_description 4 - -/* ---------------- - * initial contents of pg_description - * ---------------- - */ - -/* - * Because the contents of this table are taken from the other *.h files, - * there is no initialization here. The initial contents are extracted - * by genbki.pl and loaded during initdb. - */ - #endif /* PG_DESCRIPTION_H */ diff --git a/src/include/catalog/pg_enum.h b/src/include/catalog/pg_enum.h index a65a8f45b6..a0922be49b 100644 --- a/src/include/catalog/pg_enum.h +++ b/src/include/catalog/pg_enum.h @@ -2,7 +2,6 @@ * * pg_enum.h * definition of the system "enum" relation (pg_enum) - * along with the relation's initial contents. * * * Copyright (c) 2006-2018, PostgreSQL Global Development Group @@ -10,11 +9,8 @@ * src/include/catalog/pg_enum.h * * NOTES - * the genbki.pl script reads this file and generates .bki - * information from the DATA() statements. - * - * XXX do NOT break up DATA() statements into multiple lines! - * the scripts are not as smart as you might think... + * The Catalog.pm module reads this file and derives schema + * information. * *------------------------------------------------------------------------- */ @@ -22,6 +18,7 @@ #define PG_ENUM_H #include "catalog/genbki.h" +#include "catalog/pg_enum_d.h" #include "nodes/pg_list.h" /* ---------------- @@ -29,9 +26,7 @@ * typedef struct FormData_pg_enum * ---------------- */ -#define EnumRelationId 3501 - -CATALOG(pg_enum,3501) +CATALOG(pg_enum,3501,EnumRelationId) { Oid enumtypid; /* OID of owning enum type */ float4 enumsortorder; /* sort position of this enum value */ @@ -45,20 +40,6 @@ CATALOG(pg_enum,3501) */ typedef FormData_pg_enum *Form_pg_enum; -/* ---------------- - * compiler constants for pg_enum - * ---------------- - */ -#define Natts_pg_enum 3 -#define Anum_pg_enum_enumtypid 1 -#define Anum_pg_enum_enumsortorder 2 -#define Anum_pg_enum_enumlabel 3 - -/* ---------------- - * pg_enum has no initial contents - * ---------------- - */ - /* * prototypes for functions in pg_enum.c */ diff --git a/src/include/catalog/pg_event_trigger.h b/src/include/catalog/pg_event_trigger.h index e03c81997c..f06cbe04dc 100644 --- a/src/include/catalog/pg_event_trigger.h +++ b/src/include/catalog/pg_event_trigger.h @@ -2,7 +2,6 @@ * * pg_event_trigger.h * definition of the system "event trigger" relation (pg_event_trigger) - * along with the relation's initial contents. * * * Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group @@ -11,8 +10,8 @@ * src/include/catalog/pg_event_trigger.h * * NOTES - * the genbki.pl script reads this file and generates .bki - * information from the DATA() statements. + * The Catalog.pm module reads this file and derives schema + * information. * *------------------------------------------------------------------------- */ @@ -20,15 +19,14 @@ #define PG_EVENT_TRIGGER_H #include "catalog/genbki.h" +#include "catalog/pg_event_trigger_d.h" /* ---------------- * pg_event_trigger definition. cpp turns this into * typedef struct FormData_pg_event_trigger * ---------------- */ -#define EventTriggerRelationId 3466 - -CATALOG(pg_event_trigger,3466) +CATALOG(pg_event_trigger,3466,EventTriggerRelationId) { NameData evtname; /* trigger's name */ NameData evtevent; /* trigger's event */ @@ -49,16 +47,4 @@ CATALOG(pg_event_trigger,3466) */ typedef FormData_pg_event_trigger *Form_pg_event_trigger; -/* ---------------- - * compiler constants for pg_event_trigger - * ---------------- - */ -#define Natts_pg_event_trigger 6 -#define Anum_pg_event_trigger_evtname 1 -#define Anum_pg_event_trigger_evtevent 2 -#define Anum_pg_event_trigger_evtowner 3 -#define Anum_pg_event_trigger_evtfoid 4 -#define Anum_pg_event_trigger_evtenabled 5 -#define Anum_pg_event_trigger_evttags 6 - #endif /* PG_EVENT_TRIGGER_H */ diff --git a/src/include/catalog/pg_extension.h b/src/include/catalog/pg_extension.h index 9ca6ca7936..10bbb692a5 100644 --- a/src/include/catalog/pg_extension.h +++ b/src/include/catalog/pg_extension.h @@ -2,7 +2,6 @@ * * pg_extension.h * definition of the system "extension" relation (pg_extension) - * along with the relation's initial contents. * * * Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group @@ -11,8 +10,8 @@ * src/include/catalog/pg_extension.h * * NOTES - * the genbki.pl script reads this file and generates .bki - * information from the DATA() statements. + * The Catalog.pm module reads this file and derives schema + * information. * *------------------------------------------------------------------------- */ @@ -20,15 +19,14 @@ #define PG_EXTENSION_H #include "catalog/genbki.h" +#include "catalog/pg_extension_d.h" /* ---------------- * pg_extension definition. cpp turns this into * typedef struct FormData_pg_extension * ---------------- */ -#define ExtensionRelationId 3079 - -CATALOG(pg_extension,3079) +CATALOG(pg_extension,3079,ExtensionRelationId) { NameData extname; /* extension name */ Oid extowner; /* extension owner */ @@ -50,23 +48,4 @@ CATALOG(pg_extension,3079) */ typedef FormData_pg_extension *Form_pg_extension; -/* ---------------- - * compiler constants for pg_extension - * ---------------- - */ - -#define Natts_pg_extension 7 -#define Anum_pg_extension_extname 1 -#define Anum_pg_extension_extowner 2 -#define Anum_pg_extension_extnamespace 3 -#define Anum_pg_extension_extrelocatable 4 -#define Anum_pg_extension_extversion 5 -#define Anum_pg_extension_extconfig 6 -#define Anum_pg_extension_extcondition 7 - -/* ---------------- - * pg_extension has no initial contents - * ---------------- - */ - #endif /* PG_EXTENSION_H */ diff --git a/src/include/catalog/pg_foreign_data_wrapper.h b/src/include/catalog/pg_foreign_data_wrapper.h index dd00586b6e..67e331987c 100644 --- a/src/include/catalog/pg_foreign_data_wrapper.h +++ b/src/include/catalog/pg_foreign_data_wrapper.h @@ -2,7 +2,6 @@ * * pg_foreign_data_wrapper.h * definition of the system "foreign-data wrapper" relation (pg_foreign_data_wrapper) - * along with the relation's initial contents. * * * Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group @@ -11,8 +10,8 @@ * src/include/catalog/pg_foreign_data_wrapper.h * * NOTES - * the genbki.pl script reads this file and generates .bki - * information from the DATA() statements. + * The Catalog.pm module reads this file and derives schema + * information. * *------------------------------------------------------------------------- */ @@ -20,15 +19,14 @@ #define PG_FOREIGN_DATA_WRAPPER_H #include "catalog/genbki.h" +#include "catalog/pg_foreign_data_wrapper_d.h" /* ---------------- * pg_foreign_data_wrapper definition. cpp turns this into * typedef struct FormData_pg_foreign_data_wrapper * ---------------- */ -#define ForeignDataWrapperRelationId 2328 - -CATALOG(pg_foreign_data_wrapper,2328) +CATALOG(pg_foreign_data_wrapper,2328,ForeignDataWrapperRelationId) { NameData fdwname; /* foreign-data wrapper name */ Oid fdwowner; /* FDW owner */ @@ -48,17 +46,4 @@ CATALOG(pg_foreign_data_wrapper,2328) */ typedef FormData_pg_foreign_data_wrapper *Form_pg_foreign_data_wrapper; -/* ---------------- - * compiler constants for pg_fdw - * ---------------- - */ - -#define Natts_pg_foreign_data_wrapper 6 -#define Anum_pg_foreign_data_wrapper_fdwname 1 -#define Anum_pg_foreign_data_wrapper_fdwowner 2 -#define Anum_pg_foreign_data_wrapper_fdwhandler 3 -#define Anum_pg_foreign_data_wrapper_fdwvalidator 4 -#define Anum_pg_foreign_data_wrapper_fdwacl 5 -#define Anum_pg_foreign_data_wrapper_fdwoptions 6 - #endif /* PG_FOREIGN_DATA_WRAPPER_H */ diff --git a/src/include/catalog/pg_foreign_server.h b/src/include/catalog/pg_foreign_server.h index a8c9e87540..0d25839c3d 100644 --- a/src/include/catalog/pg_foreign_server.h +++ b/src/include/catalog/pg_foreign_server.h @@ -9,8 +9,8 @@ * src/include/catalog/pg_foreign_server.h * * NOTES - * the genbki.pl script reads this file and generates .bki - * information from the DATA() statements. + * The Catalog.pm module reads this file and derives schema + * information. * *------------------------------------------------------------------------- */ @@ -18,15 +18,14 @@ #define PG_FOREIGN_SERVER_H #include "catalog/genbki.h" +#include "catalog/pg_foreign_server_d.h" /* ---------------- * pg_foreign_server definition. cpp turns this into * typedef struct FormData_pg_foreign_server * ---------------- */ -#define ForeignServerRelationId 1417 - -CATALOG(pg_foreign_server,1417) +CATALOG(pg_foreign_server,1417,ForeignServerRelationId) { NameData srvname; /* foreign server name */ Oid srvowner; /* server owner */ @@ -47,18 +46,4 @@ CATALOG(pg_foreign_server,1417) */ typedef FormData_pg_foreign_server *Form_pg_foreign_server; -/* ---------------- - * compiler constants for pg_foreign_server - * ---------------- - */ - -#define Natts_pg_foreign_server 7 -#define Anum_pg_foreign_server_srvname 1 -#define Anum_pg_foreign_server_srvowner 2 -#define Anum_pg_foreign_server_srvfdw 3 -#define Anum_pg_foreign_server_srvtype 4 -#define Anum_pg_foreign_server_srvversion 5 -#define Anum_pg_foreign_server_srvacl 6 -#define Anum_pg_foreign_server_srvoptions 7 - #endif /* PG_FOREIGN_SERVER_H */ diff --git a/src/include/catalog/pg_foreign_table.h b/src/include/catalog/pg_foreign_table.h index 210e77b79a..13de918880 100644 --- a/src/include/catalog/pg_foreign_table.h +++ b/src/include/catalog/pg_foreign_table.h @@ -9,8 +9,8 @@ * src/include/catalog/pg_foreign_table.h * * NOTES - * the genbki.pl script reads this file and generates .bki - * information from the DATA() statements. + * The Catalog.pm module reads this file and derives schema + * information. * *------------------------------------------------------------------------- */ @@ -18,15 +18,14 @@ #define PG_FOREIGN_TABLE_H #include "catalog/genbki.h" +#include "catalog/pg_foreign_table_d.h" /* ---------------- * pg_foreign_table definition. cpp turns this into * typedef struct FormData_pg_foreign_table * ---------------- */ -#define ForeignTableRelationId 3118 - -CATALOG(pg_foreign_table,3118) BKI_WITHOUT_OIDS +CATALOG(pg_foreign_table,3118,ForeignTableRelationId) BKI_WITHOUT_OIDS { Oid ftrelid; /* OID of foreign table */ Oid ftserver; /* OID of foreign server */ @@ -43,14 +42,4 @@ CATALOG(pg_foreign_table,3118) BKI_WITHOUT_OIDS */ typedef FormData_pg_foreign_table *Form_pg_foreign_table; -/* ---------------- - * compiler constants for pg_foreign_table - * ---------------- - */ - -#define Natts_pg_foreign_table 3 -#define Anum_pg_foreign_table_ftrelid 1 -#define Anum_pg_foreign_table_ftserver 2 -#define Anum_pg_foreign_table_ftoptions 3 - #endif /* PG_FOREIGN_TABLE_H */ diff --git a/src/include/catalog/pg_index.h b/src/include/catalog/pg_index.h index 6ae03dbcbb..88ff40f820 100644 --- a/src/include/catalog/pg_index.h +++ b/src/include/catalog/pg_index.h @@ -2,7 +2,6 @@ * * pg_index.h * definition of the system "index" relation (pg_index) - * along with the relation's initial contents. * * * Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group @@ -11,8 +10,8 @@ * src/include/catalog/pg_index.h * * NOTES - * the genbki.pl script reads this file and generates .bki - * information from the DATA() statements. + * The Catalog.pm module reads this file and derives schema + * information. * *------------------------------------------------------------------------- */ @@ -20,15 +19,14 @@ #define PG_INDEX_H #include "catalog/genbki.h" +#include "catalog/pg_index_d.h" /* ---------------- * pg_index definition. cpp turns this into * typedef struct FormData_pg_index. * ---------------- */ -#define IndexRelationId 2610 - -CATALOG(pg_index,2610) BKI_WITHOUT_OIDS BKI_SCHEMA_MACRO +CATALOG(pg_index,2610,IndexRelationId) BKI_WITHOUT_OIDS BKI_SCHEMA_MACRO { Oid indexrelid; /* OID of the index */ Oid indrelid; /* OID of the relation it indexes */ @@ -67,31 +65,7 @@ CATALOG(pg_index,2610) BKI_WITHOUT_OIDS BKI_SCHEMA_MACRO */ typedef FormData_pg_index *Form_pg_index; -/* ---------------- - * compiler constants for pg_index - * ---------------- - */ -#define Natts_pg_index 20 -#define Anum_pg_index_indexrelid 1 -#define Anum_pg_index_indrelid 2 -#define Anum_pg_index_indnatts 3 -#define Anum_pg_index_indnkeyatts 4 -#define Anum_pg_index_indisunique 5 -#define Anum_pg_index_indisprimary 6 -#define Anum_pg_index_indisexclusion 7 -#define Anum_pg_index_indimmediate 8 -#define Anum_pg_index_indisclustered 9 -#define Anum_pg_index_indisvalid 10 -#define Anum_pg_index_indcheckxmin 11 -#define Anum_pg_index_indisready 12 -#define Anum_pg_index_indislive 13 -#define Anum_pg_index_indisreplident 14 -#define Anum_pg_index_indkey 15 -#define Anum_pg_index_indcollation 16 -#define Anum_pg_index_indclass 17 -#define Anum_pg_index_indoption 18 -#define Anum_pg_index_indexprs 19 -#define Anum_pg_index_indpred 20 +#ifdef EXPOSE_TO_CLIENT_CODE /* * Index AMs that support ordered scans must support these two indoption @@ -101,6 +75,8 @@ typedef FormData_pg_index *Form_pg_index; #define INDOPTION_DESC 0x0001 /* values are in reverse order */ #define INDOPTION_NULLS_FIRST 0x0002 /* NULLs are first instead of last */ +#endif /* EXPOSE_TO_CLIENT_CODE */ + /* * Use of these macros is recommended over direct examination of the state * flag columns where possible; this allows source code compatibility with diff --git a/src/include/catalog/pg_inherits.h b/src/include/catalog/pg_inherits.h index 3c572f421b..3b2e03c4bf 100644 --- a/src/include/catalog/pg_inherits.h +++ b/src/include/catalog/pg_inherits.h @@ -2,7 +2,6 @@ * * pg_inherits.h * definition of the system "inherits" relation (pg_inherits) - * along with the relation's initial contents. * * * Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group @@ -11,8 +10,8 @@ * src/include/catalog/pg_inherits.h * * NOTES - * the genbki.pl script reads this file and generates .bki - * information from the DATA() statements. + * The Catalog.pm module reads this file and derives schema + * information. * *------------------------------------------------------------------------- */ @@ -20,15 +19,14 @@ #define PG_INHERITS_H #include "catalog/genbki.h" +#include "catalog/pg_inherits_d.h" /* ---------------- * pg_inherits definition. cpp turns this into * typedef struct FormData_pg_inherits * ---------------- */ -#define InheritsRelationId 2611 - -CATALOG(pg_inherits,2611) BKI_WITHOUT_OIDS +CATALOG(pg_inherits,2611,InheritsRelationId) BKI_WITHOUT_OIDS { Oid inhrelid; Oid inhparent; @@ -42,18 +40,4 @@ CATALOG(pg_inherits,2611) BKI_WITHOUT_OIDS */ typedef FormData_pg_inherits *Form_pg_inherits; -/* ---------------- - * compiler constants for pg_inherits - * ---------------- - */ -#define Natts_pg_inherits 3 -#define Anum_pg_inherits_inhrelid 1 -#define Anum_pg_inherits_inhparent 2 -#define Anum_pg_inherits_inhseqno 3 - -/* ---------------- - * pg_inherits has no initial contents - * ---------------- - */ - #endif /* PG_INHERITS_H */ diff --git a/src/include/catalog/pg_init_privs.h b/src/include/catalog/pg_init_privs.h index 65f02c2aef..6ce2646350 100644 --- a/src/include/catalog/pg_init_privs.h +++ b/src/include/catalog/pg_init_privs.h @@ -15,17 +15,20 @@ * for a table itself, so that it is distinct from any column privilege. * Currently, objsubid is unused and zero for all other kinds of objects. * + * Because the contents of this table depend on what is done with the other + * objects in the system (and, in particular, may change due to changes in + * system_views.sql), there is no pg_init_privs.dat file. The initial contents + * are loaded near the end of initdb. + * + * * Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * * src/include/catalog/pg_init_privs.h * * NOTES - * the genbki.pl script reads this file and generates .bki - * information from the DATA() statements. - * - * XXX do NOT break up DATA() statements into multiple lines! - * the scripts are not as smart as you might think... + * The Catalog.pm module reads this file and derives schema + * information. * *------------------------------------------------------------------------- */ @@ -33,15 +36,14 @@ #define PG_INIT_PRIVS_H #include "catalog/genbki.h" +#include "catalog/pg_init_privs_d.h" /* ---------------- * pg_init_privs definition. cpp turns this into * typedef struct FormData_pg_init_privs * ---------------- */ -#define InitPrivsRelationId 3394 - -CATALOG(pg_init_privs,3394) BKI_WITHOUT_OIDS +CATALOG(pg_init_privs,3394,InitPrivsRelationId) BKI_WITHOUT_OIDS { Oid objoid; /* OID of object itself */ Oid classoid; /* OID of table containing object */ @@ -60,17 +62,6 @@ CATALOG(pg_init_privs,3394) BKI_WITHOUT_OIDS */ typedef FormData_pg_init_privs * Form_pg_init_privs; -/* ---------------- - * compiler constants for pg_init_privs - * ---------------- - */ -#define Natts_pg_init_privs 5 -#define Anum_pg_init_privs_objoid 1 -#define Anum_pg_init_privs_classoid 2 -#define Anum_pg_init_privs_objsubid 3 -#define Anum_pg_init_privs_privtype 4 -#define Anum_pg_init_privs_initprivs 5 - /* * It is important to know if the initial privileges are from initdb or from an * extension. This enum is used to provide that differentiation and the two @@ -84,17 +75,4 @@ typedef enum InitPrivsType INITPRIVS_EXTENSION = 'e' } InitPrivsType; -/* ---------------- - * initial contents of pg_init_privs - * ---------------- - */ - -/* - * Because the contents of this table depend on what is done with the other - * objects in the system (and, in particular, may change due to changes is - * system_views.sql), there is no initialization here. - * - * The initial contents are loaded near the end of initdb. - */ - #endif /* PG_INIT_PRIVS_H */ diff --git a/src/include/catalog/pg_language.dat b/src/include/catalog/pg_language.dat new file mode 100644 index 0000000000..1b50a66ea4 --- /dev/null +++ b/src/include/catalog/pg_language.dat @@ -0,0 +1,31 @@ +#---------------------------------------------------------------------- +# +# pg_language.dat +# Initial contents of the pg_language system relation. +# +# Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group +# Portions Copyright (c) 1994, Regents of the University of California +# +# src/include/catalog/pg_language.dat +# +#---------------------------------------------------------------------- + +[ + +{ oid => '12', oid_symbol => 'INTERNALlanguageId', + descr => 'built-in functions', + lanname => 'internal', lanowner => 'PGUID', lanispl => 'f', + lanpltrusted => 'f', lanplcallfoid => '0', laninline => '0', + lanvalidator => '2246', lanacl => '_null_' }, +{ oid => '13', oid_symbol => 'ClanguageId', + descr => 'dynamically-loaded C functions', + lanname => 'c', lanowner => 'PGUID', lanispl => 'f', lanpltrusted => 'f', + lanplcallfoid => '0', laninline => '0', lanvalidator => '2247', + lanacl => '_null_' }, +{ oid => '14', oid_symbol => 'SQLlanguageId', + descr => 'SQL-language functions', + lanname => 'sql', lanowner => 'PGUID', lanispl => 'f', lanpltrusted => 't', + lanplcallfoid => '0', laninline => '0', lanvalidator => '2248', + lanacl => '_null_' }, + +] diff --git a/src/include/catalog/pg_language.h b/src/include/catalog/pg_language.h index 6b373f96d5..e2d8d1571b 100644 --- a/src/include/catalog/pg_language.h +++ b/src/include/catalog/pg_language.h @@ -2,7 +2,6 @@ * * pg_language.h * definition of the system "language" relation (pg_language) - * along with the relation's initial contents. * * * Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group @@ -11,8 +10,8 @@ * src/include/catalog/pg_language.h * * NOTES - * the genbki.pl script reads this file and generates .bki - * information from the DATA() statements. + * The Catalog.pm module reads this file and derives schema + * information. * *------------------------------------------------------------------------- */ @@ -20,15 +19,14 @@ #define PG_LANGUAGE_H #include "catalog/genbki.h" +#include "catalog/pg_language_d.h" /* ---------------- * pg_language definition. cpp turns this into * typedef struct FormData_pg_language * ---------------- */ -#define LanguageRelationId 2612 - -CATALOG(pg_language,2612) +CATALOG(pg_language,2612,LanguageRelationId) { NameData lanname; /* Language name */ Oid lanowner; /* Language's owner */ @@ -50,33 +48,4 @@ CATALOG(pg_language,2612) */ typedef FormData_pg_language *Form_pg_language; -/* ---------------- - * compiler constants for pg_language - * ---------------- - */ -#define Natts_pg_language 8 -#define Anum_pg_language_lanname 1 -#define Anum_pg_language_lanowner 2 -#define Anum_pg_language_lanispl 3 -#define Anum_pg_language_lanpltrusted 4 -#define Anum_pg_language_lanplcallfoid 5 -#define Anum_pg_language_laninline 6 -#define Anum_pg_language_lanvalidator 7 -#define Anum_pg_language_lanacl 8 - -/* ---------------- - * initial contents of pg_language - * ---------------- - */ - -DATA(insert OID = 12 ( internal PGUID f f 0 0 2246 _null_ )); -DESCR("built-in functions"); -#define INTERNALlanguageId 12 -DATA(insert OID = 13 ( c PGUID f f 0 0 2247 _null_ )); -DESCR("dynamically-loaded C functions"); -#define ClanguageId 13 -DATA(insert OID = 14 ( sql PGUID f t 0 0 2248 _null_ )); -DESCR("SQL-language functions"); -#define SQLlanguageId 14 - #endif /* PG_LANGUAGE_H */ diff --git a/src/include/catalog/pg_largeobject.h b/src/include/catalog/pg_largeobject.h index 0a15649ddd..481d2ff63b 100644 --- a/src/include/catalog/pg_largeobject.h +++ b/src/include/catalog/pg_largeobject.h @@ -2,7 +2,6 @@ * * pg_largeobject.h * definition of the system "largeobject" relation (pg_largeobject) - * along with the relation's initial contents. * * * Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group @@ -11,8 +10,8 @@ * src/include/catalog/pg_largeobject.h * * NOTES - * the genbki.pl script reads this file and generates .bki - * information from the DATA() statements. + * The Catalog.pm module reads this file and derives schema + * information. * *------------------------------------------------------------------------- */ @@ -20,15 +19,14 @@ #define PG_LARGEOBJECT_H #include "catalog/genbki.h" +#include "catalog/pg_largeobject_d.h" /* ---------------- * pg_largeobject definition. cpp turns this into * typedef struct FormData_pg_largeobject * ---------------- */ -#define LargeObjectRelationId 2613 - -CATALOG(pg_largeobject,2613) BKI_WITHOUT_OIDS +CATALOG(pg_largeobject,2613,LargeObjectRelationId) BKI_WITHOUT_OIDS { Oid loid; /* Identifier of large object */ int32 pageno; /* Page number (starting from 0) */ @@ -45,15 +43,6 @@ CATALOG(pg_largeobject,2613) BKI_WITHOUT_OIDS */ typedef FormData_pg_largeobject *Form_pg_largeobject; -/* ---------------- - * compiler constants for pg_largeobject - * ---------------- - */ -#define Natts_pg_largeobject 3 -#define Anum_pg_largeobject_loid 1 -#define Anum_pg_largeobject_pageno 2 -#define Anum_pg_largeobject_data 3 - extern Oid LargeObjectCreate(Oid loid); extern void LargeObjectDrop(Oid loid); extern bool LargeObjectExists(Oid loid); diff --git a/src/include/catalog/pg_largeobject_metadata.h b/src/include/catalog/pg_largeobject_metadata.h index 4535b51b53..a8732bc489 100644 --- a/src/include/catalog/pg_largeobject_metadata.h +++ b/src/include/catalog/pg_largeobject_metadata.h @@ -2,7 +2,6 @@ * * pg_largeobject_metadata.h * definition of the system "largeobject_metadata" relation (pg_largeobject_metadata) - * along with the relation's initial contents. * * * Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group @@ -11,8 +10,8 @@ * src/include/catalog/pg_largeobject_metadata.h * * NOTES - * the genbki.pl script reads this file and generates .bki - * information from the DATA() statements. + * The Catalog.pm module reads this file and derives schema + * information. * *------------------------------------------------------------------------- */ @@ -20,15 +19,14 @@ #define PG_LARGEOBJECT_METADATA_H #include "catalog/genbki.h" +#include "catalog/pg_largeobject_metadata_d.h" /* ---------------- * pg_largeobject_metadata definition. cpp turns this into * typedef struct FormData_pg_largeobject_metadata * ---------------- */ -#define LargeObjectMetadataRelationId 2995 - -CATALOG(pg_largeobject_metadata,2995) +CATALOG(pg_largeobject_metadata,2995,LargeObjectMetadataRelationId) { Oid lomowner; /* OID of the largeobject owner */ @@ -44,12 +42,4 @@ CATALOG(pg_largeobject_metadata,2995) */ typedef FormData_pg_largeobject_metadata *Form_pg_largeobject_metadata; -/* ---------------- - * compiler constants for pg_largeobject_metadata - * ---------------- - */ -#define Natts_pg_largeobject_metadata 2 -#define Anum_pg_largeobject_metadata_lomowner 1 -#define Anum_pg_largeobject_metadata_lomacl 2 - #endif /* PG_LARGEOBJECT_METADATA_H */ diff --git a/src/include/catalog/pg_namespace.dat b/src/include/catalog/pg_namespace.dat new file mode 100644 index 0000000000..e3549df273 --- /dev/null +++ b/src/include/catalog/pg_namespace.dat @@ -0,0 +1,25 @@ +#---------------------------------------------------------------------- +# +# pg_namespace.dat +# Initial contents of the pg_namespace system relation. +# +# Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group +# Portions Copyright (c) 1994, Regents of the University of California +# +# src/include/catalog/pg_namespace.dat +# +#---------------------------------------------------------------------- + +[ + +{ oid => '11', oid_symbol => 'PG_CATALOG_NAMESPACE', + descr => 'system catalog schema', + nspname => 'pg_catalog', nspowner => 'PGUID', nspacl => '_null_' }, +{ oid => '99', oid_symbol => 'PG_TOAST_NAMESPACE', + descr => 'reserved schema for TOAST tables', + nspname => 'pg_toast', nspowner => 'PGUID', nspacl => '_null_' }, +{ oid => '2200', oid_symbol => 'PG_PUBLIC_NAMESPACE', + descr => 'standard public schema', + nspname => 'public', nspowner => 'PGUID', nspacl => '_null_' }, + +] diff --git a/src/include/catalog/pg_namespace.h b/src/include/catalog/pg_namespace.h index dbb9f6626f..0d9cada79f 100644 --- a/src/include/catalog/pg_namespace.h +++ b/src/include/catalog/pg_namespace.h @@ -2,7 +2,6 @@ * * pg_namespace.h * definition of the system "namespace" relation (pg_namespace) - * along with the relation's initial contents. * * * Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group @@ -11,8 +10,8 @@ * src/include/catalog/pg_namespace.h * * NOTES - * the genbki.pl script reads this file and generates .bki - * information from the DATA() statements. + * The Catalog.pm module reads this file and derives schema + * information. * *------------------------------------------------------------------------- */ @@ -20,6 +19,7 @@ #define PG_NAMESPACE_H #include "catalog/genbki.h" +#include "catalog/pg_namespace_d.h" /* ---------------------------------------------------------------- * pg_namespace definition. @@ -31,9 +31,7 @@ * nspacl access privilege list * ---------------------------------------------------------------- */ -#define NamespaceRelationId 2615 - -CATALOG(pg_namespace,2615) +CATALOG(pg_namespace,2615,NamespaceRelationId) { NameData nspname; Oid nspowner; @@ -50,33 +48,6 @@ CATALOG(pg_namespace,2615) */ typedef FormData_pg_namespace *Form_pg_namespace; -/* ---------------- - * compiler constants for pg_namespace - * ---------------- - */ - -#define Natts_pg_namespace 3 -#define Anum_pg_namespace_nspname 1 -#define Anum_pg_namespace_nspowner 2 -#define Anum_pg_namespace_nspacl 3 - - -/* ---------------- - * initial contents of pg_namespace - * --------------- - */ - -DATA(insert OID = 11 ( pg_catalog PGUID _null_ )); -DESCR("system catalog schema"); -#define PG_CATALOG_NAMESPACE 11 -DATA(insert OID = 99 ( pg_toast PGUID _null_ )); -DESCR("reserved schema for TOAST tables"); -#define PG_TOAST_NAMESPACE 99 -DATA(insert OID = 2200 ( public PGUID _null_ )); -DESCR("standard public schema"); -#define PG_PUBLIC_NAMESPACE 2200 - - /* * prototypes for functions in pg_namespace.c */ diff --git a/src/include/catalog/pg_opclass.dat b/src/include/catalog/pg_opclass.dat new file mode 100644 index 0000000000..94e3e1e5fa --- /dev/null +++ b/src/include/catalog/pg_opclass.dat @@ -0,0 +1,357 @@ +#---------------------------------------------------------------------- +# +# pg_opclass.dat +# Initial contents of the pg_opclass system relation. +# +# Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group +# Portions Copyright (c) 1994, Regents of the University of California +# +# src/include/catalog/pg_opclass.dat +# +#---------------------------------------------------------------------- + +[ + +# Note: we hard-wire an OID only for a few entries that have to be explicitly +# referenced in the C code or in built-in catalog entries. The rest get OIDs +# assigned on-the-fly during initdb. + +{ opcmethod => 'btree', opcname => 'abstime_ops', + opcfamily => 'btree/abstime_ops', opcintype => 'abstime' }, +{ opcmethod => 'btree', opcname => 'array_ops', opcfamily => 'btree/array_ops', + opcintype => 'anyarray' }, +{ opcmethod => 'hash', opcname => 'array_ops', opcfamily => 'hash/array_ops', + opcintype => 'anyarray' }, +{ opcmethod => 'btree', opcname => 'bit_ops', opcfamily => 'btree/bit_ops', + opcintype => 'bit' }, +{ opcmethod => 'btree', opcname => 'bool_ops', opcfamily => 'btree/bool_ops', + opcintype => 'bool' }, +{ opcmethod => 'btree', opcname => 'bpchar_ops', + opcfamily => 'btree/bpchar_ops', opcintype => 'bpchar' }, +{ opcmethod => 'hash', opcname => 'bpchar_ops', opcfamily => 'hash/bpchar_ops', + opcintype => 'bpchar' }, +{ opcmethod => 'btree', opcname => 'bytea_ops', opcfamily => 'btree/bytea_ops', + opcintype => 'bytea' }, +{ opcmethod => 'btree', opcname => 'char_ops', opcfamily => 'btree/char_ops', + opcintype => 'char' }, +{ opcmethod => 'hash', opcname => 'char_ops', opcfamily => 'hash/char_ops', + opcintype => 'char' }, +{ opcmethod => 'btree', opcname => 'cidr_ops', opcfamily => 'btree/network_ops', + opcintype => 'inet', opcdefault => 'f' }, +{ opcmethod => 'hash', opcname => 'cidr_ops', opcfamily => 'hash/network_ops', + opcintype => 'inet', opcdefault => 'f' }, +{ oid => '3122', oid_symbol => 'DATE_BTREE_OPS_OID', + opcmethod => 'btree', opcname => 'date_ops', + opcfamily => 'btree/datetime_ops', opcintype => 'date' }, +{ opcmethod => 'hash', opcname => 'date_ops', opcfamily => 'hash/date_ops', + opcintype => 'date' }, +{ opcmethod => 'btree', opcname => 'float4_ops', opcfamily => 'btree/float_ops', + opcintype => 'float4' }, +{ opcmethod => 'hash', opcname => 'float4_ops', opcfamily => 'hash/float_ops', + opcintype => 'float4' }, +{ oid => '3123', oid_symbol => 'FLOAT8_BTREE_OPS_OID', + opcmethod => 'btree', opcname => 'float8_ops', opcfamily => 'btree/float_ops', + opcintype => 'float8' }, +{ opcmethod => 'hash', opcname => 'float8_ops', opcfamily => 'hash/float_ops', + opcintype => 'float8' }, +{ opcmethod => 'btree', opcname => 'inet_ops', opcfamily => 'btree/network_ops', + opcintype => 'inet' }, +{ opcmethod => 'hash', opcname => 'inet_ops', opcfamily => 'hash/network_ops', + opcintype => 'inet' }, +{ opcmethod => 'gist', opcname => 'inet_ops', opcfamily => 'gist/network_ops', + opcintype => 'inet', opcdefault => 'f' }, +{ opcmethod => 'spgist', opcname => 'inet_ops', + opcfamily => 'spgist/network_ops', opcintype => 'inet' }, +{ oid => '1979', oid_symbol => 'INT2_BTREE_OPS_OID', + opcmethod => 'btree', opcname => 'int2_ops', opcfamily => 'btree/integer_ops', + opcintype => 'int2' }, +{ opcmethod => 'hash', opcname => 'int2_ops', opcfamily => 'hash/integer_ops', + opcintype => 'int2' }, +{ oid => '1978', oid_symbol => 'INT4_BTREE_OPS_OID', + opcmethod => 'btree', opcname => 'int4_ops', opcfamily => 'btree/integer_ops', + opcintype => 'int4' }, +{ opcmethod => 'hash', opcname => 'int4_ops', opcfamily => 'hash/integer_ops', + opcintype => 'int4' }, +{ oid => '3124', oid_symbol => 'INT8_BTREE_OPS_OID', + opcmethod => 'btree', opcname => 'int8_ops', opcfamily => 'btree/integer_ops', + opcintype => 'int8' }, +{ opcmethod => 'hash', opcname => 'int8_ops', opcfamily => 'hash/integer_ops', + opcintype => 'int8' }, +{ opcmethod => 'btree', opcname => 'interval_ops', + opcfamily => 'btree/interval_ops', opcintype => 'interval' }, +{ opcmethod => 'hash', opcname => 'interval_ops', + opcfamily => 'hash/interval_ops', opcintype => 'interval' }, +{ opcmethod => 'btree', opcname => 'macaddr_ops', + opcfamily => 'btree/macaddr_ops', opcintype => 'macaddr' }, +{ opcmethod => 'hash', opcname => 'macaddr_ops', + opcfamily => 'hash/macaddr_ops', opcintype => 'macaddr' }, +{ opcmethod => 'btree', opcname => 'macaddr8_ops', + opcfamily => 'btree/macaddr8_ops', opcintype => 'macaddr8' }, +{ opcmethod => 'hash', opcname => 'macaddr8_ops', + opcfamily => 'hash/macaddr8_ops', opcintype => 'macaddr8' }, + +# 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 => 'btree', opcname => 'name_ops', opcfamily => 'btree/name_ops', + opcintype => 'name', opckeytype => 'cstring' }, + +{ opcmethod => 'hash', opcname => 'name_ops', opcfamily => 'hash/name_ops', + opcintype => 'name' }, +{ oid => '3125', oid_symbol => 'NUMERIC_BTREE_OPS_OID', + opcmethod => 'btree', opcname => 'numeric_ops', + opcfamily => 'btree/numeric_ops', opcintype => 'numeric' }, +{ opcmethod => 'hash', opcname => 'numeric_ops', + opcfamily => 'hash/numeric_ops', opcintype => 'numeric' }, +{ oid => '1981', oid_symbol => 'OID_BTREE_OPS_OID', + opcmethod => 'btree', opcname => 'oid_ops', opcfamily => 'btree/oid_ops', + opcintype => 'oid' }, +{ opcmethod => 'hash', opcname => 'oid_ops', opcfamily => 'hash/oid_ops', + opcintype => 'oid' }, +{ opcmethod => 'btree', opcname => 'oidvector_ops', + opcfamily => 'btree/oidvector_ops', opcintype => 'oidvector' }, +{ opcmethod => 'hash', opcname => 'oidvector_ops', + opcfamily => 'hash/oidvector_ops', opcintype => 'oidvector' }, +{ opcmethod => 'btree', opcname => 'record_ops', + opcfamily => 'btree/record_ops', opcintype => 'record' }, +{ opcmethod => 'btree', opcname => 'record_image_ops', + opcfamily => 'btree/record_image_ops', opcintype => 'record', + opcdefault => 'f' }, +{ oid => '3126', oid_symbol => 'TEXT_BTREE_OPS_OID', + opcmethod => 'btree', opcname => 'text_ops', opcfamily => 'btree/text_ops', + opcintype => 'text' }, +{ opcmethod => 'hash', opcname => 'text_ops', opcfamily => 'hash/text_ops', + opcintype => 'text' }, +{ opcmethod => 'btree', opcname => 'time_ops', opcfamily => 'btree/time_ops', + opcintype => 'time' }, +{ opcmethod => 'hash', opcname => 'time_ops', opcfamily => 'hash/time_ops', + opcintype => 'time' }, +{ oid => '3127', oid_symbol => 'TIMESTAMPTZ_BTREE_OPS_OID', + opcmethod => 'btree', opcname => 'timestamptz_ops', + opcfamily => 'btree/datetime_ops', opcintype => 'timestamptz' }, +{ opcmethod => 'hash', opcname => 'timestamptz_ops', + opcfamily => 'hash/timestamptz_ops', opcintype => 'timestamptz' }, +{ opcmethod => 'btree', opcname => 'timetz_ops', + opcfamily => 'btree/timetz_ops', opcintype => 'timetz' }, +{ opcmethod => 'hash', opcname => 'timetz_ops', opcfamily => 'hash/timetz_ops', + opcintype => 'timetz' }, +{ opcmethod => 'btree', opcname => 'varbit_ops', + opcfamily => 'btree/varbit_ops', opcintype => 'varbit' }, +{ opcmethod => 'btree', opcname => 'varchar_ops', opcfamily => 'btree/text_ops', + opcintype => 'text', opcdefault => 'f' }, +{ opcmethod => 'hash', opcname => 'varchar_ops', opcfamily => 'hash/text_ops', + opcintype => 'text', opcdefault => 'f' }, +{ oid => '3128', oid_symbol => 'TIMESTAMP_BTREE_OPS_OID', + opcmethod => 'btree', opcname => 'timestamp_ops', + opcfamily => 'btree/datetime_ops', opcintype => 'timestamp' }, +{ opcmethod => 'hash', opcname => 'timestamp_ops', + opcfamily => 'hash/timestamp_ops', opcintype => 'timestamp' }, +{ opcmethod => 'btree', opcname => 'text_pattern_ops', + opcfamily => 'btree/text_pattern_ops', opcintype => 'text', + opcdefault => 'f' }, +{ opcmethod => 'btree', opcname => 'varchar_pattern_ops', + opcfamily => 'btree/text_pattern_ops', opcintype => 'text', + opcdefault => 'f' }, +{ opcmethod => 'btree', opcname => 'bpchar_pattern_ops', + opcfamily => 'btree/bpchar_pattern_ops', opcintype => 'bpchar', + opcdefault => 'f' }, +{ opcmethod => 'btree', opcname => 'money_ops', opcfamily => 'btree/money_ops', + opcintype => 'money' }, +{ opcmethod => 'hash', opcname => 'bool_ops', opcfamily => 'hash/bool_ops', + opcintype => 'bool' }, +{ opcmethod => 'hash', opcname => 'bytea_ops', opcfamily => 'hash/bytea_ops', + opcintype => 'bytea' }, +{ opcmethod => 'btree', opcname => 'tid_ops', opcfamily => 'btree/tid_ops', + opcintype => 'tid' }, +{ opcmethod => 'hash', opcname => 'xid_ops', opcfamily => 'hash/xid_ops', + opcintype => 'xid' }, +{ opcmethod => 'hash', opcname => 'cid_ops', opcfamily => 'hash/cid_ops', + opcintype => 'cid' }, +{ opcmethod => 'hash', opcname => 'abstime_ops', + opcfamily => 'hash/abstime_ops', opcintype => 'abstime' }, +{ opcmethod => 'hash', opcname => 'reltime_ops', + opcfamily => 'hash/reltime_ops', opcintype => 'reltime' }, +{ opcmethod => 'hash', opcname => 'text_pattern_ops', + opcfamily => 'hash/text_pattern_ops', opcintype => 'text', + opcdefault => 'f' }, +{ opcmethod => 'hash', opcname => 'varchar_pattern_ops', + opcfamily => 'hash/text_pattern_ops', opcintype => 'text', + opcdefault => 'f' }, +{ opcmethod => 'hash', opcname => 'bpchar_pattern_ops', + opcfamily => 'hash/bpchar_pattern_ops', opcintype => 'bpchar', + opcdefault => 'f' }, +{ opcmethod => 'btree', opcname => 'reltime_ops', + opcfamily => 'btree/reltime_ops', opcintype => 'reltime' }, +{ opcmethod => 'btree', opcname => 'tinterval_ops', + opcfamily => 'btree/tinterval_ops', opcintype => 'tinterval' }, +{ opcmethod => 'hash', opcname => 'aclitem_ops', + opcfamily => 'hash/aclitem_ops', opcintype => 'aclitem' }, +{ opcmethod => 'gist', opcname => 'box_ops', opcfamily => 'gist/box_ops', + opcintype => 'box' }, +{ opcmethod => 'gist', opcname => 'point_ops', opcfamily => 'gist/point_ops', + opcintype => 'point', opckeytype => 'box' }, +{ opcmethod => 'gist', opcname => 'poly_ops', opcfamily => 'gist/poly_ops', + opcintype => 'polygon', opckeytype => 'box' }, +{ opcmethod => 'gist', opcname => 'circle_ops', opcfamily => 'gist/circle_ops', + opcintype => 'circle', opckeytype => 'box' }, +{ opcmethod => 'gin', opcname => 'array_ops', opcfamily => 'gin/array_ops', + opcintype => 'anyarray', opckeytype => 'anyelement' }, +{ opcmethod => 'btree', opcname => 'uuid_ops', opcfamily => 'btree/uuid_ops', + opcintype => 'uuid' }, +{ opcmethod => 'hash', opcname => 'uuid_ops', opcfamily => 'hash/uuid_ops', + opcintype => 'uuid' }, +{ opcmethod => 'btree', opcname => 'pg_lsn_ops', + opcfamily => 'btree/pg_lsn_ops', opcintype => 'pg_lsn' }, +{ opcmethod => 'hash', opcname => 'pg_lsn_ops', opcfamily => 'hash/pg_lsn_ops', + opcintype => 'pg_lsn' }, +{ opcmethod => 'btree', opcname => 'enum_ops', opcfamily => 'btree/enum_ops', + opcintype => 'anyenum' }, +{ opcmethod => 'hash', opcname => 'enum_ops', opcfamily => 'hash/enum_ops', + opcintype => 'anyenum' }, +{ opcmethod => 'btree', opcname => 'tsvector_ops', + opcfamily => 'btree/tsvector_ops', opcintype => 'tsvector' }, +{ opcmethod => 'gist', opcname => 'tsvector_ops', + opcfamily => 'gist/tsvector_ops', opcintype => 'tsvector', + opckeytype => 'gtsvector' }, +{ opcmethod => 'gin', opcname => 'tsvector_ops', + opcfamily => 'gin/tsvector_ops', opcintype => 'tsvector', + opckeytype => 'text' }, +{ opcmethod => 'btree', opcname => 'tsquery_ops', + opcfamily => 'btree/tsquery_ops', opcintype => 'tsquery' }, +{ opcmethod => 'gist', opcname => 'tsquery_ops', + opcfamily => 'gist/tsquery_ops', opcintype => 'tsquery', + opckeytype => 'int8' }, +{ opcmethod => 'btree', opcname => 'range_ops', opcfamily => 'btree/range_ops', + opcintype => 'anyrange' }, +{ opcmethod => 'hash', opcname => 'range_ops', opcfamily => 'hash/range_ops', + opcintype => 'anyrange' }, +{ opcmethod => 'gist', opcname => 'range_ops', opcfamily => 'gist/range_ops', + opcintype => 'anyrange' }, +{ opcmethod => 'spgist', opcname => 'range_ops', + opcfamily => 'spgist/range_ops', opcintype => 'anyrange' }, +{ opcmethod => 'spgist', opcname => 'box_ops', opcfamily => 'spgist/box_ops', + opcintype => 'box' }, +{ opcmethod => 'spgist', opcname => 'quad_point_ops', + opcfamily => 'spgist/quad_point_ops', opcintype => 'point' }, +{ opcmethod => 'spgist', opcname => 'kd_point_ops', + opcfamily => 'spgist/kd_point_ops', opcintype => 'point', opcdefault => 'f' }, +{ opcmethod => 'spgist', opcname => 'text_ops', opcfamily => 'spgist/text_ops', + opcintype => 'text' }, +{ opcmethod => 'spgist', opcname => 'poly_ops', opcfamily => 'spgist/poly_ops', + opcintype => 'polygon', opckeytype => 'box' }, +{ opcmethod => 'btree', opcname => 'jsonb_ops', opcfamily => 'btree/jsonb_ops', + opcintype => 'jsonb' }, +{ opcmethod => 'hash', opcname => 'jsonb_ops', opcfamily => 'hash/jsonb_ops', + opcintype => 'jsonb' }, +{ opcmethod => 'gin', opcname => 'jsonb_ops', opcfamily => 'gin/jsonb_ops', + opcintype => 'jsonb', opckeytype => 'text' }, +{ opcmethod => 'gin', opcname => 'jsonb_path_ops', + opcfamily => 'gin/jsonb_path_ops', opcintype => 'jsonb', opcdefault => 'f', + opckeytype => 'int4' }, + +# BRIN operator classes + +# no brin opclass for bool + +{ opcmethod => 'brin', opcname => 'bytea_minmax_ops', + opcfamily => 'brin/bytea_minmax_ops', opcintype => 'bytea', + opckeytype => 'bytea' }, +{ opcmethod => 'brin', opcname => 'char_minmax_ops', + opcfamily => 'brin/char_minmax_ops', opcintype => 'char', + opckeytype => 'char' }, +{ opcmethod => 'brin', opcname => 'name_minmax_ops', + opcfamily => 'brin/name_minmax_ops', opcintype => 'name', + opckeytype => 'name' }, +{ opcmethod => 'brin', opcname => 'int8_minmax_ops', + opcfamily => 'brin/integer_minmax_ops', opcintype => 'int8', + opckeytype => 'int8' }, +{ opcmethod => 'brin', opcname => 'int2_minmax_ops', + opcfamily => 'brin/integer_minmax_ops', opcintype => 'int2', + opckeytype => 'int2' }, +{ opcmethod => 'brin', opcname => 'int4_minmax_ops', + opcfamily => 'brin/integer_minmax_ops', opcintype => 'int4', + opckeytype => 'int4' }, +{ opcmethod => 'brin', opcname => 'text_minmax_ops', + opcfamily => 'brin/text_minmax_ops', opcintype => 'text', + opckeytype => 'text' }, +{ opcmethod => 'brin', opcname => 'oid_minmax_ops', + opcfamily => 'brin/oid_minmax_ops', opcintype => 'oid', opckeytype => 'oid' }, +{ opcmethod => 'brin', opcname => 'tid_minmax_ops', + opcfamily => 'brin/tid_minmax_ops', opcintype => 'tid', opckeytype => 'tid' }, +{ opcmethod => 'brin', opcname => 'float4_minmax_ops', + opcfamily => 'brin/float_minmax_ops', opcintype => 'float4', + opckeytype => 'float4' }, +{ opcmethod => 'brin', opcname => 'float8_minmax_ops', + opcfamily => 'brin/float_minmax_ops', opcintype => 'float8', + opckeytype => 'float8' }, +{ opcmethod => 'brin', opcname => 'abstime_minmax_ops', + opcfamily => 'brin/abstime_minmax_ops', opcintype => 'abstime', + opckeytype => 'abstime' }, +{ opcmethod => 'brin', opcname => 'reltime_minmax_ops', + opcfamily => 'brin/reltime_minmax_ops', opcintype => 'reltime', + opckeytype => 'reltime' }, +{ opcmethod => 'brin', opcname => 'macaddr_minmax_ops', + opcfamily => 'brin/macaddr_minmax_ops', opcintype => 'macaddr', + opckeytype => 'macaddr' }, +{ opcmethod => 'brin', opcname => 'macaddr8_minmax_ops', + opcfamily => 'brin/macaddr8_minmax_ops', opcintype => 'macaddr8', + opckeytype => 'macaddr8' }, +{ opcmethod => 'brin', opcname => 'inet_minmax_ops', + opcfamily => 'brin/network_minmax_ops', opcintype => 'inet', + opcdefault => 'f', opckeytype => 'inet' }, +{ opcmethod => 'brin', opcname => 'inet_inclusion_ops', + opcfamily => 'brin/network_inclusion_ops', opcintype => 'inet', + opckeytype => 'inet' }, +{ opcmethod => 'brin', opcname => 'bpchar_minmax_ops', + opcfamily => 'brin/bpchar_minmax_ops', opcintype => 'bpchar', + opckeytype => 'bpchar' }, +{ opcmethod => 'brin', opcname => 'time_minmax_ops', + opcfamily => 'brin/time_minmax_ops', opcintype => 'time', + opckeytype => 'time' }, +{ opcmethod => 'brin', opcname => 'date_minmax_ops', + opcfamily => 'brin/datetime_minmax_ops', opcintype => 'date', + opckeytype => 'date' }, +{ opcmethod => 'brin', opcname => 'timestamp_minmax_ops', + opcfamily => 'brin/datetime_minmax_ops', opcintype => 'timestamp', + opckeytype => 'timestamp' }, +{ opcmethod => 'brin', opcname => 'timestamptz_minmax_ops', + opcfamily => 'brin/datetime_minmax_ops', opcintype => 'timestamptz', + opckeytype => 'timestamptz' }, +{ opcmethod => 'brin', opcname => 'interval_minmax_ops', + opcfamily => 'brin/interval_minmax_ops', opcintype => 'interval', + opckeytype => 'interval' }, +{ opcmethod => 'brin', opcname => 'timetz_minmax_ops', + opcfamily => 'brin/timetz_minmax_ops', opcintype => 'timetz', + opckeytype => 'timetz' }, +{ opcmethod => 'brin', opcname => 'bit_minmax_ops', + opcfamily => 'brin/bit_minmax_ops', opcintype => 'bit', opckeytype => 'bit' }, +{ opcmethod => 'brin', opcname => 'varbit_minmax_ops', + opcfamily => 'brin/varbit_minmax_ops', opcintype => 'varbit', + opckeytype => 'varbit' }, +{ opcmethod => 'brin', opcname => 'numeric_minmax_ops', + opcfamily => 'brin/numeric_minmax_ops', opcintype => 'numeric', + opckeytype => 'numeric' }, + +# no brin opclass for record, anyarray + +{ opcmethod => 'brin', opcname => 'uuid_minmax_ops', + opcfamily => 'brin/uuid_minmax_ops', opcintype => 'uuid', + opckeytype => 'uuid' }, +{ opcmethod => 'brin', opcname => 'range_inclusion_ops', + opcfamily => 'brin/range_inclusion_ops', opcintype => 'anyrange', + opckeytype => 'anyrange' }, +{ opcmethod => 'brin', opcname => 'pg_lsn_minmax_ops', + opcfamily => 'brin/pg_lsn_minmax_ops', opcintype => 'pg_lsn', + opckeytype => 'pg_lsn' }, + +# no brin opclass for enum, tsvector, tsquery, jsonb + +{ opcmethod => 'brin', opcname => 'box_inclusion_ops', + opcfamily => 'brin/box_inclusion_ops', opcintype => 'box', + opckeytype => 'box' }, + +# no brin opclass for the geometric types except box + +] diff --git a/src/include/catalog/pg_opclass.h b/src/include/catalog/pg_opclass.h index e11d52eaa8..16c3875daa 100644 --- a/src/include/catalog/pg_opclass.h +++ b/src/include/catalog/pg_opclass.h @@ -2,7 +2,6 @@ * * pg_opclass.h * definition of the system "opclass" relation (pg_opclass) - * along with the relation's initial contents. * * The primary key for this table is --- * that is, there is a row for each valid combination of opclass name and @@ -31,8 +30,8 @@ * src/include/catalog/pg_opclass.h * * NOTES - * the genbki.pl script reads this file and generates .bki - * information from the DATA() statements. + * The Catalog.pm module reads this file and derives schema + * information. * *------------------------------------------------------------------------- */ @@ -40,24 +39,38 @@ #define PG_OPCLASS_H #include "catalog/genbki.h" +#include "catalog/pg_opclass_d.h" /* ---------------- * pg_opclass definition. cpp turns this into * typedef struct FormData_pg_opclass * ---------------- */ -#define OperatorClassRelationId 2616 - -CATALOG(pg_opclass,2616) +CATALOG(pg_opclass,2616,OperatorClassRelationId) { - Oid opcmethod; /* index access method opclass is for */ - NameData opcname; /* name of this opclass */ - Oid opcnamespace; /* namespace of this opclass */ - Oid opcowner; /* opclass owner */ - Oid opcfamily; /* containing operator family */ - Oid opcintype; /* type of data indexed by opclass */ - bool opcdefault; /* T if opclass is default for opcintype */ - Oid opckeytype; /* type of data in index, or InvalidOid */ + /* index access method opclass is for */ + Oid opcmethod BKI_LOOKUP(pg_am); + + /* name of this opclass */ + NameData opcname; + + /* namespace of this opclass */ + Oid opcnamespace BKI_DEFAULT(PGNSP); + + /* opclass owner */ + Oid opcowner BKI_DEFAULT(PGUID); + + /* containing operator family */ + Oid opcfamily BKI_LOOKUP(pg_opfamily); + + /* type of data indexed by opclass */ + Oid opcintype BKI_LOOKUP(pg_type); + + /* T if opclass is default for opcintype */ + bool opcdefault BKI_DEFAULT(t); + + /* type of data in index, or InvalidOid */ + Oid opckeytype BKI_DEFAULT(0) BKI_LOOKUP(pg_type); } FormData_pg_opclass; /* ---------------- @@ -67,185 +80,4 @@ CATALOG(pg_opclass,2616) */ typedef FormData_pg_opclass *Form_pg_opclass; -/* ---------------- - * compiler constants for pg_opclass - * ---------------- - */ -#define Natts_pg_opclass 8 -#define Anum_pg_opclass_opcmethod 1 -#define Anum_pg_opclass_opcname 2 -#define Anum_pg_opclass_opcnamespace 3 -#define Anum_pg_opclass_opcowner 4 -#define Anum_pg_opclass_opcfamily 5 -#define Anum_pg_opclass_opcintype 6 -#define Anum_pg_opclass_opcdefault 7 -#define Anum_pg_opclass_opckeytype 8 - -/* ---------------- - * initial contents of pg_opclass - * - * Note: we hard-wire an OID only for a few entries that have to be explicitly - * referenced in the C code or in built-in catalog entries. The rest get OIDs - * assigned on-the-fly during initdb. - * ---------------- - */ - -DATA(insert ( 403 abstime_ops PGNSP PGUID 421 702 t 0 )); -DATA(insert ( 403 array_ops PGNSP PGUID 397 2277 t 0 )); -DATA(insert ( 405 array_ops PGNSP PGUID 627 2277 t 0 )); -DATA(insert ( 403 bit_ops PGNSP PGUID 423 1560 t 0 )); -DATA(insert ( 403 bool_ops PGNSP PGUID 424 16 t 0 )); -DATA(insert ( 403 bpchar_ops PGNSP PGUID 426 1042 t 0 )); -DATA(insert ( 405 bpchar_ops PGNSP PGUID 427 1042 t 0 )); -DATA(insert ( 403 bytea_ops PGNSP PGUID 428 17 t 0 )); -DATA(insert ( 403 char_ops PGNSP PGUID 429 18 t 0 )); -DATA(insert ( 405 char_ops PGNSP PGUID 431 18 t 0 )); -DATA(insert ( 403 cidr_ops PGNSP PGUID 1974 869 f 0 )); -DATA(insert ( 405 cidr_ops PGNSP PGUID 1975 869 f 0 )); -DATA(insert OID = 3122 ( 403 date_ops PGNSP PGUID 434 1082 t 0 )); -#define DATE_BTREE_OPS_OID 3122 -DATA(insert ( 405 date_ops PGNSP PGUID 435 1082 t 0 )); -DATA(insert ( 403 float4_ops PGNSP PGUID 1970 700 t 0 )); -DATA(insert ( 405 float4_ops PGNSP PGUID 1971 700 t 0 )); -DATA(insert OID = 3123 ( 403 float8_ops PGNSP PGUID 1970 701 t 0 )); -#define FLOAT8_BTREE_OPS_OID 3123 -DATA(insert ( 405 float8_ops PGNSP PGUID 1971 701 t 0 )); -DATA(insert ( 403 inet_ops PGNSP PGUID 1974 869 t 0 )); -DATA(insert ( 405 inet_ops PGNSP PGUID 1975 869 t 0 )); -DATA(insert ( 783 inet_ops PGNSP PGUID 3550 869 f 0 )); -DATA(insert ( 4000 inet_ops PGNSP PGUID 3794 869 t 0 )); -DATA(insert OID = 1979 ( 403 int2_ops PGNSP PGUID 1976 21 t 0 )); -#define INT2_BTREE_OPS_OID 1979 -DATA(insert ( 405 int2_ops PGNSP PGUID 1977 21 t 0 )); -DATA(insert OID = 1978 ( 403 int4_ops PGNSP PGUID 1976 23 t 0 )); -#define INT4_BTREE_OPS_OID 1978 -DATA(insert ( 405 int4_ops PGNSP PGUID 1977 23 t 0 )); -DATA(insert OID = 3124 ( 403 int8_ops PGNSP PGUID 1976 20 t 0 )); -#define INT8_BTREE_OPS_OID 3124 -DATA(insert ( 405 int8_ops PGNSP PGUID 1977 20 t 0 )); -DATA(insert ( 403 interval_ops PGNSP PGUID 1982 1186 t 0 )); -DATA(insert ( 405 interval_ops PGNSP PGUID 1983 1186 t 0 )); -DATA(insert ( 403 macaddr_ops PGNSP PGUID 1984 829 t 0 )); -DATA(insert ( 405 macaddr_ops PGNSP PGUID 1985 829 t 0 )); -DATA(insert ( 403 macaddr8_ops PGNSP PGUID 3371 774 t 0 )); -DATA(insert ( 405 macaddr8_ops PGNSP PGUID 3372 774 t 0 )); -/* - * 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. - */ -DATA(insert ( 403 name_ops PGNSP PGUID 1986 19 t 2275 )); -DATA(insert ( 405 name_ops PGNSP PGUID 1987 19 t 0 )); -DATA(insert OID = 3125 ( 403 numeric_ops PGNSP PGUID 1988 1700 t 0 )); -#define NUMERIC_BTREE_OPS_OID 3125 -DATA(insert ( 405 numeric_ops PGNSP PGUID 1998 1700 t 0 )); -DATA(insert OID = 1981 ( 403 oid_ops PGNSP PGUID 1989 26 t 0 )); -#define OID_BTREE_OPS_OID 1981 -DATA(insert ( 405 oid_ops PGNSP PGUID 1990 26 t 0 )); -DATA(insert ( 403 oidvector_ops PGNSP PGUID 1991 30 t 0 )); -DATA(insert ( 405 oidvector_ops PGNSP PGUID 1992 30 t 0 )); -DATA(insert ( 403 record_ops PGNSP PGUID 2994 2249 t 0 )); -DATA(insert ( 403 record_image_ops PGNSP PGUID 3194 2249 f 0 )); -DATA(insert OID = 3126 ( 403 text_ops PGNSP PGUID 1994 25 t 0 )); -#define TEXT_BTREE_OPS_OID 3126 -DATA(insert ( 405 text_ops PGNSP PGUID 1995 25 t 0 )); -DATA(insert ( 403 time_ops PGNSP PGUID 1996 1083 t 0 )); -DATA(insert ( 405 time_ops PGNSP PGUID 1997 1083 t 0 )); -DATA(insert OID = 3127 ( 403 timestamptz_ops PGNSP PGUID 434 1184 t 0 )); -#define TIMESTAMPTZ_BTREE_OPS_OID 3127 -DATA(insert ( 405 timestamptz_ops PGNSP PGUID 1999 1184 t 0 )); -DATA(insert ( 403 timetz_ops PGNSP PGUID 2000 1266 t 0 )); -DATA(insert ( 405 timetz_ops PGNSP PGUID 2001 1266 t 0 )); -DATA(insert ( 403 varbit_ops PGNSP PGUID 2002 1562 t 0 )); -DATA(insert ( 403 varchar_ops PGNSP PGUID 1994 25 f 0 )); -DATA(insert ( 405 varchar_ops PGNSP PGUID 1995 25 f 0 )); -DATA(insert OID = 3128 ( 403 timestamp_ops PGNSP PGUID 434 1114 t 0 )); -#define TIMESTAMP_BTREE_OPS_OID 3128 -DATA(insert ( 405 timestamp_ops PGNSP PGUID 2040 1114 t 0 )); -DATA(insert ( 403 text_pattern_ops PGNSP PGUID 2095 25 f 0 )); -DATA(insert ( 403 varchar_pattern_ops PGNSP PGUID 2095 25 f 0 )); -DATA(insert ( 403 bpchar_pattern_ops PGNSP PGUID 2097 1042 f 0 )); -DATA(insert ( 403 money_ops PGNSP PGUID 2099 790 t 0 )); -DATA(insert ( 405 bool_ops PGNSP PGUID 2222 16 t 0 )); -DATA(insert ( 405 bytea_ops PGNSP PGUID 2223 17 t 0 )); -DATA(insert ( 403 tid_ops PGNSP PGUID 2789 27 t 0 )); -DATA(insert ( 405 xid_ops PGNSP PGUID 2225 28 t 0 )); -DATA(insert ( 405 cid_ops PGNSP PGUID 2226 29 t 0 )); -DATA(insert ( 405 abstime_ops PGNSP PGUID 2227 702 t 0 )); -DATA(insert ( 405 reltime_ops PGNSP PGUID 2228 703 t 0 )); -DATA(insert ( 405 text_pattern_ops PGNSP PGUID 2229 25 f 0 )); -DATA(insert ( 405 varchar_pattern_ops PGNSP PGUID 2229 25 f 0 )); -DATA(insert ( 405 bpchar_pattern_ops PGNSP PGUID 2231 1042 f 0 )); -DATA(insert ( 403 reltime_ops PGNSP PGUID 2233 703 t 0 )); -DATA(insert ( 403 tinterval_ops PGNSP PGUID 2234 704 t 0 )); -DATA(insert ( 405 aclitem_ops PGNSP PGUID 2235 1033 t 0 )); -DATA(insert ( 783 box_ops PGNSP PGUID 2593 603 t 0 )); -DATA(insert ( 783 point_ops PGNSP PGUID 1029 600 t 603 )); -DATA(insert ( 783 poly_ops PGNSP PGUID 2594 604 t 603 )); -DATA(insert ( 783 circle_ops PGNSP PGUID 2595 718 t 603 )); -DATA(insert ( 2742 array_ops PGNSP PGUID 2745 2277 t 2283 )); -DATA(insert ( 403 uuid_ops PGNSP PGUID 2968 2950 t 0 )); -DATA(insert ( 405 uuid_ops PGNSP PGUID 2969 2950 t 0 )); -DATA(insert ( 403 pg_lsn_ops PGNSP PGUID 3253 3220 t 0 )); -DATA(insert ( 405 pg_lsn_ops PGNSP PGUID 3254 3220 t 0 )); -DATA(insert ( 403 enum_ops PGNSP PGUID 3522 3500 t 0 )); -DATA(insert ( 405 enum_ops PGNSP PGUID 3523 3500 t 0 )); -DATA(insert ( 403 tsvector_ops PGNSP PGUID 3626 3614 t 0 )); -DATA(insert ( 783 tsvector_ops PGNSP PGUID 3655 3614 t 3642 )); -DATA(insert ( 2742 tsvector_ops PGNSP PGUID 3659 3614 t 25 )); -DATA(insert ( 403 tsquery_ops PGNSP PGUID 3683 3615 t 0 )); -DATA(insert ( 783 tsquery_ops PGNSP PGUID 3702 3615 t 20 )); -DATA(insert ( 403 range_ops PGNSP PGUID 3901 3831 t 0 )); -DATA(insert ( 405 range_ops PGNSP PGUID 3903 3831 t 0 )); -DATA(insert ( 783 range_ops PGNSP PGUID 3919 3831 t 0 )); -DATA(insert ( 4000 range_ops PGNSP PGUID 3474 3831 t 0 )); -DATA(insert ( 4000 box_ops PGNSP PGUID 5000 603 t 0 )); -DATA(insert ( 4000 quad_point_ops PGNSP PGUID 4015 600 t 0 )); -DATA(insert ( 4000 kd_point_ops PGNSP PGUID 4016 600 f 0 )); -DATA(insert ( 4000 text_ops PGNSP PGUID 4017 25 t 0 )); -DATA(insert ( 4000 poly_ops PGNSP PGUID 5008 604 t 603 )); -DATA(insert ( 403 jsonb_ops PGNSP PGUID 4033 3802 t 0 )); -DATA(insert ( 405 jsonb_ops PGNSP PGUID 4034 3802 t 0 )); -DATA(insert ( 2742 jsonb_ops PGNSP PGUID 4036 3802 t 25 )); -DATA(insert ( 2742 jsonb_path_ops PGNSP PGUID 4037 3802 f 23 )); - -/* BRIN operator classes */ -/* no brin opclass for bool */ -DATA(insert ( 3580 bytea_minmax_ops PGNSP PGUID 4064 17 t 17 )); -DATA(insert ( 3580 char_minmax_ops PGNSP PGUID 4062 18 t 18 )); -DATA(insert ( 3580 name_minmax_ops PGNSP PGUID 4065 19 t 19 )); -DATA(insert ( 3580 int8_minmax_ops PGNSP PGUID 4054 20 t 20 )); -DATA(insert ( 3580 int2_minmax_ops PGNSP PGUID 4054 21 t 21 )); -DATA(insert ( 3580 int4_minmax_ops PGNSP PGUID 4054 23 t 23 )); -DATA(insert ( 3580 text_minmax_ops PGNSP PGUID 4056 25 t 25 )); -DATA(insert ( 3580 oid_minmax_ops PGNSP PGUID 4068 26 t 26 )); -DATA(insert ( 3580 tid_minmax_ops PGNSP PGUID 4069 27 t 27 )); -DATA(insert ( 3580 float4_minmax_ops PGNSP PGUID 4070 700 t 700 )); -DATA(insert ( 3580 float8_minmax_ops PGNSP PGUID 4070 701 t 701 )); -DATA(insert ( 3580 abstime_minmax_ops PGNSP PGUID 4072 702 t 702 )); -DATA(insert ( 3580 reltime_minmax_ops PGNSP PGUID 4073 703 t 703 )); -DATA(insert ( 3580 macaddr_minmax_ops PGNSP PGUID 4074 829 t 829 )); -DATA(insert ( 3580 macaddr8_minmax_ops PGNSP PGUID 4109 774 t 774 )); -DATA(insert ( 3580 inet_minmax_ops PGNSP PGUID 4075 869 f 869 )); -DATA(insert ( 3580 inet_inclusion_ops PGNSP PGUID 4102 869 t 869 )); -DATA(insert ( 3580 bpchar_minmax_ops PGNSP PGUID 4076 1042 t 1042 )); -DATA(insert ( 3580 time_minmax_ops PGNSP PGUID 4077 1083 t 1083 )); -DATA(insert ( 3580 date_minmax_ops PGNSP PGUID 4059 1082 t 1082 )); -DATA(insert ( 3580 timestamp_minmax_ops PGNSP PGUID 4059 1114 t 1114 )); -DATA(insert ( 3580 timestamptz_minmax_ops PGNSP PGUID 4059 1184 t 1184 )); -DATA(insert ( 3580 interval_minmax_ops PGNSP PGUID 4078 1186 t 1186 )); -DATA(insert ( 3580 timetz_minmax_ops PGNSP PGUID 4058 1266 t 1266 )); -DATA(insert ( 3580 bit_minmax_ops PGNSP PGUID 4079 1560 t 1560 )); -DATA(insert ( 3580 varbit_minmax_ops PGNSP PGUID 4080 1562 t 1562 )); -DATA(insert ( 3580 numeric_minmax_ops PGNSP PGUID 4055 1700 t 1700 )); -/* no brin opclass for record, anyarray */ -DATA(insert ( 3580 uuid_minmax_ops PGNSP PGUID 4081 2950 t 2950 )); -DATA(insert ( 3580 range_inclusion_ops PGNSP PGUID 4103 3831 t 3831 )); -DATA(insert ( 3580 pg_lsn_minmax_ops PGNSP PGUID 4082 3220 t 3220 )); -/* no brin opclass for enum, tsvector, tsquery, jsonb */ -DATA(insert ( 3580 box_inclusion_ops PGNSP PGUID 4104 603 t 603 )); -/* no brin opclass for the geometric types except box */ - #endif /* PG_OPCLASS_H */ diff --git a/src/include/catalog/pg_operator.dat b/src/include/catalog/pg_operator.dat new file mode 100644 index 0000000000..43827384cf --- /dev/null +++ b/src/include/catalog/pg_operator.dat @@ -0,0 +1,3340 @@ +#---------------------------------------------------------------------- +# +# pg_operator.dat +# Initial contents of the pg_operator system relation. +# +# Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group +# Portions Copyright (c) 1994, Regents of the University of California +# +# src/include/catalog/pg_operator.dat +# +#---------------------------------------------------------------------- + +[ + +# Note: every entry in pg_operator.dat 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. + +{ oid => '15', descr => 'equal', + oprname => '=', oprcanmerge => 't', oprcanhash => 't', oprleft => 'int4', + oprright => 'int8', oprresult => 'bool', oprcom => '=(int8,int4)', + oprnegate => '<>(int4,int8)', oprcode => 'int48eq', oprrest => 'eqsel', + oprjoin => 'eqjoinsel' }, +{ oid => '36', descr => 'not equal', + oprname => '<>', oprleft => 'int4', oprright => 'int8', oprresult => 'bool', + oprcom => '<>(int8,int4)', oprnegate => '=(int4,int8)', oprcode => 'int48ne', + oprrest => 'neqsel', oprjoin => 'neqjoinsel' }, +{ oid => '37', descr => 'less than', + oprname => '<', oprleft => 'int4', oprright => 'int8', oprresult => 'bool', + oprcom => '>(int8,int4)', oprnegate => '>=(int4,int8)', oprcode => 'int48lt', + oprrest => 'scalarltsel', oprjoin => 'scalarltjoinsel' }, +{ oid => '76', descr => 'greater than', + oprname => '>', oprleft => 'int4', oprright => 'int8', oprresult => 'bool', + oprcom => '<(int8,int4)', oprnegate => '<=(int4,int8)', oprcode => 'int48gt', + oprrest => 'scalargtsel', oprjoin => 'scalargtjoinsel' }, +{ oid => '80', descr => 'less than or equal', + oprname => '<=', oprleft => 'int4', oprright => 'int8', oprresult => 'bool', + oprcom => '>=(int8,int4)', oprnegate => '>(int4,int8)', oprcode => 'int48le', + oprrest => 'scalarlesel', oprjoin => 'scalarlejoinsel' }, +{ oid => '82', descr => 'greater than or equal', + oprname => '>=', oprleft => 'int4', oprright => 'int8', oprresult => 'bool', + oprcom => '<=(int8,int4)', oprnegate => '<(int4,int8)', oprcode => 'int48ge', + oprrest => 'scalargesel', oprjoin => 'scalargejoinsel' }, + +{ oid => '58', descr => 'less than', + oprname => '<', oprleft => 'bool', oprright => 'bool', oprresult => 'bool', + oprcom => '>(bool,bool)', oprnegate => '>=(bool,bool)', oprcode => 'boollt', + oprrest => 'scalarltsel', oprjoin => 'scalarltjoinsel' }, +{ oid => '59', descr => 'greater than', + oprname => '>', oprleft => 'bool', oprright => 'bool', oprresult => 'bool', + oprcom => '<(bool,bool)', oprnegate => '<=(bool,bool)', oprcode => 'boolgt', + oprrest => 'scalargtsel', oprjoin => 'scalargtjoinsel' }, +{ oid => '85', oid_symbol => 'BooleanNotEqualOperator', descr => 'not equal', + oprname => '<>', oprleft => 'bool', oprright => 'bool', oprresult => 'bool', + oprcom => '<>(bool,bool)', oprnegate => '=(bool,bool)', oprcode => 'boolne', + oprrest => 'neqsel', oprjoin => 'neqjoinsel' }, +{ oid => '91', oid_symbol => 'BooleanEqualOperator', descr => 'equal', + oprname => '=', oprcanmerge => 't', oprcanhash => 't', oprleft => 'bool', + oprright => 'bool', oprresult => 'bool', oprcom => '=(bool,bool)', + oprnegate => '<>(bool,bool)', oprcode => 'booleq', oprrest => 'eqsel', + oprjoin => 'eqjoinsel' }, +{ oid => '1694', descr => 'less than or equal', + oprname => '<=', oprleft => 'bool', oprright => 'bool', oprresult => 'bool', + oprcom => '>=(bool,bool)', oprnegate => '>(bool,bool)', oprcode => 'boolle', + oprrest => 'scalarlesel', oprjoin => 'scalarlejoinsel' }, +{ oid => '1695', descr => 'greater than or equal', + oprname => '>=', oprleft => 'bool', oprright => 'bool', oprresult => 'bool', + oprcom => '<=(bool,bool)', oprnegate => '<(bool,bool)', oprcode => 'boolge', + oprrest => 'scalargesel', oprjoin => 'scalargejoinsel' }, + +{ oid => '92', descr => 'equal', + oprname => '=', oprcanmerge => 't', oprcanhash => 't', oprleft => 'char', + oprright => 'char', oprresult => 'bool', oprcom => '=(char,char)', + oprnegate => '<>(char,char)', oprcode => 'chareq', oprrest => 'eqsel', + oprjoin => 'eqjoinsel' }, +{ oid => '93', descr => 'equal', + oprname => '=', oprcanmerge => 't', oprcanhash => 't', oprleft => 'name', + oprright => 'name', oprresult => 'bool', oprcom => '=(name,name)', + oprnegate => '<>(name,name)', oprcode => 'nameeq', oprrest => 'eqsel', + oprjoin => 'eqjoinsel' }, +{ oid => '94', descr => 'equal', + oprname => '=', oprcanmerge => 't', oprcanhash => 't', oprleft => 'int2', + oprright => 'int2', oprresult => 'bool', oprcom => '=(int2,int2)', + oprnegate => '<>(int2,int2)', oprcode => 'int2eq', oprrest => 'eqsel', + oprjoin => 'eqjoinsel' }, +{ oid => '95', descr => 'less than', + oprname => '<', oprleft => 'int2', oprright => 'int2', oprresult => 'bool', + oprcom => '>(int2,int2)', oprnegate => '>=(int2,int2)', oprcode => 'int2lt', + oprrest => 'scalarltsel', oprjoin => 'scalarltjoinsel' }, +{ oid => '96', oid_symbol => 'Int4EqualOperator', descr => 'equal', + oprname => '=', oprcanmerge => 't', oprcanhash => 't', oprleft => 'int4', + oprright => 'int4', oprresult => 'bool', oprcom => '=(int4,int4)', + oprnegate => '<>(int4,int4)', oprcode => 'int4eq', oprrest => 'eqsel', + oprjoin => 'eqjoinsel' }, +{ oid => '97', oid_symbol => 'Int4LessOperator', descr => 'less than', + oprname => '<', oprleft => 'int4', oprright => 'int4', oprresult => 'bool', + oprcom => '>(int4,int4)', oprnegate => '>=(int4,int4)', oprcode => 'int4lt', + oprrest => 'scalarltsel', oprjoin => 'scalarltjoinsel' }, +{ oid => '98', oid_symbol => 'TextEqualOperator', descr => 'equal', + oprname => '=', oprcanmerge => 't', oprcanhash => 't', oprleft => 'text', + oprright => 'text', oprresult => 'bool', oprcom => '=(text,text)', + oprnegate => '<>(text,text)', oprcode => 'texteq', oprrest => 'eqsel', + oprjoin => 'eqjoinsel' }, +{ oid => '3877', descr => 'starts with', + oprname => '^@', oprleft => 'text', oprright => 'text', oprresult => 'bool', + oprcode => 'starts_with', oprrest => 'prefixsel', + oprjoin => 'prefixjoinsel' }, + +{ oid => '349', descr => 'append element onto end of array', + oprname => '||', oprleft => 'anyarray', oprright => 'anyelement', + oprresult => 'anyarray', oprcode => 'array_append' }, +{ oid => '374', descr => 'prepend element onto front of array', + oprname => '||', oprleft => 'anyelement', oprright => 'anyarray', + oprresult => 'anyarray', oprcode => 'array_prepend' }, +{ oid => '375', descr => 'concatenate', + oprname => '||', oprleft => 'anyarray', oprright => 'anyarray', + oprresult => 'anyarray', oprcode => 'array_cat' }, + +{ oid => '352', descr => 'equal', + oprname => '=', oprcanhash => 't', oprleft => 'xid', oprright => 'xid', + oprresult => 'bool', oprcom => '=(xid,xid)', oprnegate => '<>(xid,xid)', + oprcode => 'xideq', oprrest => 'eqsel', oprjoin => 'eqjoinsel' }, +{ oid => '353', descr => 'equal', + oprname => '=', oprleft => 'xid', oprright => 'int4', oprresult => 'bool', + oprnegate => '<>(xid,int4)', oprcode => 'xideqint4', oprrest => 'eqsel', + oprjoin => 'eqjoinsel' }, +{ oid => '3315', descr => 'not equal', + oprname => '<>', oprleft => 'xid', oprright => 'xid', oprresult => 'bool', + oprcom => '<>(xid,xid)', oprnegate => '=(xid,xid)', oprcode => 'xidneq', + oprrest => 'neqsel', oprjoin => 'neqjoinsel' }, +{ oid => '3316', descr => 'not equal', + oprname => '<>', oprleft => 'xid', oprright => 'int4', oprresult => 'bool', + oprnegate => '=(xid,int4)', oprcode => 'xidneqint4', oprrest => 'neqsel', + oprjoin => 'neqjoinsel' }, +{ oid => '388', descr => 'factorial', + oprname => '!', oprkind => 'r', oprleft => 'int8', oprright => '0', + oprresult => 'numeric', oprcode => 'numeric_fac' }, +{ oid => '389', descr => 'deprecated, use ! instead', + oprname => '!!', oprkind => 'l', oprleft => '0', oprright => 'int8', + oprresult => 'numeric', oprcode => 'numeric_fac' }, +{ oid => '385', descr => 'equal', + oprname => '=', oprcanhash => 't', oprleft => 'cid', oprright => 'cid', + oprresult => 'bool', oprcom => '=(cid,cid)', oprcode => 'cideq', + oprrest => 'eqsel', oprjoin => 'eqjoinsel' }, + +{ oid => '387', oid_symbol => 'TIDEqualOperator', descr => 'equal', + oprname => '=', oprcanmerge => 't', oprleft => 'tid', oprright => 'tid', + oprresult => 'bool', oprcom => '=(tid,tid)', oprnegate => '<>(tid,tid)', + oprcode => 'tideq', oprrest => 'eqsel', oprjoin => 'eqjoinsel' }, +{ oid => '402', descr => 'not equal', + oprname => '<>', oprleft => 'tid', oprright => 'tid', oprresult => 'bool', + oprcom => '<>(tid,tid)', oprnegate => '=(tid,tid)', oprcode => 'tidne', + oprrest => 'neqsel', oprjoin => 'neqjoinsel' }, +{ oid => '2799', oid_symbol => 'TIDLessOperator', descr => 'less than', + oprname => '<', oprleft => 'tid', oprright => 'tid', oprresult => 'bool', + oprcom => '>(tid,tid)', oprnegate => '>=(tid,tid)', oprcode => 'tidlt', + oprrest => 'scalarltsel', oprjoin => 'scalarltjoinsel' }, +{ oid => '2800', descr => 'greater than', + oprname => '>', oprleft => 'tid', oprright => 'tid', oprresult => 'bool', + oprcom => '<(tid,tid)', oprnegate => '<=(tid,tid)', oprcode => 'tidgt', + oprrest => 'scalargtsel', oprjoin => 'scalargtjoinsel' }, +{ oid => '2801', descr => 'less than or equal', + oprname => '<=', oprleft => 'tid', oprright => 'tid', oprresult => 'bool', + oprcom => '>=(tid,tid)', oprnegate => '>(tid,tid)', oprcode => 'tidle', + oprrest => 'scalarlesel', oprjoin => 'scalarlejoinsel' }, +{ oid => '2802', descr => 'greater than or equal', + oprname => '>=', oprleft => 'tid', oprright => 'tid', oprresult => 'bool', + oprcom => '<=(tid,tid)', oprnegate => '<(tid,tid)', oprcode => 'tidge', + oprrest => 'scalargesel', oprjoin => 'scalargejoinsel' }, + +{ oid => '410', descr => 'equal', + oprname => '=', oprcanmerge => 't', oprcanhash => 't', oprleft => 'int8', + oprright => 'int8', oprresult => 'bool', oprcom => '=(int8,int8)', + oprnegate => '<>(int8,int8)', oprcode => 'int8eq', oprrest => 'eqsel', + oprjoin => 'eqjoinsel' }, +{ oid => '411', descr => 'not equal', + oprname => '<>', oprleft => 'int8', oprright => 'int8', oprresult => 'bool', + oprcom => '<>(int8,int8)', oprnegate => '=(int8,int8)', oprcode => 'int8ne', + oprrest => 'neqsel', oprjoin => 'neqjoinsel' }, +{ oid => '412', oid_symbol => 'Int8LessOperator', descr => 'less than', + oprname => '<', oprleft => 'int8', oprright => 'int8', oprresult => 'bool', + oprcom => '>(int8,int8)', oprnegate => '>=(int8,int8)', oprcode => 'int8lt', + oprrest => 'scalarltsel', oprjoin => 'scalarltjoinsel' }, +{ oid => '413', descr => 'greater than', + oprname => '>', oprleft => 'int8', oprright => 'int8', oprresult => 'bool', + oprcom => '<(int8,int8)', oprnegate => '<=(int8,int8)', oprcode => 'int8gt', + oprrest => 'scalargtsel', oprjoin => 'scalargtjoinsel' }, +{ oid => '414', descr => 'less than or equal', + oprname => '<=', oprleft => 'int8', oprright => 'int8', oprresult => 'bool', + oprcom => '>=(int8,int8)', oprnegate => '>(int8,int8)', oprcode => 'int8le', + oprrest => 'scalarlesel', oprjoin => 'scalarlejoinsel' }, +{ oid => '415', descr => 'greater than or equal', + oprname => '>=', oprleft => 'int8', oprright => 'int8', oprresult => 'bool', + oprcom => '<=(int8,int8)', oprnegate => '<(int8,int8)', oprcode => 'int8ge', + oprrest => 'scalargesel', oprjoin => 'scalargejoinsel' }, + +{ oid => '416', descr => 'equal', + oprname => '=', oprcanmerge => 't', oprcanhash => 't', oprleft => 'int8', + oprright => 'int4', oprresult => 'bool', oprcom => '=(int4,int8)', + oprnegate => '<>(int8,int4)', oprcode => 'int84eq', oprrest => 'eqsel', + oprjoin => 'eqjoinsel' }, +{ oid => '417', descr => 'not equal', + oprname => '<>', oprleft => 'int8', oprright => 'int4', oprresult => 'bool', + oprcom => '<>(int4,int8)', oprnegate => '=(int8,int4)', oprcode => 'int84ne', + oprrest => 'neqsel', oprjoin => 'neqjoinsel' }, +{ oid => '418', descr => 'less than', + oprname => '<', oprleft => 'int8', oprright => 'int4', oprresult => 'bool', + oprcom => '>(int4,int8)', oprnegate => '>=(int8,int4)', oprcode => 'int84lt', + oprrest => 'scalarltsel', oprjoin => 'scalarltjoinsel' }, +{ oid => '419', descr => 'greater than', + oprname => '>', oprleft => 'int8', oprright => 'int4', oprresult => 'bool', + oprcom => '<(int4,int8)', oprnegate => '<=(int8,int4)', oprcode => 'int84gt', + oprrest => 'scalargtsel', oprjoin => 'scalargtjoinsel' }, +{ oid => '420', descr => 'less than or equal', + oprname => '<=', oprleft => 'int8', oprright => 'int4', oprresult => 'bool', + oprcom => '>=(int4,int8)', oprnegate => '>(int8,int4)', oprcode => 'int84le', + oprrest => 'scalarlesel', oprjoin => 'scalarlejoinsel' }, +{ oid => '430', descr => 'greater than or equal', + oprname => '>=', oprleft => 'int8', oprright => 'int4', oprresult => 'bool', + oprcom => '<=(int4,int8)', oprnegate => '<(int8,int4)', oprcode => 'int84ge', + oprrest => 'scalargesel', oprjoin => 'scalargejoinsel' }, +{ oid => '439', descr => 'modulus', + oprname => '%', oprleft => 'int8', oprright => 'int8', oprresult => 'int8', + oprcode => 'int8mod' }, +{ oid => '473', descr => 'absolute value', + oprname => '@', oprkind => 'l', oprleft => '0', oprright => 'int8', + oprresult => 'int8', oprcode => 'int8abs' }, + +{ oid => '484', descr => 'negate', + oprname => '-', oprkind => 'l', oprleft => '0', oprright => 'int8', + oprresult => 'int8', oprcode => 'int8um' }, +{ oid => '485', descr => 'is left of', + oprname => '<<', oprleft => 'polygon', oprright => 'polygon', + oprresult => 'bool', oprcode => 'poly_left', oprrest => 'positionsel', + oprjoin => 'positionjoinsel' }, +{ oid => '486', descr => 'overlaps or is left of', + oprname => '&<', oprleft => 'polygon', oprright => 'polygon', + oprresult => 'bool', oprcode => 'poly_overleft', oprrest => 'positionsel', + oprjoin => 'positionjoinsel' }, +{ oid => '487', descr => 'overlaps or is right of', + oprname => '&>', oprleft => 'polygon', oprright => 'polygon', + oprresult => 'bool', oprcode => 'poly_overright', oprrest => 'positionsel', + oprjoin => 'positionjoinsel' }, +{ oid => '488', descr => 'is right of', + oprname => '>>', oprleft => 'polygon', oprright => 'polygon', + oprresult => 'bool', oprcode => 'poly_right', oprrest => 'positionsel', + oprjoin => 'positionjoinsel' }, +{ oid => '489', descr => 'is contained by', + oprname => '<@', oprleft => 'polygon', oprright => 'polygon', + oprresult => 'bool', oprcom => '@>(polygon,polygon)', + oprcode => 'poly_contained', oprrest => 'contsel', oprjoin => 'contjoinsel' }, +{ oid => '490', descr => 'contains', + oprname => '@>', oprleft => 'polygon', oprright => 'polygon', + oprresult => 'bool', oprcom => '<@(polygon,polygon)', + oprcode => 'poly_contain', oprrest => 'contsel', oprjoin => 'contjoinsel' }, +{ oid => '491', descr => 'same as', + oprname => '~=', oprleft => 'polygon', oprright => 'polygon', + oprresult => 'bool', oprcom => '~=(polygon,polygon)', oprcode => 'poly_same', + oprrest => 'eqsel', oprjoin => 'eqjoinsel' }, +{ oid => '492', descr => 'overlaps', + oprname => '&&', oprleft => 'polygon', oprright => 'polygon', + oprresult => 'bool', oprcom => '&&(polygon,polygon)', + oprcode => 'poly_overlap', oprrest => 'areasel', oprjoin => 'areajoinsel' }, +{ oid => '493', descr => 'is left of', + oprname => '<<', oprleft => 'box', oprright => 'box', oprresult => 'bool', + oprcode => 'box_left', oprrest => 'positionsel', + oprjoin => 'positionjoinsel' }, +{ oid => '494', descr => 'overlaps or is left of', + oprname => '&<', oprleft => 'box', oprright => 'box', oprresult => 'bool', + oprcode => 'box_overleft', oprrest => 'positionsel', + oprjoin => 'positionjoinsel' }, +{ oid => '495', descr => 'overlaps or is right of', + oprname => '&>', oprleft => 'box', oprright => 'box', oprresult => 'bool', + oprcode => 'box_overright', oprrest => 'positionsel', + oprjoin => 'positionjoinsel' }, +{ oid => '496', descr => 'is right of', + oprname => '>>', oprleft => 'box', oprright => 'box', oprresult => 'bool', + oprcode => 'box_right', oprrest => 'positionsel', + oprjoin => 'positionjoinsel' }, +{ oid => '497', descr => 'is contained by', + oprname => '<@', oprleft => 'box', oprright => 'box', oprresult => 'bool', + oprcom => '@>(box,box)', oprcode => 'box_contained', oprrest => 'contsel', + oprjoin => 'contjoinsel' }, +{ oid => '498', descr => 'contains', + oprname => '@>', oprleft => 'box', oprright => 'box', oprresult => 'bool', + oprcom => '<@(box,box)', oprcode => 'box_contain', oprrest => 'contsel', + oprjoin => 'contjoinsel' }, +{ oid => '499', descr => 'same as', + oprname => '~=', oprleft => 'box', oprright => 'box', oprresult => 'bool', + oprcom => '~=(box,box)', oprcode => 'box_same', oprrest => 'eqsel', + oprjoin => 'eqjoinsel' }, +{ oid => '500', descr => 'overlaps', + oprname => '&&', oprleft => 'box', oprright => 'box', oprresult => 'bool', + oprcom => '&&(box,box)', oprcode => 'box_overlap', oprrest => 'areasel', + oprjoin => 'areajoinsel' }, +{ oid => '501', descr => 'greater than or equal by area', + oprname => '>=', oprleft => 'box', oprright => 'box', oprresult => 'bool', + oprcom => '<=(box,box)', oprnegate => '<(box,box)', oprcode => 'box_ge', + oprrest => 'areasel', oprjoin => 'areajoinsel' }, +{ oid => '502', descr => 'greater than by area', + oprname => '>', oprleft => 'box', oprright => 'box', oprresult => 'bool', + oprcom => '<(box,box)', oprnegate => '<=(box,box)', oprcode => 'box_gt', + oprrest => 'areasel', oprjoin => 'areajoinsel' }, +{ oid => '503', descr => 'equal by area', + oprname => '=', oprleft => 'box', oprright => 'box', oprresult => 'bool', + oprcom => '=(box,box)', oprcode => 'box_eq', oprrest => 'eqsel', + oprjoin => 'eqjoinsel' }, +{ oid => '504', descr => 'less than by area', + oprname => '<', oprleft => 'box', oprright => 'box', oprresult => 'bool', + oprcom => '>(box,box)', oprnegate => '>=(box,box)', oprcode => 'box_lt', + oprrest => 'areasel', oprjoin => 'areajoinsel' }, +{ oid => '505', descr => 'less than or equal by area', + oprname => '<=', oprleft => 'box', oprright => 'box', oprresult => 'bool', + oprcom => '>=(box,box)', oprnegate => '>(box,box)', oprcode => 'box_le', + oprrest => 'areasel', oprjoin => 'areajoinsel' }, +{ oid => '506', descr => 'is above', + oprname => '>^', oprleft => 'point', oprright => 'point', oprresult => 'bool', + oprcode => 'point_above', oprrest => 'positionsel', + oprjoin => 'positionjoinsel' }, +{ oid => '507', descr => 'is left of', + oprname => '<<', oprleft => 'point', oprright => 'point', oprresult => 'bool', + oprcode => 'point_left', oprrest => 'positionsel', + oprjoin => 'positionjoinsel' }, +{ oid => '508', descr => 'is right of', + oprname => '>>', oprleft => 'point', oprright => 'point', oprresult => 'bool', + oprcode => 'point_right', oprrest => 'positionsel', + oprjoin => 'positionjoinsel' }, +{ oid => '509', descr => 'is below', + oprname => '<^', oprleft => 'point', oprright => 'point', oprresult => 'bool', + oprcode => 'point_below', oprrest => 'positionsel', + oprjoin => 'positionjoinsel' }, +{ oid => '510', descr => 'same as', + oprname => '~=', oprleft => 'point', oprright => 'point', oprresult => 'bool', + oprcom => '~=(point,point)', oprnegate => '<>(point,point)', + oprcode => 'point_eq', oprrest => 'eqsel', oprjoin => 'eqjoinsel' }, +{ oid => '511', descr => 'point inside box', + oprname => '<@', oprleft => 'point', oprright => 'box', oprresult => 'bool', + oprcom => '@>(box,point)', oprcode => 'on_pb', oprrest => 'contsel', + oprjoin => 'contjoinsel' }, +{ oid => '433', descr => 'contains', + oprname => '@>', oprleft => 'box', oprright => 'point', oprresult => 'bool', + oprcom => '<@(point,box)', oprcode => 'box_contain_pt', oprrest => 'contsel', + oprjoin => 'contjoinsel' }, +{ oid => '512', descr => 'point within closed path, or point on open path', + oprname => '<@', oprleft => 'point', oprright => 'path', oprresult => 'bool', + oprcom => '@>(path,point)', oprcode => 'on_ppath' }, +{ oid => '513', descr => 'center of', + oprname => '@@', oprkind => 'l', oprleft => '0', oprright => 'box', + oprresult => 'point', oprcode => 'box_center' }, +{ oid => '514', descr => 'multiply', + oprname => '*', oprleft => 'int4', oprright => 'int4', oprresult => 'int4', + oprcom => '*(int4,int4)', oprcode => 'int4mul' }, +{ oid => '517', descr => 'distance between', + oprname => '<->', oprleft => 'point', oprright => 'point', + oprresult => 'float8', oprcom => '<->(point,point)', + oprcode => 'point_distance' }, +{ oid => '518', descr => 'not equal', + oprname => '<>', oprleft => 'int4', oprright => 'int4', oprresult => 'bool', + oprcom => '<>(int4,int4)', oprnegate => '=(int4,int4)', oprcode => 'int4ne', + oprrest => 'neqsel', oprjoin => 'neqjoinsel' }, +{ oid => '519', descr => 'not equal', + oprname => '<>', oprleft => 'int2', oprright => 'int2', oprresult => 'bool', + oprcom => '<>(int2,int2)', oprnegate => '=(int2,int2)', oprcode => 'int2ne', + oprrest => 'neqsel', oprjoin => 'neqjoinsel' }, +{ oid => '520', descr => 'greater than', + oprname => '>', oprleft => 'int2', oprright => 'int2', oprresult => 'bool', + oprcom => '<(int2,int2)', oprnegate => '<=(int2,int2)', oprcode => 'int2gt', + oprrest => 'scalargtsel', oprjoin => 'scalargtjoinsel' }, +{ oid => '521', descr => 'greater than', + oprname => '>', oprleft => 'int4', oprright => 'int4', oprresult => 'bool', + oprcom => '<(int4,int4)', oprnegate => '<=(int4,int4)', oprcode => 'int4gt', + oprrest => 'scalargtsel', oprjoin => 'scalargtjoinsel' }, +{ oid => '522', descr => 'less than or equal', + oprname => '<=', oprleft => 'int2', oprright => 'int2', oprresult => 'bool', + oprcom => '>=(int2,int2)', oprnegate => '>(int2,int2)', oprcode => 'int2le', + oprrest => 'scalarlesel', oprjoin => 'scalarlejoinsel' }, +{ oid => '523', descr => 'less than or equal', + oprname => '<=', oprleft => 'int4', oprright => 'int4', oprresult => 'bool', + oprcom => '>=(int4,int4)', oprnegate => '>(int4,int4)', oprcode => 'int4le', + oprrest => 'scalarlesel', oprjoin => 'scalarlejoinsel' }, +{ oid => '524', descr => 'greater than or equal', + oprname => '>=', oprleft => 'int2', oprright => 'int2', oprresult => 'bool', + oprcom => '<=(int2,int2)', oprnegate => '<(int2,int2)', oprcode => 'int2ge', + oprrest => 'scalargesel', oprjoin => 'scalargejoinsel' }, +{ oid => '525', descr => 'greater than or equal', + oprname => '>=', oprleft => 'int4', oprright => 'int4', oprresult => 'bool', + oprcom => '<=(int4,int4)', oprnegate => '<(int4,int4)', oprcode => 'int4ge', + oprrest => 'scalargesel', oprjoin => 'scalargejoinsel' }, +{ oid => '526', descr => 'multiply', + oprname => '*', oprleft => 'int2', oprright => 'int2', oprresult => 'int2', + oprcom => '*(int2,int2)', oprcode => 'int2mul' }, +{ oid => '527', descr => 'divide', + oprname => '/', oprleft => 'int2', oprright => 'int2', oprresult => 'int2', + oprcode => 'int2div' }, +{ oid => '528', descr => 'divide', + oprname => '/', oprleft => 'int4', oprright => 'int4', oprresult => 'int4', + oprcode => 'int4div' }, +{ oid => '529', descr => 'modulus', + oprname => '%', oprleft => 'int2', oprright => 'int2', oprresult => 'int2', + oprcode => 'int2mod' }, +{ oid => '530', descr => 'modulus', + oprname => '%', oprleft => 'int4', oprright => 'int4', oprresult => 'int4', + oprcode => 'int4mod' }, +{ oid => '531', descr => 'not equal', + oprname => '<>', oprleft => 'text', oprright => 'text', oprresult => 'bool', + oprcom => '<>(text,text)', oprnegate => '=(text,text)', oprcode => 'textne', + oprrest => 'neqsel', oprjoin => 'neqjoinsel' }, +{ oid => '532', descr => 'equal', + oprname => '=', oprcanmerge => 't', oprcanhash => 't', oprleft => 'int2', + oprright => 'int4', oprresult => 'bool', oprcom => '=(int4,int2)', + oprnegate => '<>(int2,int4)', oprcode => 'int24eq', oprrest => 'eqsel', + oprjoin => 'eqjoinsel' }, +{ oid => '533', descr => 'equal', + oprname => '=', oprcanmerge => 't', oprcanhash => 't', oprleft => 'int4', + oprright => 'int2', oprresult => 'bool', oprcom => '=(int2,int4)', + oprnegate => '<>(int4,int2)', oprcode => 'int42eq', oprrest => 'eqsel', + oprjoin => 'eqjoinsel' }, +{ oid => '534', descr => 'less than', + oprname => '<', oprleft => 'int2', oprright => 'int4', oprresult => 'bool', + oprcom => '>(int4,int2)', oprnegate => '>=(int2,int4)', oprcode => 'int24lt', + oprrest => 'scalarltsel', oprjoin => 'scalarltjoinsel' }, +{ oid => '535', descr => 'less than', + oprname => '<', oprleft => 'int4', oprright => 'int2', oprresult => 'bool', + oprcom => '>(int2,int4)', oprnegate => '>=(int4,int2)', oprcode => 'int42lt', + oprrest => 'scalarltsel', oprjoin => 'scalarltjoinsel' }, +{ oid => '536', descr => 'greater than', + oprname => '>', oprleft => 'int2', oprright => 'int4', oprresult => 'bool', + oprcom => '<(int4,int2)', oprnegate => '<=(int2,int4)', oprcode => 'int24gt', + oprrest => 'scalargtsel', oprjoin => 'scalargtjoinsel' }, +{ oid => '537', descr => 'greater than', + oprname => '>', oprleft => 'int4', oprright => 'int2', oprresult => 'bool', + oprcom => '<(int2,int4)', oprnegate => '<=(int4,int2)', oprcode => 'int42gt', + oprrest => 'scalargtsel', oprjoin => 'scalargtjoinsel' }, +{ oid => '538', descr => 'not equal', + oprname => '<>', oprleft => 'int2', oprright => 'int4', oprresult => 'bool', + oprcom => '<>(int4,int2)', oprnegate => '=(int2,int4)', oprcode => 'int24ne', + oprrest => 'neqsel', oprjoin => 'neqjoinsel' }, +{ oid => '539', descr => 'not equal', + oprname => '<>', oprleft => 'int4', oprright => 'int2', oprresult => 'bool', + oprcom => '<>(int2,int4)', oprnegate => '=(int4,int2)', oprcode => 'int42ne', + oprrest => 'neqsel', oprjoin => 'neqjoinsel' }, +{ oid => '540', descr => 'less than or equal', + oprname => '<=', oprleft => 'int2', oprright => 'int4', oprresult => 'bool', + oprcom => '>=(int4,int2)', oprnegate => '>(int2,int4)', oprcode => 'int24le', + oprrest => 'scalarlesel', oprjoin => 'scalarlejoinsel' }, +{ oid => '541', descr => 'less than or equal', + oprname => '<=', oprleft => 'int4', oprright => 'int2', oprresult => 'bool', + oprcom => '>=(int2,int4)', oprnegate => '>(int4,int2)', oprcode => 'int42le', + oprrest => 'scalarlesel', oprjoin => 'scalarlejoinsel' }, +{ oid => '542', descr => 'greater than or equal', + oprname => '>=', oprleft => 'int2', oprright => 'int4', oprresult => 'bool', + oprcom => '<=(int4,int2)', oprnegate => '<(int2,int4)', oprcode => 'int24ge', + oprrest => 'scalargesel', oprjoin => 'scalargejoinsel' }, +{ oid => '543', descr => 'greater than or equal', + oprname => '>=', oprleft => 'int4', oprright => 'int2', oprresult => 'bool', + oprcom => '<=(int2,int4)', oprnegate => '<(int4,int2)', oprcode => 'int42ge', + oprrest => 'scalargesel', oprjoin => 'scalargejoinsel' }, +{ oid => '544', descr => 'multiply', + oprname => '*', oprleft => 'int2', oprright => 'int4', oprresult => 'int4', + oprcom => '*(int4,int2)', oprcode => 'int24mul' }, +{ oid => '545', descr => 'multiply', + oprname => '*', oprleft => 'int4', oprright => 'int2', oprresult => 'int4', + oprcom => '*(int2,int4)', oprcode => 'int42mul' }, +{ oid => '546', descr => 'divide', + oprname => '/', oprleft => 'int2', oprright => 'int4', oprresult => 'int4', + oprcode => 'int24div' }, +{ oid => '547', descr => 'divide', + oprname => '/', oprleft => 'int4', oprright => 'int2', oprresult => 'int4', + oprcode => 'int42div' }, +{ oid => '550', descr => 'add', + oprname => '+', oprleft => 'int2', oprright => 'int2', oprresult => 'int2', + oprcom => '+(int2,int2)', oprcode => 'int2pl' }, +{ oid => '551', descr => 'add', + oprname => '+', oprleft => 'int4', oprright => 'int4', oprresult => 'int4', + oprcom => '+(int4,int4)', oprcode => 'int4pl' }, +{ oid => '552', descr => 'add', + oprname => '+', oprleft => 'int2', oprright => 'int4', oprresult => 'int4', + oprcom => '+(int4,int2)', oprcode => 'int24pl' }, +{ oid => '553', descr => 'add', + oprname => '+', oprleft => 'int4', oprright => 'int2', oprresult => 'int4', + oprcom => '+(int2,int4)', oprcode => 'int42pl' }, +{ oid => '554', descr => 'subtract', + oprname => '-', oprleft => 'int2', oprright => 'int2', oprresult => 'int2', + oprcode => 'int2mi' }, +{ oid => '555', descr => 'subtract', + oprname => '-', oprleft => 'int4', oprright => 'int4', oprresult => 'int4', + oprcode => 'int4mi' }, +{ oid => '556', descr => 'subtract', + oprname => '-', oprleft => 'int2', oprright => 'int4', oprresult => 'int4', + oprcode => 'int24mi' }, +{ oid => '557', descr => 'subtract', + oprname => '-', oprleft => 'int4', oprright => 'int2', oprresult => 'int4', + oprcode => 'int42mi' }, +{ oid => '558', descr => 'negate', + oprname => '-', oprkind => 'l', oprleft => '0', oprright => 'int4', + oprresult => 'int4', oprcode => 'int4um' }, +{ oid => '559', descr => 'negate', + oprname => '-', oprkind => 'l', oprleft => '0', oprright => 'int2', + oprresult => 'int2', oprcode => 'int2um' }, +{ oid => '560', descr => 'equal', + oprname => '=', oprcanmerge => 't', oprcanhash => 't', oprleft => 'abstime', + oprright => 'abstime', oprresult => 'bool', oprcom => '=(abstime,abstime)', + oprnegate => '<>(abstime,abstime)', oprcode => 'abstimeeq', + oprrest => 'eqsel', oprjoin => 'eqjoinsel' }, +{ oid => '561', descr => 'not equal', + oprname => '<>', oprleft => 'abstime', oprright => 'abstime', + oprresult => 'bool', oprcom => '<>(abstime,abstime)', + oprnegate => '=(abstime,abstime)', oprcode => 'abstimene', + oprrest => 'neqsel', oprjoin => 'neqjoinsel' }, +{ oid => '562', descr => 'less than', + oprname => '<', oprleft => 'abstime', oprright => 'abstime', + oprresult => 'bool', oprcom => '>(abstime,abstime)', + oprnegate => '>=(abstime,abstime)', oprcode => 'abstimelt', + oprrest => 'scalarltsel', oprjoin => 'scalarltjoinsel' }, +{ oid => '563', descr => 'greater than', + oprname => '>', oprleft => 'abstime', oprright => 'abstime', + oprresult => 'bool', oprcom => '<(abstime,abstime)', + oprnegate => '<=(abstime,abstime)', oprcode => 'abstimegt', + oprrest => 'scalargtsel', oprjoin => 'scalargtjoinsel' }, +{ oid => '564', descr => 'less than or equal', + oprname => '<=', oprleft => 'abstime', oprright => 'abstime', + oprresult => 'bool', oprcom => '>=(abstime,abstime)', + oprnegate => '>(abstime,abstime)', oprcode => 'abstimele', + oprrest => 'scalarlesel', oprjoin => 'scalarlejoinsel' }, +{ oid => '565', descr => 'greater than or equal', + oprname => '>=', oprleft => 'abstime', oprright => 'abstime', + oprresult => 'bool', oprcom => '<=(abstime,abstime)', + oprnegate => '<(abstime,abstime)', oprcode => 'abstimege', + oprrest => 'scalargesel', oprjoin => 'scalargejoinsel' }, +{ oid => '566', descr => 'equal', + oprname => '=', oprcanmerge => 't', oprcanhash => 't', oprleft => 'reltime', + oprright => 'reltime', oprresult => 'bool', oprcom => '=(reltime,reltime)', + oprnegate => '<>(reltime,reltime)', oprcode => 'reltimeeq', + oprrest => 'eqsel', oprjoin => 'eqjoinsel' }, +{ oid => '567', descr => 'not equal', + oprname => '<>', oprleft => 'reltime', oprright => 'reltime', + oprresult => 'bool', oprcom => '<>(reltime,reltime)', + oprnegate => '=(reltime,reltime)', oprcode => 'reltimene', + oprrest => 'neqsel', oprjoin => 'neqjoinsel' }, +{ oid => '568', descr => 'less than', + oprname => '<', oprleft => 'reltime', oprright => 'reltime', + oprresult => 'bool', oprcom => '>(reltime,reltime)', + oprnegate => '>=(reltime,reltime)', oprcode => 'reltimelt', + oprrest => 'scalarltsel', oprjoin => 'scalarltjoinsel' }, +{ oid => '569', descr => 'greater than', + oprname => '>', oprleft => 'reltime', oprright => 'reltime', + oprresult => 'bool', oprcom => '<(reltime,reltime)', + oprnegate => '<=(reltime,reltime)', oprcode => 'reltimegt', + oprrest => 'scalargtsel', oprjoin => 'scalargtjoinsel' }, +{ oid => '570', descr => 'less than or equal', + oprname => '<=', oprleft => 'reltime', oprright => 'reltime', + oprresult => 'bool', oprcom => '>=(reltime,reltime)', + oprnegate => '>(reltime,reltime)', oprcode => 'reltimele', + oprrest => 'scalarlesel', oprjoin => 'scalarlejoinsel' }, +{ oid => '571', descr => 'greater than or equal', + oprname => '>=', oprleft => 'reltime', oprright => 'reltime', + oprresult => 'bool', oprcom => '<=(reltime,reltime)', + oprnegate => '<(reltime,reltime)', oprcode => 'reltimege', + oprrest => 'scalargesel', oprjoin => 'scalargejoinsel' }, +{ oid => '572', descr => 'same as', + oprname => '~=', oprleft => 'tinterval', oprright => 'tinterval', + oprresult => 'bool', oprcom => '~=(tinterval,tinterval)', + oprcode => 'tintervalsame', oprrest => 'eqsel', oprjoin => 'eqjoinsel' }, +{ oid => '573', descr => 'contains', + oprname => '<<', oprleft => 'tinterval', oprright => 'tinterval', + oprresult => 'bool', oprcode => 'tintervalct' }, +{ oid => '574', descr => 'overlaps', + oprname => '&&', oprleft => 'tinterval', oprright => 'tinterval', + oprresult => 'bool', oprcom => '&&(tinterval,tinterval)', + oprcode => 'tintervalov' }, +{ oid => '575', descr => 'equal by length', + oprname => '#=', oprleft => 'tinterval', oprright => 'reltime', + oprresult => 'bool', oprnegate => '#<>(tinterval,reltime)', + oprcode => 'tintervalleneq' }, +{ oid => '576', descr => 'not equal by length', + oprname => '#<>', oprleft => 'tinterval', oprright => 'reltime', + oprresult => 'bool', oprnegate => '#=(tinterval,reltime)', + oprcode => 'tintervallenne' }, +{ oid => '577', descr => 'less than by length', + oprname => '#<', oprleft => 'tinterval', oprright => 'reltime', + oprresult => 'bool', oprnegate => '#>=(tinterval,reltime)', + oprcode => 'tintervallenlt' }, +{ oid => '578', descr => 'greater than by length', + oprname => '#>', oprleft => 'tinterval', oprright => 'reltime', + oprresult => 'bool', oprnegate => '#<=(tinterval,reltime)', + oprcode => 'tintervallengt' }, +{ oid => '579', descr => 'less than or equal by length', + oprname => '#<=', oprleft => 'tinterval', oprright => 'reltime', + oprresult => 'bool', oprnegate => '#>(tinterval,reltime)', + oprcode => 'tintervallenle' }, +{ oid => '580', descr => 'greater than or equal by length', + oprname => '#>=', oprleft => 'tinterval', oprright => 'reltime', + oprresult => 'bool', oprnegate => '#<(tinterval,reltime)', + oprcode => 'tintervallenge' }, +{ oid => '581', descr => 'add', + oprname => '+', oprleft => 'abstime', oprright => 'reltime', + oprresult => 'abstime', oprcode => 'timepl' }, +{ oid => '582', descr => 'subtract', + oprname => '-', oprleft => 'abstime', oprright => 'reltime', + oprresult => 'abstime', oprcode => 'timemi' }, +{ oid => '583', descr => 'is contained by', + oprname => '', oprleft => 'abstime', oprright => 'tinterval', + oprresult => 'bool', oprcode => 'intinterval' }, +{ oid => '584', descr => 'negate', + oprname => '-', oprkind => 'l', oprleft => '0', oprright => 'float4', + oprresult => 'float4', oprcode => 'float4um' }, +{ oid => '585', descr => 'negate', + oprname => '-', oprkind => 'l', oprleft => '0', oprright => 'float8', + oprresult => 'float8', oprcode => 'float8um' }, +{ oid => '586', descr => 'add', + oprname => '+', oprleft => 'float4', oprright => 'float4', + oprresult => 'float4', oprcom => '+(float4,float4)', oprcode => 'float4pl' }, +{ oid => '587', descr => 'subtract', + oprname => '-', oprleft => 'float4', oprright => 'float4', + oprresult => 'float4', oprcode => 'float4mi' }, +{ oid => '588', descr => 'divide', + oprname => '/', oprleft => 'float4', oprright => 'float4', + oprresult => 'float4', oprcode => 'float4div' }, +{ oid => '589', descr => 'multiply', + oprname => '*', oprleft => 'float4', oprright => 'float4', + oprresult => 'float4', oprcom => '*(float4,float4)', oprcode => 'float4mul' }, +{ oid => '590', descr => 'absolute value', + oprname => '@', oprkind => 'l', oprleft => '0', oprright => 'float4', + oprresult => 'float4', oprcode => 'float4abs' }, +{ oid => '591', descr => 'add', + oprname => '+', oprleft => 'float8', oprright => 'float8', + oprresult => 'float8', oprcom => '+(float8,float8)', oprcode => 'float8pl' }, +{ oid => '592', descr => 'subtract', + oprname => '-', oprleft => 'float8', oprright => 'float8', + oprresult => 'float8', oprcode => 'float8mi' }, +{ oid => '593', descr => 'divide', + oprname => '/', oprleft => 'float8', oprright => 'float8', + oprresult => 'float8', oprcode => 'float8div' }, +{ oid => '594', descr => 'multiply', + oprname => '*', oprleft => 'float8', oprright => 'float8', + oprresult => 'float8', oprcom => '*(float8,float8)', oprcode => 'float8mul' }, +{ oid => '595', descr => 'absolute value', + oprname => '@', oprkind => 'l', oprleft => '0', oprright => 'float8', + oprresult => 'float8', oprcode => 'float8abs' }, +{ oid => '596', descr => 'square root', + oprname => '|/', oprkind => 'l', oprleft => '0', oprright => 'float8', + oprresult => 'float8', oprcode => 'dsqrt' }, +{ oid => '597', descr => 'cube root', + oprname => '||/', oprkind => 'l', oprleft => '0', oprright => 'float8', + oprresult => 'float8', oprcode => 'dcbrt' }, +{ oid => '1284', descr => 'start of interval', + oprname => '|', oprkind => 'l', oprleft => '0', oprright => 'tinterval', + oprresult => 'abstime', oprcode => 'tintervalstart' }, +{ oid => '606', descr => 'convert to tinterval', + oprname => '<#>', oprleft => 'abstime', oprright => 'abstime', + oprresult => 'tinterval', oprcode => 'mktinterval' }, + +{ oid => '607', descr => 'equal', + oprname => '=', oprcanmerge => 't', oprcanhash => 't', oprleft => 'oid', + oprright => 'oid', oprresult => 'bool', oprcom => '=(oid,oid)', + oprnegate => '<>(oid,oid)', oprcode => 'oideq', oprrest => 'eqsel', + oprjoin => 'eqjoinsel' }, +{ oid => '608', descr => 'not equal', + oprname => '<>', oprleft => 'oid', oprright => 'oid', oprresult => 'bool', + oprcom => '<>(oid,oid)', oprnegate => '=(oid,oid)', oprcode => 'oidne', + oprrest => 'neqsel', oprjoin => 'neqjoinsel' }, +{ oid => '609', descr => 'less than', + oprname => '<', oprleft => 'oid', oprright => 'oid', oprresult => 'bool', + oprcom => '>(oid,oid)', oprnegate => '>=(oid,oid)', oprcode => 'oidlt', + oprrest => 'scalarltsel', oprjoin => 'scalarltjoinsel' }, +{ oid => '610', descr => 'greater than', + oprname => '>', oprleft => 'oid', oprright => 'oid', oprresult => 'bool', + oprcom => '<(oid,oid)', oprnegate => '<=(oid,oid)', oprcode => 'oidgt', + oprrest => 'scalargtsel', oprjoin => 'scalargtjoinsel' }, +{ oid => '611', descr => 'less than or equal', + oprname => '<=', oprleft => 'oid', oprright => 'oid', oprresult => 'bool', + oprcom => '>=(oid,oid)', oprnegate => '>(oid,oid)', oprcode => 'oidle', + oprrest => 'scalarlesel', oprjoin => 'scalarlejoinsel' }, +{ oid => '612', descr => 'greater than or equal', + oprname => '>=', oprleft => 'oid', oprright => 'oid', oprresult => 'bool', + oprcom => '<=(oid,oid)', oprnegate => '<(oid,oid)', oprcode => 'oidge', + oprrest => 'scalargesel', oprjoin => 'scalargejoinsel' }, + +{ oid => '644', descr => 'not equal', + oprname => '<>', oprleft => 'oidvector', oprright => 'oidvector', + oprresult => 'bool', oprcom => '<>(oidvector,oidvector)', + oprnegate => '=(oidvector,oidvector)', oprcode => 'oidvectorne', + oprrest => 'neqsel', oprjoin => 'neqjoinsel' }, +{ oid => '645', descr => 'less than', + oprname => '<', oprleft => 'oidvector', oprright => 'oidvector', + oprresult => 'bool', oprcom => '>(oidvector,oidvector)', + oprnegate => '>=(oidvector,oidvector)', oprcode => 'oidvectorlt', + oprrest => 'scalarltsel', oprjoin => 'scalarltjoinsel' }, +{ oid => '646', descr => 'greater than', + oprname => '>', oprleft => 'oidvector', oprright => 'oidvector', + oprresult => 'bool', oprcom => '<(oidvector,oidvector)', + oprnegate => '<=(oidvector,oidvector)', oprcode => 'oidvectorgt', + oprrest => 'scalargtsel', oprjoin => 'scalargtjoinsel' }, +{ oid => '647', descr => 'less than or equal', + oprname => '<=', oprleft => 'oidvector', oprright => 'oidvector', + oprresult => 'bool', oprcom => '>=(oidvector,oidvector)', + oprnegate => '>(oidvector,oidvector)', oprcode => 'oidvectorle', + oprrest => 'scalarlesel', oprjoin => 'scalarlejoinsel' }, +{ oid => '648', descr => 'greater than or equal', + oprname => '>=', oprleft => 'oidvector', oprright => 'oidvector', + oprresult => 'bool', oprcom => '<=(oidvector,oidvector)', + oprnegate => '<(oidvector,oidvector)', oprcode => 'oidvectorge', + oprrest => 'scalargesel', oprjoin => 'scalargejoinsel' }, +{ oid => '649', descr => 'equal', + oprname => '=', oprcanmerge => 't', oprcanhash => 't', oprleft => 'oidvector', + oprright => 'oidvector', oprresult => 'bool', + oprcom => '=(oidvector,oidvector)', oprnegate => '<>(oidvector,oidvector)', + oprcode => 'oidvectoreq', oprrest => 'eqsel', oprjoin => 'eqjoinsel' }, + +{ oid => '613', descr => 'distance between', + oprname => '<->', oprleft => 'point', oprright => 'line', + oprresult => 'float8', oprcode => 'dist_pl' }, +{ oid => '614', descr => 'distance between', + oprname => '<->', oprleft => 'point', oprright => 'lseg', + oprresult => 'float8', oprcode => 'dist_ps' }, +{ oid => '615', descr => 'distance between', + oprname => '<->', oprleft => 'point', oprright => 'box', + oprresult => 'float8', oprcode => 'dist_pb' }, +{ oid => '616', descr => 'distance between', + oprname => '<->', oprleft => 'lseg', oprright => 'line', + oprresult => 'float8', oprcode => 'dist_sl' }, +{ oid => '617', descr => 'distance between', + oprname => '<->', oprleft => 'lseg', oprright => 'box', oprresult => 'float8', + oprcode => 'dist_sb' }, +{ oid => '618', descr => 'distance between', + oprname => '<->', oprleft => 'point', oprright => 'path', + oprresult => 'float8', oprcode => 'dist_ppath' }, + +{ oid => '620', descr => 'equal', + oprname => '=', oprcanmerge => 't', oprcanhash => 't', oprleft => 'float4', + oprright => 'float4', oprresult => 'bool', oprcom => '=(float4,float4)', + oprnegate => '<>(float4,float4)', oprcode => 'float4eq', oprrest => 'eqsel', + oprjoin => 'eqjoinsel' }, +{ oid => '621', descr => 'not equal', + oprname => '<>', oprleft => 'float4', oprright => 'float4', + oprresult => 'bool', oprcom => '<>(float4,float4)', + oprnegate => '=(float4,float4)', oprcode => 'float4ne', oprrest => 'neqsel', + oprjoin => 'neqjoinsel' }, +{ oid => '622', descr => 'less than', + oprname => '<', oprleft => 'float4', oprright => 'float4', + oprresult => 'bool', oprcom => '>(float4,float4)', + oprnegate => '>=(float4,float4)', oprcode => 'float4lt', + oprrest => 'scalarltsel', oprjoin => 'scalarltjoinsel' }, +{ oid => '623', descr => 'greater than', + oprname => '>', oprleft => 'float4', oprright => 'float4', + oprresult => 'bool', oprcom => '<(float4,float4)', + oprnegate => '<=(float4,float4)', oprcode => 'float4gt', + oprrest => 'scalargtsel', oprjoin => 'scalargtjoinsel' }, +{ oid => '624', descr => 'less than or equal', + oprname => '<=', oprleft => 'float4', oprright => 'float4', + oprresult => 'bool', oprcom => '>=(float4,float4)', + oprnegate => '>(float4,float4)', oprcode => 'float4le', + oprrest => 'scalarlesel', oprjoin => 'scalarlejoinsel' }, +{ oid => '625', descr => 'greater than or equal', + oprname => '>=', oprleft => 'float4', oprright => 'float4', + oprresult => 'bool', oprcom => '<=(float4,float4)', + oprnegate => '<(float4,float4)', oprcode => 'float4ge', + oprrest => 'scalargesel', oprjoin => 'scalargejoinsel' }, +{ oid => '630', descr => 'not equal', + oprname => '<>', oprleft => 'char', oprright => 'char', oprresult => 'bool', + oprcom => '<>(char,char)', oprnegate => '=(char,char)', oprcode => 'charne', + oprrest => 'neqsel', oprjoin => 'neqjoinsel' }, + +{ oid => '631', descr => 'less than', + oprname => '<', oprleft => 'char', oprright => 'char', oprresult => 'bool', + oprcom => '>(char,char)', oprnegate => '>=(char,char)', oprcode => 'charlt', + oprrest => 'scalarltsel', oprjoin => 'scalarltjoinsel' }, +{ oid => '632', descr => 'less than or equal', + oprname => '<=', oprleft => 'char', oprright => 'char', oprresult => 'bool', + oprcom => '>=(char,char)', oprnegate => '>(char,char)', oprcode => 'charle', + oprrest => 'scalarlesel', oprjoin => 'scalarlejoinsel' }, +{ oid => '633', descr => 'greater than', + oprname => '>', oprleft => 'char', oprright => 'char', oprresult => 'bool', + oprcom => '<(char,char)', oprnegate => '<=(char,char)', oprcode => 'chargt', + oprrest => 'scalargtsel', oprjoin => 'scalargtjoinsel' }, +{ oid => '634', descr => 'greater than or equal', + oprname => '>=', oprleft => 'char', oprright => 'char', oprresult => 'bool', + oprcom => '<=(char,char)', oprnegate => '<(char,char)', oprcode => 'charge', + oprrest => 'scalargesel', oprjoin => 'scalargejoinsel' }, + +{ oid => '639', oid_symbol => 'OID_NAME_REGEXEQ_OP', + descr => 'matches regular expression, case-sensitive', + oprname => '~', oprleft => 'name', oprright => 'text', oprresult => 'bool', + oprnegate => '!~(name,text)', oprcode => 'nameregexeq', + oprrest => 'regexeqsel', oprjoin => 'regexeqjoinsel' }, +{ oid => '640', descr => 'does not match regular expression, case-sensitive', + oprname => '!~', oprleft => 'name', oprright => 'text', oprresult => 'bool', + oprnegate => '~(name,text)', oprcode => 'nameregexne', + oprrest => 'regexnesel', oprjoin => 'regexnejoinsel' }, +{ oid => '641', oid_symbol => 'OID_TEXT_REGEXEQ_OP', + descr => 'matches regular expression, case-sensitive', + oprname => '~', oprleft => 'text', oprright => 'text', oprresult => 'bool', + oprnegate => '!~(text,text)', oprcode => 'textregexeq', + oprrest => 'regexeqsel', oprjoin => 'regexeqjoinsel' }, +{ oid => '642', descr => 'does not match regular expression, case-sensitive', + oprname => '!~', oprleft => 'text', oprright => 'text', oprresult => 'bool', + oprnegate => '~(text,text)', oprcode => 'textregexne', + oprrest => 'regexnesel', oprjoin => 'regexnejoinsel' }, +{ oid => '643', descr => 'not equal', + oprname => '<>', oprleft => 'name', oprright => 'name', oprresult => 'bool', + oprcom => '<>(name,name)', oprnegate => '=(name,name)', oprcode => 'namene', + oprrest => 'neqsel', oprjoin => 'neqjoinsel' }, +{ oid => '654', descr => 'concatenate', + oprname => '||', oprleft => 'text', oprright => 'text', oprresult => 'text', + oprcode => 'textcat' }, + +{ oid => '660', descr => 'less than', + oprname => '<', oprleft => 'name', oprright => 'name', oprresult => 'bool', + oprcom => '>(name,name)', oprnegate => '>=(name,name)', oprcode => 'namelt', + oprrest => 'scalarltsel', oprjoin => 'scalarltjoinsel' }, +{ oid => '661', descr => 'less than or equal', + oprname => '<=', oprleft => 'name', oprright => 'name', oprresult => 'bool', + oprcom => '>=(name,name)', oprnegate => '>(name,name)', oprcode => 'namele', + oprrest => 'scalarlesel', oprjoin => 'scalarlejoinsel' }, +{ oid => '662', descr => 'greater than', + oprname => '>', oprleft => 'name', oprright => 'name', oprresult => 'bool', + oprcom => '<(name,name)', oprnegate => '<=(name,name)', oprcode => 'namegt', + oprrest => 'scalargtsel', oprjoin => 'scalargtjoinsel' }, +{ oid => '663', descr => 'greater than or equal', + oprname => '>=', oprleft => 'name', oprright => 'name', oprresult => 'bool', + oprcom => '<=(name,name)', oprnegate => '<(name,name)', oprcode => 'namege', + oprrest => 'scalargesel', oprjoin => 'scalargejoinsel' }, +{ oid => '664', descr => 'less than', + oprname => '<', oprleft => 'text', oprright => 'text', oprresult => 'bool', + oprcom => '>(text,text)', oprnegate => '>=(text,text)', oprcode => 'text_lt', + oprrest => 'scalarltsel', oprjoin => 'scalarltjoinsel' }, +{ oid => '665', descr => 'less than or equal', + oprname => '<=', oprleft => 'text', oprright => 'text', oprresult => 'bool', + oprcom => '>=(text,text)', oprnegate => '>(text,text)', oprcode => 'text_le', + oprrest => 'scalarlesel', oprjoin => 'scalarlejoinsel' }, +{ oid => '666', descr => 'greater than', + oprname => '>', oprleft => 'text', oprright => 'text', oprresult => 'bool', + oprcom => '<(text,text)', oprnegate => '<=(text,text)', oprcode => 'text_gt', + oprrest => 'scalargtsel', oprjoin => 'scalargtjoinsel' }, +{ oid => '667', descr => 'greater than or equal', + oprname => '>=', oprleft => 'text', oprright => 'text', oprresult => 'bool', + oprcom => '<=(text,text)', oprnegate => '<(text,text)', oprcode => 'text_ge', + oprrest => 'scalargesel', oprjoin => 'scalargejoinsel' }, + +{ oid => '670', descr => 'equal', + oprname => '=', oprcanmerge => 't', oprcanhash => 't', oprleft => 'float8', + oprright => 'float8', oprresult => 'bool', oprcom => '=(float8,float8)', + oprnegate => '<>(float8,float8)', oprcode => 'float8eq', oprrest => 'eqsel', + oprjoin => 'eqjoinsel' }, +{ oid => '671', descr => 'not equal', + oprname => '<>', oprleft => 'float8', oprright => 'float8', + oprresult => 'bool', oprcom => '<>(float8,float8)', + oprnegate => '=(float8,float8)', oprcode => 'float8ne', oprrest => 'neqsel', + oprjoin => 'neqjoinsel' }, +{ oid => '672', oid_symbol => 'Float8LessOperator', descr => 'less than', + oprname => '<', oprleft => 'float8', oprright => 'float8', + oprresult => 'bool', oprcom => '>(float8,float8)', + oprnegate => '>=(float8,float8)', oprcode => 'float8lt', + oprrest => 'scalarltsel', oprjoin => 'scalarltjoinsel' }, +{ oid => '673', descr => 'less than or equal', + oprname => '<=', oprleft => 'float8', oprright => 'float8', + oprresult => 'bool', oprcom => '>=(float8,float8)', + oprnegate => '>(float8,float8)', oprcode => 'float8le', + oprrest => 'scalarlesel', oprjoin => 'scalarlejoinsel' }, +{ oid => '674', descr => 'greater than', + oprname => '>', oprleft => 'float8', oprright => 'float8', + oprresult => 'bool', oprcom => '<(float8,float8)', + oprnegate => '<=(float8,float8)', oprcode => 'float8gt', + oprrest => 'scalargtsel', oprjoin => 'scalargtjoinsel' }, +{ oid => '675', descr => 'greater than or equal', + oprname => '>=', oprleft => 'float8', oprright => 'float8', + oprresult => 'bool', oprcom => '<=(float8,float8)', + oprnegate => '<(float8,float8)', oprcode => 'float8ge', + oprrest => 'scalargesel', oprjoin => 'scalargejoinsel' }, + +{ oid => '682', descr => 'absolute value', + oprname => '@', oprkind => 'l', oprleft => '0', oprright => 'int2', + oprresult => 'int2', oprcode => 'int2abs' }, +{ oid => '684', descr => 'add', + oprname => '+', oprleft => 'int8', oprright => 'int8', oprresult => 'int8', + oprcom => '+(int8,int8)', oprcode => 'int8pl' }, +{ oid => '685', descr => 'subtract', + oprname => '-', oprleft => 'int8', oprright => 'int8', oprresult => 'int8', + oprcode => 'int8mi' }, +{ oid => '686', descr => 'multiply', + oprname => '*', oprleft => 'int8', oprright => 'int8', oprresult => 'int8', + oprcom => '*(int8,int8)', oprcode => 'int8mul' }, +{ oid => '687', descr => 'divide', + oprname => '/', oprleft => 'int8', oprright => 'int8', oprresult => 'int8', + oprcode => 'int8div' }, + +{ oid => '688', descr => 'add', + oprname => '+', oprleft => 'int8', oprright => 'int4', oprresult => 'int8', + oprcom => '+(int4,int8)', oprcode => 'int84pl' }, +{ oid => '689', descr => 'subtract', + oprname => '-', oprleft => 'int8', oprright => 'int4', oprresult => 'int8', + oprcode => 'int84mi' }, +{ oid => '690', descr => 'multiply', + oprname => '*', oprleft => 'int8', oprright => 'int4', oprresult => 'int8', + oprcom => '*(int4,int8)', oprcode => 'int84mul' }, +{ oid => '691', descr => 'divide', + oprname => '/', oprleft => 'int8', oprright => 'int4', oprresult => 'int8', + oprcode => 'int84div' }, +{ oid => '692', descr => 'add', + oprname => '+', oprleft => 'int4', oprright => 'int8', oprresult => 'int8', + oprcom => '+(int8,int4)', oprcode => 'int48pl' }, +{ oid => '693', descr => 'subtract', + oprname => '-', oprleft => 'int4', oprright => 'int8', oprresult => 'int8', + oprcode => 'int48mi' }, +{ oid => '694', descr => 'multiply', + oprname => '*', oprleft => 'int4', oprright => 'int8', oprresult => 'int8', + oprcom => '*(int8,int4)', oprcode => 'int48mul' }, +{ oid => '695', descr => 'divide', + oprname => '/', oprleft => 'int4', oprright => 'int8', oprresult => 'int8', + oprcode => 'int48div' }, + +{ oid => '818', descr => 'add', + oprname => '+', oprleft => 'int8', oprright => 'int2', oprresult => 'int8', + oprcom => '+(int2,int8)', oprcode => 'int82pl' }, +{ oid => '819', descr => 'subtract', + oprname => '-', oprleft => 'int8', oprright => 'int2', oprresult => 'int8', + oprcode => 'int82mi' }, +{ oid => '820', descr => 'multiply', + oprname => '*', oprleft => 'int8', oprright => 'int2', oprresult => 'int8', + oprcom => '*(int2,int8)', oprcode => 'int82mul' }, +{ oid => '821', descr => 'divide', + oprname => '/', oprleft => 'int8', oprright => 'int2', oprresult => 'int8', + oprcode => 'int82div' }, +{ oid => '822', descr => 'add', + oprname => '+', oprleft => 'int2', oprright => 'int8', oprresult => 'int8', + oprcom => '+(int8,int2)', oprcode => 'int28pl' }, +{ oid => '823', descr => 'subtract', + oprname => '-', oprleft => 'int2', oprright => 'int8', oprresult => 'int8', + oprcode => 'int28mi' }, +{ oid => '824', descr => 'multiply', + oprname => '*', oprleft => 'int2', oprright => 'int8', oprresult => 'int8', + oprcom => '*(int8,int2)', oprcode => 'int28mul' }, +{ oid => '825', descr => 'divide', + oprname => '/', oprleft => 'int2', oprright => 'int8', oprresult => 'int8', + oprcode => 'int28div' }, + +{ oid => '706', descr => 'distance between', + oprname => '<->', oprleft => 'box', oprright => 'box', oprresult => 'float8', + oprcom => '<->(box,box)', oprcode => 'box_distance' }, +{ oid => '707', descr => 'distance between', + oprname => '<->', oprleft => 'path', oprright => 'path', + oprresult => 'float8', oprcom => '<->(path,path)', + oprcode => 'path_distance' }, +{ oid => '708', descr => 'distance between', + oprname => '<->', oprleft => 'line', oprright => 'line', + oprresult => 'float8', oprcom => '<->(line,line)', + oprcode => 'line_distance' }, +{ oid => '709', descr => 'distance between', + oprname => '<->', oprleft => 'lseg', oprright => 'lseg', + oprresult => 'float8', oprcom => '<->(lseg,lseg)', + oprcode => 'lseg_distance' }, +{ oid => '712', descr => 'distance between', + oprname => '<->', oprleft => 'polygon', oprright => 'polygon', + oprresult => 'float8', oprcom => '<->(polygon,polygon)', + oprcode => 'poly_distance' }, + +{ oid => '713', descr => 'not equal', + oprname => '<>', oprleft => 'point', oprright => 'point', oprresult => 'bool', + oprcom => '<>(point,point)', oprnegate => '~=(point,point)', + oprcode => 'point_ne', oprrest => 'neqsel', oprjoin => 'neqjoinsel' }, + +# add translation/rotation/scaling operators for geometric types. - thomas 97/05/10 +{ oid => '731', descr => 'add points (translate)', + oprname => '+', oprleft => 'point', oprright => 'point', oprresult => 'point', + oprcom => '+(point,point)', oprcode => 'point_add' }, +{ oid => '732', descr => 'subtract points (translate)', + oprname => '-', oprleft => 'point', oprright => 'point', oprresult => 'point', + oprcode => 'point_sub' }, +{ oid => '733', descr => 'multiply points (scale/rotate)', + oprname => '*', oprleft => 'point', oprright => 'point', oprresult => 'point', + oprcom => '*(point,point)', oprcode => 'point_mul' }, +{ oid => '734', descr => 'divide points (scale/rotate)', + oprname => '/', oprleft => 'point', oprright => 'point', oprresult => 'point', + oprcode => 'point_div' }, +{ oid => '735', descr => 'concatenate', + oprname => '+', oprleft => 'path', oprright => 'path', oprresult => 'path', + oprcom => '+(path,path)', oprcode => 'path_add' }, +{ oid => '736', descr => 'add (translate path)', + oprname => '+', oprleft => 'path', oprright => 'point', oprresult => 'path', + oprcode => 'path_add_pt' }, +{ oid => '737', descr => 'subtract (translate path)', + oprname => '-', oprleft => 'path', oprright => 'point', oprresult => 'path', + oprcode => 'path_sub_pt' }, +{ oid => '738', descr => 'multiply (rotate/scale path)', + oprname => '*', oprleft => 'path', oprright => 'point', oprresult => 'path', + oprcode => 'path_mul_pt' }, +{ oid => '739', descr => 'divide (rotate/scale path)', + oprname => '/', oprleft => 'path', oprright => 'point', oprresult => 'path', + oprcode => 'path_div_pt' }, +{ oid => '755', descr => 'contains', + oprname => '@>', oprleft => 'path', oprright => 'point', oprresult => 'bool', + oprcom => '<@(point,path)', oprcode => 'path_contain_pt' }, +{ oid => '756', descr => 'is contained by', + oprname => '<@', oprleft => 'point', oprright => 'polygon', + oprresult => 'bool', oprcom => '@>(polygon,point)', + oprcode => 'pt_contained_poly', oprrest => 'contsel', + oprjoin => 'contjoinsel' }, +{ oid => '757', descr => 'contains', + oprname => '@>', oprleft => 'polygon', oprright => 'point', + oprresult => 'bool', oprcom => '<@(point,polygon)', + oprcode => 'poly_contain_pt', oprrest => 'contsel', + oprjoin => 'contjoinsel' }, +{ oid => '758', descr => 'is contained by', + oprname => '<@', oprleft => 'point', oprright => 'circle', + oprresult => 'bool', oprcom => '@>(circle,point)', + oprcode => 'pt_contained_circle', oprrest => 'contsel', + oprjoin => 'contjoinsel' }, +{ oid => '759', descr => 'contains', + oprname => '@>', oprleft => 'circle', oprright => 'point', + oprresult => 'bool', oprcom => '<@(point,circle)', + oprcode => 'circle_contain_pt', oprrest => 'contsel', + oprjoin => 'contjoinsel' }, + +{ oid => '773', descr => 'absolute value', + oprname => '@', oprkind => 'l', oprleft => '0', oprright => 'int4', + oprresult => 'int4', oprcode => 'int4abs' }, + +# additional operators for geometric types - thomas 1997-07-09 +{ oid => '792', descr => 'equal', + oprname => '=', oprleft => 'path', oprright => 'path', oprresult => 'bool', + oprcom => '=(path,path)', oprcode => 'path_n_eq', oprrest => 'eqsel', + oprjoin => 'eqjoinsel' }, +{ oid => '793', descr => 'less than', + oprname => '<', oprleft => 'path', oprright => 'path', oprresult => 'bool', + oprcom => '>(path,path)', oprcode => 'path_n_lt' }, +{ oid => '794', descr => 'greater than', + oprname => '>', oprleft => 'path', oprright => 'path', oprresult => 'bool', + oprcom => '<(path,path)', oprcode => 'path_n_gt' }, +{ oid => '795', descr => 'less than or equal', + oprname => '<=', oprleft => 'path', oprright => 'path', oprresult => 'bool', + oprcom => '>=(path,path)', oprcode => 'path_n_le' }, +{ oid => '796', descr => 'greater than or equal', + oprname => '>=', oprleft => 'path', oprright => 'path', oprresult => 'bool', + oprcom => '<=(path,path)', oprcode => 'path_n_ge' }, +{ oid => '797', descr => 'number of points', + oprname => '#', oprkind => 'l', oprleft => '0', oprright => 'path', + oprresult => 'int4', oprcode => 'path_npoints' }, +{ oid => '798', descr => 'intersect', + oprname => '?#', oprleft => 'path', oprright => 'path', oprresult => 'bool', + oprcode => 'path_inter' }, +{ oid => '799', descr => 'sum of path segment lengths', + oprname => '@-@', oprkind => 'l', oprleft => '0', oprright => 'path', + oprresult => 'float8', oprcode => 'path_length' }, +{ oid => '800', descr => 'is above (allows touching)', + oprname => '>^', oprleft => 'box', oprright => 'box', oprresult => 'bool', + oprcode => 'box_above_eq', oprrest => 'positionsel', + oprjoin => 'positionjoinsel' }, +{ oid => '801', descr => 'is below (allows touching)', + oprname => '<^', oprleft => 'box', oprright => 'box', oprresult => 'bool', + oprcode => 'box_below_eq', oprrest => 'positionsel', + oprjoin => 'positionjoinsel' }, +{ oid => '802', descr => 'deprecated, use && instead', + oprname => '?#', oprleft => 'box', oprright => 'box', oprresult => 'bool', + oprcode => 'box_overlap', oprrest => 'areasel', oprjoin => 'areajoinsel' }, +{ oid => '803', descr => 'box intersection', + oprname => '#', oprleft => 'box', oprright => 'box', oprresult => 'box', + oprcode => 'box_intersect' }, +{ oid => '804', descr => 'add point to box (translate)', + oprname => '+', oprleft => 'box', oprright => 'point', oprresult => 'box', + oprcode => 'box_add' }, +{ oid => '805', descr => 'subtract point from box (translate)', + oprname => '-', oprleft => 'box', oprright => 'point', oprresult => 'box', + oprcode => 'box_sub' }, +{ oid => '806', descr => 'multiply box by point (scale)', + oprname => '*', oprleft => 'box', oprright => 'point', oprresult => 'box', + oprcode => 'box_mul' }, +{ oid => '807', descr => 'divide box by point (scale)', + oprname => '/', oprleft => 'box', oprright => 'point', oprresult => 'box', + oprcode => 'box_div' }, +{ oid => '808', descr => 'horizontally aligned', + oprname => '?-', oprleft => 'point', oprright => 'point', oprresult => 'bool', + oprcom => '?-(point,point)', oprcode => 'point_horiz' }, +{ oid => '809', descr => 'vertically aligned', + oprname => '?|', oprleft => 'point', oprright => 'point', oprresult => 'bool', + oprcom => '?|(point,point)', oprcode => 'point_vert' }, + +{ oid => '811', descr => 'equal', + oprname => '=', oprcanmerge => 't', oprleft => 'tinterval', + oprright => 'tinterval', oprresult => 'bool', + oprcom => '=(tinterval,tinterval)', oprnegate => '<>(tinterval,tinterval)', + oprcode => 'tintervaleq', oprrest => 'eqsel', oprjoin => 'eqjoinsel' }, +{ oid => '812', descr => 'not equal', + oprname => '<>', oprleft => 'tinterval', oprright => 'tinterval', + oprresult => 'bool', oprcom => '<>(tinterval,tinterval)', + oprnegate => '=(tinterval,tinterval)', oprcode => 'tintervalne', + oprrest => 'neqsel', oprjoin => 'neqjoinsel' }, +{ oid => '813', descr => 'less than', + oprname => '<', oprleft => 'tinterval', oprright => 'tinterval', + oprresult => 'bool', oprcom => '>(tinterval,tinterval)', + oprnegate => '>=(tinterval,tinterval)', oprcode => 'tintervallt', + oprrest => 'scalarltsel', oprjoin => 'scalarltjoinsel' }, +{ oid => '814', descr => 'greater than', + oprname => '>', oprleft => 'tinterval', oprright => 'tinterval', + oprresult => 'bool', oprcom => '<(tinterval,tinterval)', + oprnegate => '<=(tinterval,tinterval)', oprcode => 'tintervalgt', + oprrest => 'scalargtsel', oprjoin => 'scalargtjoinsel' }, +{ oid => '815', descr => 'less than or equal', + oprname => '<=', oprleft => 'tinterval', oprright => 'tinterval', + oprresult => 'bool', oprcom => '>=(tinterval,tinterval)', + oprnegate => '>(tinterval,tinterval)', oprcode => 'tintervalle', + oprrest => 'scalarlesel', oprjoin => 'scalarlejoinsel' }, +{ oid => '816', descr => 'greater than or equal', + oprname => '>=', oprleft => 'tinterval', oprright => 'tinterval', + oprresult => 'bool', oprcom => '<=(tinterval,tinterval)', + oprnegate => '<(tinterval,tinterval)', oprcode => 'tintervalge', + oprrest => 'scalargesel', oprjoin => 'scalargejoinsel' }, + +{ oid => '843', descr => 'multiply', + oprname => '*', oprleft => 'money', oprright => 'float4', + oprresult => 'money', oprcom => '*(float4,money)', + oprcode => 'cash_mul_flt4' }, +{ oid => '844', descr => 'divide', + oprname => '/', oprleft => 'money', oprright => 'float4', + oprresult => 'money', oprcode => 'cash_div_flt4' }, +{ oid => '845', descr => 'multiply', + oprname => '*', oprleft => 'float4', oprright => 'money', + oprresult => 'money', oprcom => '*(money,float4)', + oprcode => 'flt4_mul_cash' }, + +{ oid => '900', descr => 'equal', + oprname => '=', oprcanmerge => 't', oprleft => 'money', oprright => 'money', + oprresult => 'bool', oprcom => '=(money,money)', + oprnegate => '<>(money,money)', oprcode => 'cash_eq', oprrest => 'eqsel', + oprjoin => 'eqjoinsel' }, +{ oid => '901', descr => 'not equal', + oprname => '<>', oprleft => 'money', oprright => 'money', oprresult => 'bool', + oprcom => '<>(money,money)', oprnegate => '=(money,money)', + oprcode => 'cash_ne', oprrest => 'neqsel', oprjoin => 'neqjoinsel' }, +{ oid => '902', descr => 'less than', + oprname => '<', oprleft => 'money', oprright => 'money', oprresult => 'bool', + oprcom => '>(money,money)', oprnegate => '>=(money,money)', + oprcode => 'cash_lt', oprrest => 'scalarltsel', + oprjoin => 'scalarltjoinsel' }, +{ oid => '903', descr => 'greater than', + oprname => '>', oprleft => 'money', oprright => 'money', oprresult => 'bool', + oprcom => '<(money,money)', oprnegate => '<=(money,money)', + oprcode => 'cash_gt', oprrest => 'scalargtsel', + oprjoin => 'scalargtjoinsel' }, +{ oid => '904', descr => 'less than or equal', + oprname => '<=', oprleft => 'money', oprright => 'money', oprresult => 'bool', + oprcom => '>=(money,money)', oprnegate => '>(money,money)', + oprcode => 'cash_le', oprrest => 'scalarlesel', + oprjoin => 'scalarlejoinsel' }, +{ oid => '905', descr => 'greater than or equal', + oprname => '>=', oprleft => 'money', oprright => 'money', oprresult => 'bool', + oprcom => '<=(money,money)', oprnegate => '<(money,money)', + oprcode => 'cash_ge', oprrest => 'scalargesel', + oprjoin => 'scalargejoinsel' }, +{ oid => '906', descr => 'add', + oprname => '+', oprleft => 'money', oprright => 'money', oprresult => 'money', + oprcom => '+(money,money)', oprcode => 'cash_pl' }, +{ oid => '907', descr => 'subtract', + oprname => '-', oprleft => 'money', oprright => 'money', oprresult => 'money', + oprcode => 'cash_mi' }, +{ oid => '908', descr => 'multiply', + oprname => '*', oprleft => 'money', oprright => 'float8', + oprresult => 'money', oprcom => '*(float8,money)', + oprcode => 'cash_mul_flt8' }, +{ oid => '909', descr => 'divide', + oprname => '/', oprleft => 'money', oprright => 'float8', + oprresult => 'money', oprcode => 'cash_div_flt8' }, +{ oid => '3346', descr => 'multiply', + oprname => '*', oprleft => 'money', oprright => 'int8', oprresult => 'money', + oprcom => '*(int8,money)', oprcode => 'cash_mul_int8' }, +{ oid => '3347', descr => 'divide', + oprname => '/', oprleft => 'money', oprright => 'int8', oprresult => 'money', + oprcode => 'cash_div_int8' }, +{ oid => '912', descr => 'multiply', + oprname => '*', oprleft => 'money', oprright => 'int4', oprresult => 'money', + oprcom => '*(int4,money)', oprcode => 'cash_mul_int4' }, +{ oid => '913', descr => 'divide', + oprname => '/', oprleft => 'money', oprright => 'int4', oprresult => 'money', + oprcode => 'cash_div_int4' }, +{ oid => '914', descr => 'multiply', + oprname => '*', oprleft => 'money', oprright => 'int2', oprresult => 'money', + oprcom => '*(int2,money)', oprcode => 'cash_mul_int2' }, +{ oid => '915', descr => 'divide', + oprname => '/', oprleft => 'money', oprright => 'int2', oprresult => 'money', + oprcode => 'cash_div_int2' }, +{ oid => '916', descr => 'multiply', + oprname => '*', oprleft => 'float8', oprright => 'money', + oprresult => 'money', oprcom => '*(money,float8)', + oprcode => 'flt8_mul_cash' }, +{ oid => '3349', descr => 'multiply', + oprname => '*', oprleft => 'int8', oprright => 'money', oprresult => 'money', + oprcom => '*(money,int8)', oprcode => 'int8_mul_cash' }, +{ oid => '917', descr => 'multiply', + oprname => '*', oprleft => 'int4', oprright => 'money', oprresult => 'money', + oprcom => '*(money,int4)', oprcode => 'int4_mul_cash' }, +{ oid => '918', descr => 'multiply', + oprname => '*', oprleft => 'int2', oprright => 'money', oprresult => 'money', + oprcom => '*(money,int2)', oprcode => 'int2_mul_cash' }, +{ oid => '3825', descr => 'divide', + oprname => '/', oprleft => 'money', oprright => 'money', + oprresult => 'float8', oprcode => 'cash_div_cash' }, + +{ oid => '965', descr => 'exponentiation', + oprname => '^', oprleft => 'float8', oprright => 'float8', + oprresult => 'float8', oprcode => 'dpow' }, +{ oid => '966', descr => 'add/update ACL item', + oprname => '+', oprleft => '_aclitem', oprright => 'aclitem', + oprresult => '_aclitem', oprcode => 'aclinsert' }, +{ oid => '967', descr => 'remove ACL item', + oprname => '-', oprleft => '_aclitem', oprright => 'aclitem', + oprresult => '_aclitem', oprcode => 'aclremove' }, +{ oid => '968', descr => 'contains', + oprname => '@>', oprleft => '_aclitem', oprright => 'aclitem', + oprresult => 'bool', oprcode => 'aclcontains' }, +{ oid => '974', descr => 'equal', + oprname => '=', oprcanhash => 't', oprleft => 'aclitem', + oprright => 'aclitem', oprresult => 'bool', oprcom => '=(aclitem,aclitem)', + oprcode => 'aclitemeq', oprrest => 'eqsel', oprjoin => 'eqjoinsel' }, + +# additional geometric operators - thomas 1997-07-09 +{ oid => '969', descr => 'center of', + oprname => '@@', oprkind => 'l', oprleft => '0', oprright => 'lseg', + oprresult => 'point', oprcode => 'lseg_center' }, +{ oid => '970', descr => 'center of', + oprname => '@@', oprkind => 'l', oprleft => '0', oprright => 'path', + oprresult => 'point', oprcode => 'path_center' }, +{ oid => '971', descr => 'center of', + oprname => '@@', oprkind => 'l', oprleft => '0', oprright => 'polygon', + oprresult => 'point', oprcode => 'poly_center' }, + +{ oid => '1054', descr => 'equal', + oprname => '=', oprcanmerge => 't', oprcanhash => 't', oprleft => 'bpchar', + oprright => 'bpchar', oprresult => 'bool', oprcom => '=(bpchar,bpchar)', + oprnegate => '<>(bpchar,bpchar)', oprcode => 'bpchareq', oprrest => 'eqsel', + oprjoin => 'eqjoinsel' }, + +{ oid => '1055', oid_symbol => 'OID_BPCHAR_REGEXEQ_OP', + descr => 'matches regular expression, case-sensitive', + oprname => '~', oprleft => 'bpchar', oprright => 'text', oprresult => 'bool', + oprnegate => '!~(bpchar,text)', oprcode => 'bpcharregexeq', + oprrest => 'regexeqsel', oprjoin => 'regexeqjoinsel' }, +{ oid => '1056', descr => 'does not match regular expression, case-sensitive', + oprname => '!~', oprleft => 'bpchar', oprright => 'text', oprresult => 'bool', + oprnegate => '~(bpchar,text)', oprcode => 'bpcharregexne', + oprrest => 'regexnesel', oprjoin => 'regexnejoinsel' }, +{ oid => '1057', descr => 'not equal', + oprname => '<>', oprleft => 'bpchar', oprright => 'bpchar', + oprresult => 'bool', oprcom => '<>(bpchar,bpchar)', + oprnegate => '=(bpchar,bpchar)', oprcode => 'bpcharne', oprrest => 'neqsel', + oprjoin => 'neqjoinsel' }, +{ oid => '1058', descr => 'less than', + oprname => '<', oprleft => 'bpchar', oprright => 'bpchar', + oprresult => 'bool', oprcom => '>(bpchar,bpchar)', + oprnegate => '>=(bpchar,bpchar)', oprcode => 'bpcharlt', + oprrest => 'scalarltsel', oprjoin => 'scalarltjoinsel' }, +{ oid => '1059', descr => 'less than or equal', + oprname => '<=', oprleft => 'bpchar', oprright => 'bpchar', + oprresult => 'bool', oprcom => '>=(bpchar,bpchar)', + oprnegate => '>(bpchar,bpchar)', oprcode => 'bpcharle', + oprrest => 'scalarlesel', oprjoin => 'scalarlejoinsel' }, +{ oid => '1060', descr => 'greater than', + oprname => '>', oprleft => 'bpchar', oprright => 'bpchar', + oprresult => 'bool', oprcom => '<(bpchar,bpchar)', + oprnegate => '<=(bpchar,bpchar)', oprcode => 'bpchargt', + oprrest => 'scalargtsel', oprjoin => 'scalargtjoinsel' }, +{ oid => '1061', descr => 'greater than or equal', + oprname => '>=', oprleft => 'bpchar', oprright => 'bpchar', + oprresult => 'bool', oprcom => '<=(bpchar,bpchar)', + oprnegate => '<(bpchar,bpchar)', oprcode => 'bpcharge', + oprrest => 'scalargesel', oprjoin => 'scalargejoinsel' }, + +# generic array comparison operators +{ oid => '1070', oid_symbol => 'ARRAY_EQ_OP', descr => 'equal', + oprname => '=', oprcanmerge => 't', oprcanhash => 't', oprleft => 'anyarray', + oprright => 'anyarray', oprresult => 'bool', oprcom => '=(anyarray,anyarray)', + oprnegate => '<>(anyarray,anyarray)', oprcode => 'array_eq', + oprrest => 'eqsel', oprjoin => 'eqjoinsel' }, +{ oid => '1071', descr => 'not equal', + oprname => '<>', oprleft => 'anyarray', oprright => 'anyarray', + oprresult => 'bool', oprcom => '<>(anyarray,anyarray)', + oprnegate => '=(anyarray,anyarray)', oprcode => 'array_ne', + oprrest => 'neqsel', oprjoin => 'neqjoinsel' }, +{ oid => '1072', oid_symbol => 'ARRAY_LT_OP', descr => 'less than', + oprname => '<', oprleft => 'anyarray', oprright => 'anyarray', + oprresult => 'bool', oprcom => '>(anyarray,anyarray)', + oprnegate => '>=(anyarray,anyarray)', oprcode => 'array_lt', + oprrest => 'scalarltsel', oprjoin => 'scalarltjoinsel' }, +{ oid => '1073', oid_symbol => 'ARRAY_GT_OP', descr => 'greater than', + oprname => '>', oprleft => 'anyarray', oprright => 'anyarray', + oprresult => 'bool', oprcom => '<(anyarray,anyarray)', + oprnegate => '<=(anyarray,anyarray)', oprcode => 'array_gt', + oprrest => 'scalargtsel', oprjoin => 'scalargtjoinsel' }, +{ oid => '1074', descr => 'less than or equal', + oprname => '<=', oprleft => 'anyarray', oprright => 'anyarray', + oprresult => 'bool', oprcom => '>=(anyarray,anyarray)', + oprnegate => '>(anyarray,anyarray)', oprcode => 'array_le', + oprrest => 'scalarlesel', oprjoin => 'scalarlejoinsel' }, +{ oid => '1075', descr => 'greater than or equal', + oprname => '>=', oprleft => 'anyarray', oprright => 'anyarray', + oprresult => 'bool', oprcom => '<=(anyarray,anyarray)', + oprnegate => '<(anyarray,anyarray)', oprcode => 'array_ge', + oprrest => 'scalargesel', oprjoin => 'scalargejoinsel' }, + +# date operators +{ oid => '1076', descr => 'add', + oprname => '+', oprleft => 'date', oprright => 'interval', + oprresult => 'timestamp', oprcom => '+(interval,date)', + oprcode => 'date_pl_interval' }, +{ oid => '1077', descr => 'subtract', + oprname => '-', oprleft => 'date', oprright => 'interval', + oprresult => 'timestamp', oprcode => 'date_mi_interval' }, +{ oid => '1093', descr => 'equal', + oprname => '=', oprcanmerge => 't', oprcanhash => 't', oprleft => 'date', + oprright => 'date', oprresult => 'bool', oprcom => '=(date,date)', + oprnegate => '<>(date,date)', oprcode => 'date_eq', oprrest => 'eqsel', + oprjoin => 'eqjoinsel' }, +{ oid => '1094', descr => 'not equal', + oprname => '<>', oprleft => 'date', oprright => 'date', oprresult => 'bool', + oprcom => '<>(date,date)', oprnegate => '=(date,date)', oprcode => 'date_ne', + oprrest => 'neqsel', oprjoin => 'neqjoinsel' }, +{ oid => '1095', descr => 'less than', + oprname => '<', oprleft => 'date', oprright => 'date', oprresult => 'bool', + oprcom => '>(date,date)', oprnegate => '>=(date,date)', oprcode => 'date_lt', + oprrest => 'scalarltsel', oprjoin => 'scalarltjoinsel' }, +{ oid => '1096', descr => 'less than or equal', + oprname => '<=', oprleft => 'date', oprright => 'date', oprresult => 'bool', + oprcom => '>=(date,date)', oprnegate => '>(date,date)', oprcode => 'date_le', + oprrest => 'scalarlesel', oprjoin => 'scalarlejoinsel' }, +{ oid => '1097', descr => 'greater than', + oprname => '>', oprleft => 'date', oprright => 'date', oprresult => 'bool', + oprcom => '<(date,date)', oprnegate => '<=(date,date)', oprcode => 'date_gt', + oprrest => 'scalargtsel', oprjoin => 'scalargtjoinsel' }, +{ oid => '1098', descr => 'greater than or equal', + oprname => '>=', oprleft => 'date', oprright => 'date', oprresult => 'bool', + oprcom => '<=(date,date)', oprnegate => '<(date,date)', oprcode => 'date_ge', + oprrest => 'scalargesel', oprjoin => 'scalargejoinsel' }, +{ oid => '1099', descr => 'subtract', + oprname => '-', oprleft => 'date', oprright => 'date', oprresult => 'int4', + oprcode => 'date_mi' }, +{ oid => '1100', descr => 'add', + oprname => '+', oprleft => 'date', oprright => 'int4', oprresult => 'date', + oprcom => '+(int4,date)', oprcode => 'date_pli' }, +{ oid => '1101', descr => 'subtract', + oprname => '-', oprleft => 'date', oprright => 'int4', oprresult => 'date', + oprcode => 'date_mii' }, + +# time operators +{ oid => '1108', descr => 'equal', + oprname => '=', oprcanmerge => 't', oprcanhash => 't', oprleft => 'time', + oprright => 'time', oprresult => 'bool', oprcom => '=(time,time)', + oprnegate => '<>(time,time)', oprcode => 'time_eq', oprrest => 'eqsel', + oprjoin => 'eqjoinsel' }, +{ oid => '1109', descr => 'not equal', + oprname => '<>', oprleft => 'time', oprright => 'time', oprresult => 'bool', + oprcom => '<>(time,time)', oprnegate => '=(time,time)', oprcode => 'time_ne', + oprrest => 'neqsel', oprjoin => 'neqjoinsel' }, +{ oid => '1110', descr => 'less than', + oprname => '<', oprleft => 'time', oprright => 'time', oprresult => 'bool', + oprcom => '>(time,time)', oprnegate => '>=(time,time)', oprcode => 'time_lt', + oprrest => 'scalarltsel', oprjoin => 'scalarltjoinsel' }, +{ oid => '1111', descr => 'less than or equal', + oprname => '<=', oprleft => 'time', oprright => 'time', oprresult => 'bool', + oprcom => '>=(time,time)', oprnegate => '>(time,time)', oprcode => 'time_le', + oprrest => 'scalarlesel', oprjoin => 'scalarlejoinsel' }, +{ oid => '1112', descr => 'greater than', + oprname => '>', oprleft => 'time', oprright => 'time', oprresult => 'bool', + oprcom => '<(time,time)', oprnegate => '<=(time,time)', oprcode => 'time_gt', + oprrest => 'scalargtsel', oprjoin => 'scalargtjoinsel' }, +{ oid => '1113', descr => 'greater than or equal', + oprname => '>=', oprleft => 'time', oprright => 'time', oprresult => 'bool', + oprcom => '<=(time,time)', oprnegate => '<(time,time)', oprcode => 'time_ge', + oprrest => 'scalargesel', oprjoin => 'scalargejoinsel' }, + +# timetz operators +{ oid => '1550', descr => 'equal', + oprname => '=', oprcanmerge => 't', oprcanhash => 't', oprleft => 'timetz', + oprright => 'timetz', oprresult => 'bool', oprcom => '=(timetz,timetz)', + oprnegate => '<>(timetz,timetz)', oprcode => 'timetz_eq', oprrest => 'eqsel', + oprjoin => 'eqjoinsel' }, +{ oid => '1551', descr => 'not equal', + oprname => '<>', oprleft => 'timetz', oprright => 'timetz', + oprresult => 'bool', oprcom => '<>(timetz,timetz)', + oprnegate => '=(timetz,timetz)', oprcode => 'timetz_ne', oprrest => 'neqsel', + oprjoin => 'neqjoinsel' }, +{ oid => '1552', descr => 'less than', + oprname => '<', oprleft => 'timetz', oprright => 'timetz', + oprresult => 'bool', oprcom => '>(timetz,timetz)', + oprnegate => '>=(timetz,timetz)', oprcode => 'timetz_lt', + oprrest => 'scalarltsel', oprjoin => 'scalarltjoinsel' }, +{ oid => '1553', descr => 'less than or equal', + oprname => '<=', oprleft => 'timetz', oprright => 'timetz', + oprresult => 'bool', oprcom => '>=(timetz,timetz)', + oprnegate => '>(timetz,timetz)', oprcode => 'timetz_le', + oprrest => 'scalarlesel', oprjoin => 'scalarlejoinsel' }, +{ oid => '1554', descr => 'greater than', + oprname => '>', oprleft => 'timetz', oprright => 'timetz', + oprresult => 'bool', oprcom => '<(timetz,timetz)', + oprnegate => '<=(timetz,timetz)', oprcode => 'timetz_gt', + oprrest => 'scalargtsel', oprjoin => 'scalargtjoinsel' }, +{ oid => '1555', descr => 'greater than or equal', + oprname => '>=', oprleft => 'timetz', oprright => 'timetz', + oprresult => 'bool', oprcom => '<=(timetz,timetz)', + oprnegate => '<(timetz,timetz)', oprcode => 'timetz_ge', + oprrest => 'scalargesel', oprjoin => 'scalargejoinsel' }, + +# float48 operators +{ oid => '1116', descr => 'add', + oprname => '+', oprleft => 'float4', oprright => 'float8', + oprresult => 'float8', oprcom => '+(float8,float4)', oprcode => 'float48pl' }, +{ oid => '1117', descr => 'subtract', + oprname => '-', oprleft => 'float4', oprright => 'float8', + oprresult => 'float8', oprcode => 'float48mi' }, +{ oid => '1118', descr => 'divide', + oprname => '/', oprleft => 'float4', oprright => 'float8', + oprresult => 'float8', oprcode => 'float48div' }, +{ oid => '1119', descr => 'multiply', + oprname => '*', oprleft => 'float4', oprright => 'float8', + oprresult => 'float8', oprcom => '*(float8,float4)', + oprcode => 'float48mul' }, +{ oid => '1120', descr => 'equal', + oprname => '=', oprcanmerge => 't', oprcanhash => 't', oprleft => 'float4', + oprright => 'float8', oprresult => 'bool', oprcom => '=(float8,float4)', + oprnegate => '<>(float4,float8)', oprcode => 'float48eq', oprrest => 'eqsel', + oprjoin => 'eqjoinsel' }, +{ oid => '1121', descr => 'not equal', + oprname => '<>', oprleft => 'float4', oprright => 'float8', + oprresult => 'bool', oprcom => '<>(float8,float4)', + oprnegate => '=(float4,float8)', oprcode => 'float48ne', oprrest => 'neqsel', + oprjoin => 'neqjoinsel' }, +{ oid => '1122', descr => 'less than', + oprname => '<', oprleft => 'float4', oprright => 'float8', + oprresult => 'bool', oprcom => '>(float8,float4)', + oprnegate => '>=(float4,float8)', oprcode => 'float48lt', + oprrest => 'scalarltsel', oprjoin => 'scalarltjoinsel' }, +{ oid => '1123', descr => 'greater than', + oprname => '>', oprleft => 'float4', oprright => 'float8', + oprresult => 'bool', oprcom => '<(float8,float4)', + oprnegate => '<=(float4,float8)', oprcode => 'float48gt', + oprrest => 'scalargtsel', oprjoin => 'scalargtjoinsel' }, +{ oid => '1124', descr => 'less than or equal', + oprname => '<=', oprleft => 'float4', oprright => 'float8', + oprresult => 'bool', oprcom => '>=(float8,float4)', + oprnegate => '>(float4,float8)', oprcode => 'float48le', + oprrest => 'scalarlesel', oprjoin => 'scalarlejoinsel' }, +{ oid => '1125', descr => 'greater than or equal', + oprname => '>=', oprleft => 'float4', oprright => 'float8', + oprresult => 'bool', oprcom => '<=(float8,float4)', + oprnegate => '<(float4,float8)', oprcode => 'float48ge', + oprrest => 'scalargesel', oprjoin => 'scalargejoinsel' }, + +# float84 operators +{ oid => '1126', descr => 'add', + oprname => '+', oprleft => 'float8', oprright => 'float4', + oprresult => 'float8', oprcom => '+(float4,float8)', oprcode => 'float84pl' }, +{ oid => '1127', descr => 'subtract', + oprname => '-', oprleft => 'float8', oprright => 'float4', + oprresult => 'float8', oprcode => 'float84mi' }, +{ oid => '1128', descr => 'divide', + oprname => '/', oprleft => 'float8', oprright => 'float4', + oprresult => 'float8', oprcode => 'float84div' }, +{ oid => '1129', descr => 'multiply', + oprname => '*', oprleft => 'float8', oprright => 'float4', + oprresult => 'float8', oprcom => '*(float4,float8)', + oprcode => 'float84mul' }, +{ oid => '1130', descr => 'equal', + oprname => '=', oprcanmerge => 't', oprcanhash => 't', oprleft => 'float8', + oprright => 'float4', oprresult => 'bool', oprcom => '=(float4,float8)', + oprnegate => '<>(float8,float4)', oprcode => 'float84eq', oprrest => 'eqsel', + oprjoin => 'eqjoinsel' }, +{ oid => '1131', descr => 'not equal', + oprname => '<>', oprleft => 'float8', oprright => 'float4', + oprresult => 'bool', oprcom => '<>(float4,float8)', + oprnegate => '=(float8,float4)', oprcode => 'float84ne', oprrest => 'neqsel', + oprjoin => 'neqjoinsel' }, +{ oid => '1132', descr => 'less than', + oprname => '<', oprleft => 'float8', oprright => 'float4', + oprresult => 'bool', oprcom => '>(float4,float8)', + oprnegate => '>=(float8,float4)', oprcode => 'float84lt', + oprrest => 'scalarltsel', oprjoin => 'scalarltjoinsel' }, +{ oid => '1133', descr => 'greater than', + oprname => '>', oprleft => 'float8', oprright => 'float4', + oprresult => 'bool', oprcom => '<(float4,float8)', + oprnegate => '<=(float8,float4)', oprcode => 'float84gt', + oprrest => 'scalargtsel', oprjoin => 'scalargtjoinsel' }, +{ oid => '1134', descr => 'less than or equal', + oprname => '<=', oprleft => 'float8', oprright => 'float4', + oprresult => 'bool', oprcom => '>=(float4,float8)', + oprnegate => '>(float8,float4)', oprcode => 'float84le', + oprrest => 'scalarlesel', oprjoin => 'scalarlejoinsel' }, +{ oid => '1135', descr => 'greater than or equal', + oprname => '>=', oprleft => 'float8', oprright => 'float4', + oprresult => 'bool', oprcom => '<=(float4,float8)', + oprnegate => '<(float8,float4)', oprcode => 'float84ge', + oprrest => 'scalargesel', oprjoin => 'scalargejoinsel' }, + +# LIKE hacks by Keith Parks. +{ oid => '1207', oid_symbol => 'OID_NAME_LIKE_OP', + descr => 'matches LIKE expression', + oprname => '~~', oprleft => 'name', oprright => 'text', oprresult => 'bool', + oprnegate => '!~~(name,text)', oprcode => 'namelike', oprrest => 'likesel', + oprjoin => 'likejoinsel' }, +{ oid => '1208', descr => 'does not match LIKE expression', + oprname => '!~~', oprleft => 'name', oprright => 'text', oprresult => 'bool', + oprnegate => '~~(name,text)', oprcode => 'namenlike', oprrest => 'nlikesel', + oprjoin => 'nlikejoinsel' }, +{ oid => '1209', oid_symbol => 'OID_TEXT_LIKE_OP', + descr => 'matches LIKE expression', + oprname => '~~', oprleft => 'text', oprright => 'text', oprresult => 'bool', + oprnegate => '!~~(text,text)', oprcode => 'textlike', oprrest => 'likesel', + oprjoin => 'likejoinsel' }, +{ oid => '1210', descr => 'does not match LIKE expression', + oprname => '!~~', oprleft => 'text', oprright => 'text', oprresult => 'bool', + oprnegate => '~~(text,text)', oprcode => 'textnlike', oprrest => 'nlikesel', + oprjoin => 'nlikejoinsel' }, +{ oid => '1211', oid_symbol => 'OID_BPCHAR_LIKE_OP', + descr => 'matches LIKE expression', + oprname => '~~', oprleft => 'bpchar', oprright => 'text', oprresult => 'bool', + oprnegate => '!~~(bpchar,text)', oprcode => 'bpcharlike', + oprrest => 'likesel', oprjoin => 'likejoinsel' }, +{ oid => '1212', descr => 'does not match LIKE expression', + oprname => '!~~', oprleft => 'bpchar', oprright => 'text', + oprresult => 'bool', oprnegate => '~~(bpchar,text)', oprcode => 'bpcharnlike', + oprrest => 'nlikesel', oprjoin => 'nlikejoinsel' }, + +# case-insensitive regex hacks +{ oid => '1226', oid_symbol => 'OID_NAME_ICREGEXEQ_OP', + descr => 'matches regular expression, case-insensitive', + oprname => '~*', oprleft => 'name', oprright => 'text', oprresult => 'bool', + oprnegate => '!~*(name,text)', oprcode => 'nameicregexeq', + oprrest => 'icregexeqsel', oprjoin => 'icregexeqjoinsel' }, +{ oid => '1227', + descr => 'does not match regular expression, case-insensitive', + oprname => '!~*', oprleft => 'name', oprright => 'text', oprresult => 'bool', + oprnegate => '~*(name,text)', oprcode => 'nameicregexne', + oprrest => 'icregexnesel', oprjoin => 'icregexnejoinsel' }, +{ oid => '1228', oid_symbol => 'OID_TEXT_ICREGEXEQ_OP', + descr => 'matches regular expression, case-insensitive', + oprname => '~*', oprleft => 'text', oprright => 'text', oprresult => 'bool', + oprnegate => '!~*(text,text)', oprcode => 'texticregexeq', + oprrest => 'icregexeqsel', oprjoin => 'icregexeqjoinsel' }, +{ oid => '1229', + descr => 'does not match regular expression, case-insensitive', + oprname => '!~*', oprleft => 'text', oprright => 'text', oprresult => 'bool', + oprnegate => '~*(text,text)', oprcode => 'texticregexne', + oprrest => 'icregexnesel', oprjoin => 'icregexnejoinsel' }, +{ oid => '1234', oid_symbol => 'OID_BPCHAR_ICREGEXEQ_OP', + descr => 'matches regular expression, case-insensitive', + oprname => '~*', oprleft => 'bpchar', oprright => 'text', oprresult => 'bool', + oprnegate => '!~*(bpchar,text)', oprcode => 'bpcharicregexeq', + oprrest => 'icregexeqsel', oprjoin => 'icregexeqjoinsel' }, +{ oid => '1235', + descr => 'does not match regular expression, case-insensitive', + oprname => '!~*', oprleft => 'bpchar', oprright => 'text', + oprresult => 'bool', oprnegate => '~*(bpchar,text)', + oprcode => 'bpcharicregexne', oprrest => 'icregexnesel', + oprjoin => 'icregexnejoinsel' }, + +# timestamptz operators +{ oid => '1320', descr => 'equal', + oprname => '=', oprcanmerge => 't', oprcanhash => 't', + oprleft => 'timestamptz', oprright => 'timestamptz', oprresult => 'bool', + oprcom => '=(timestamptz,timestamptz)', + oprnegate => '<>(timestamptz,timestamptz)', oprcode => 'timestamptz_eq', + oprrest => 'eqsel', oprjoin => 'eqjoinsel' }, +{ oid => '1321', descr => 'not equal', + oprname => '<>', oprleft => 'timestamptz', oprright => 'timestamptz', + oprresult => 'bool', oprcom => '<>(timestamptz,timestamptz)', + oprnegate => '=(timestamptz,timestamptz)', oprcode => 'timestamptz_ne', + oprrest => 'neqsel', oprjoin => 'neqjoinsel' }, +{ oid => '1322', descr => 'less than', + oprname => '<', oprleft => 'timestamptz', oprright => 'timestamptz', + oprresult => 'bool', oprcom => '>(timestamptz,timestamptz)', + oprnegate => '>=(timestamptz,timestamptz)', oprcode => 'timestamptz_lt', + oprrest => 'scalarltsel', oprjoin => 'scalarltjoinsel' }, +{ oid => '1323', descr => 'less than or equal', + oprname => '<=', oprleft => 'timestamptz', oprright => 'timestamptz', + oprresult => 'bool', oprcom => '>=(timestamptz,timestamptz)', + oprnegate => '>(timestamptz,timestamptz)', oprcode => 'timestamptz_le', + oprrest => 'scalarlesel', oprjoin => 'scalarlejoinsel' }, +{ oid => '1324', descr => 'greater than', + oprname => '>', oprleft => 'timestamptz', oprright => 'timestamptz', + oprresult => 'bool', oprcom => '<(timestamptz,timestamptz)', + oprnegate => '<=(timestamptz,timestamptz)', oprcode => 'timestamptz_gt', + oprrest => 'scalargtsel', oprjoin => 'scalargtjoinsel' }, +{ oid => '1325', descr => 'greater than or equal', + oprname => '>=', oprleft => 'timestamptz', oprright => 'timestamptz', + oprresult => 'bool', oprcom => '<=(timestamptz,timestamptz)', + oprnegate => '<(timestamptz,timestamptz)', oprcode => 'timestamptz_ge', + oprrest => 'scalargesel', oprjoin => 'scalargejoinsel' }, +{ oid => '1327', descr => 'add', + oprname => '+', oprleft => 'timestamptz', oprright => 'interval', + oprresult => 'timestamptz', oprcom => '+(interval,timestamptz)', + oprcode => 'timestamptz_pl_interval' }, +{ oid => '1328', descr => 'subtract', + oprname => '-', oprleft => 'timestamptz', oprright => 'timestamptz', + oprresult => 'interval', oprcode => 'timestamptz_mi' }, +{ oid => '1329', descr => 'subtract', + oprname => '-', oprleft => 'timestamptz', oprright => 'interval', + oprresult => 'timestamptz', oprcode => 'timestamptz_mi_interval' }, + +# interval operators +{ oid => '1330', descr => 'equal', + oprname => '=', oprcanmerge => 't', oprcanhash => 't', oprleft => 'interval', + oprright => 'interval', oprresult => 'bool', oprcom => '=(interval,interval)', + oprnegate => '<>(interval,interval)', oprcode => 'interval_eq', + oprrest => 'eqsel', oprjoin => 'eqjoinsel' }, +{ oid => '1331', descr => 'not equal', + oprname => '<>', oprleft => 'interval', oprright => 'interval', + oprresult => 'bool', oprcom => '<>(interval,interval)', + oprnegate => '=(interval,interval)', oprcode => 'interval_ne', + oprrest => 'neqsel', oprjoin => 'neqjoinsel' }, +{ oid => '1332', descr => 'less than', + oprname => '<', oprleft => 'interval', oprright => 'interval', + oprresult => 'bool', oprcom => '>(interval,interval)', + oprnegate => '>=(interval,interval)', oprcode => 'interval_lt', + oprrest => 'scalarltsel', oprjoin => 'scalarltjoinsel' }, +{ oid => '1333', descr => 'less than or equal', + oprname => '<=', oprleft => 'interval', oprright => 'interval', + oprresult => 'bool', oprcom => '>=(interval,interval)', + oprnegate => '>(interval,interval)', oprcode => 'interval_le', + oprrest => 'scalarlesel', oprjoin => 'scalarlejoinsel' }, +{ oid => '1334', descr => 'greater than', + oprname => '>', oprleft => 'interval', oprright => 'interval', + oprresult => 'bool', oprcom => '<(interval,interval)', + oprnegate => '<=(interval,interval)', oprcode => 'interval_gt', + oprrest => 'scalargtsel', oprjoin => 'scalargtjoinsel' }, +{ oid => '1335', descr => 'greater than or equal', + oprname => '>=', oprleft => 'interval', oprright => 'interval', + oprresult => 'bool', oprcom => '<=(interval,interval)', + oprnegate => '<(interval,interval)', oprcode => 'interval_ge', + oprrest => 'scalargesel', oprjoin => 'scalargejoinsel' }, + +{ oid => '1336', descr => 'negate', + oprname => '-', oprkind => 'l', oprleft => '0', oprright => 'interval', + oprresult => 'interval', oprcode => 'interval_um' }, +{ oid => '1337', descr => 'add', + oprname => '+', oprleft => 'interval', oprright => 'interval', + oprresult => 'interval', oprcom => '+(interval,interval)', + oprcode => 'interval_pl' }, +{ oid => '1338', descr => 'subtract', + oprname => '-', oprleft => 'interval', oprright => 'interval', + oprresult => 'interval', oprcode => 'interval_mi' }, + +{ oid => '1360', descr => 'convert date and time to timestamp', + oprname => '+', oprleft => 'date', oprright => 'time', + oprresult => 'timestamp', oprcom => '+(time,date)', + oprcode => 'datetime_pl' }, +{ oid => '1361', + descr => 'convert date and time with time zone to timestamp with time zone', + oprname => '+', oprleft => 'date', oprright => 'timetz', + oprresult => 'timestamptz', oprcom => '+(timetz,date)', + oprcode => 'datetimetz_pl' }, +{ oid => '1363', descr => 'convert time and date to timestamp', + oprname => '+', oprleft => 'time', oprright => 'date', + oprresult => 'timestamp', oprcom => '+(date,time)', + oprcode => 'timedate_pl' }, +{ oid => '1366', + descr => 'convert time with time zone and date to timestamp with time zone', + oprname => '+', oprleft => 'timetz', oprright => 'date', + oprresult => 'timestamptz', oprcom => '+(date,timetz)', + oprcode => 'timetzdate_pl' }, + +{ oid => '1399', descr => 'subtract', + oprname => '-', oprleft => 'time', oprright => 'time', + oprresult => 'interval', oprcode => 'time_mi_time' }, + +# additional geometric operators - thomas 97/04/18 +{ oid => '1420', descr => 'center of', + oprname => '@@', oprkind => 'l', oprleft => '0', oprright => 'circle', + oprresult => 'point', oprcode => 'circle_center' }, +{ oid => '1500', descr => 'equal by area', + oprname => '=', oprleft => 'circle', oprright => 'circle', + oprresult => 'bool', oprcom => '=(circle,circle)', + oprnegate => '<>(circle,circle)', oprcode => 'circle_eq', oprrest => 'eqsel', + oprjoin => 'eqjoinsel' }, +{ oid => '1501', descr => 'not equal by area', + oprname => '<>', oprleft => 'circle', oprright => 'circle', + oprresult => 'bool', oprcom => '<>(circle,circle)', + oprnegate => '=(circle,circle)', oprcode => 'circle_ne', oprrest => 'neqsel', + oprjoin => 'neqjoinsel' }, +{ oid => '1502', descr => 'less than by area', + oprname => '<', oprleft => 'circle', oprright => 'circle', + oprresult => 'bool', oprcom => '>(circle,circle)', + oprnegate => '>=(circle,circle)', oprcode => 'circle_lt', + oprrest => 'areasel', oprjoin => 'areajoinsel' }, +{ oid => '1503', descr => 'greater than by area', + oprname => '>', oprleft => 'circle', oprright => 'circle', + oprresult => 'bool', oprcom => '<(circle,circle)', + oprnegate => '<=(circle,circle)', oprcode => 'circle_gt', + oprrest => 'areasel', oprjoin => 'areajoinsel' }, +{ oid => '1504', descr => 'less than or equal by area', + oprname => '<=', oprleft => 'circle', oprright => 'circle', + oprresult => 'bool', oprcom => '>=(circle,circle)', + oprnegate => '>(circle,circle)', oprcode => 'circle_le', oprrest => 'areasel', + oprjoin => 'areajoinsel' }, +{ oid => '1505', descr => 'greater than or equal by area', + oprname => '>=', oprleft => 'circle', oprright => 'circle', + oprresult => 'bool', oprcom => '<=(circle,circle)', + oprnegate => '<(circle,circle)', oprcode => 'circle_ge', oprrest => 'areasel', + oprjoin => 'areajoinsel' }, + +{ oid => '1506', descr => 'is left of', + oprname => '<<', oprleft => 'circle', oprright => 'circle', + oprresult => 'bool', oprcode => 'circle_left', oprrest => 'positionsel', + oprjoin => 'positionjoinsel' }, +{ oid => '1507', descr => 'overlaps or is left of', + oprname => '&<', oprleft => 'circle', oprright => 'circle', + oprresult => 'bool', oprcode => 'circle_overleft', oprrest => 'positionsel', + oprjoin => 'positionjoinsel' }, +{ oid => '1508', descr => 'overlaps or is right of', + oprname => '&>', oprleft => 'circle', oprright => 'circle', + oprresult => 'bool', oprcode => 'circle_overright', oprrest => 'positionsel', + oprjoin => 'positionjoinsel' }, +{ oid => '1509', descr => 'is right of', + oprname => '>>', oprleft => 'circle', oprright => 'circle', + oprresult => 'bool', oprcode => 'circle_right', oprrest => 'positionsel', + oprjoin => 'positionjoinsel' }, +{ oid => '1510', descr => 'is contained by', + oprname => '<@', oprleft => 'circle', oprright => 'circle', + oprresult => 'bool', oprcom => '@>(circle,circle)', + oprcode => 'circle_contained', oprrest => 'contsel', + oprjoin => 'contjoinsel' }, +{ oid => '1511', descr => 'contains', + oprname => '@>', oprleft => 'circle', oprright => 'circle', + oprresult => 'bool', oprcom => '<@(circle,circle)', + oprcode => 'circle_contain', oprrest => 'contsel', oprjoin => 'contjoinsel' }, +{ oid => '1512', descr => 'same as', + oprname => '~=', oprleft => 'circle', oprright => 'circle', + oprresult => 'bool', oprcom => '~=(circle,circle)', oprcode => 'circle_same', + oprrest => 'eqsel', oprjoin => 'eqjoinsel' }, +{ oid => '1513', descr => 'overlaps', + oprname => '&&', oprleft => 'circle', oprright => 'circle', + oprresult => 'bool', oprcom => '&&(circle,circle)', + oprcode => 'circle_overlap', oprrest => 'areasel', oprjoin => 'areajoinsel' }, +{ oid => '1514', descr => 'is above', + oprname => '|>>', oprleft => 'circle', oprright => 'circle', + oprresult => 'bool', oprcode => 'circle_above', oprrest => 'positionsel', + oprjoin => 'positionjoinsel' }, +{ oid => '1515', descr => 'is below', + oprname => '<<|', oprleft => 'circle', oprright => 'circle', + oprresult => 'bool', oprcode => 'circle_below', oprrest => 'positionsel', + oprjoin => 'positionjoinsel' }, + +{ oid => '1516', descr => 'add', + oprname => '+', oprleft => 'circle', oprright => 'point', + oprresult => 'circle', oprcode => 'circle_add_pt' }, +{ oid => '1517', descr => 'subtract', + oprname => '-', oprleft => 'circle', oprright => 'point', + oprresult => 'circle', oprcode => 'circle_sub_pt' }, +{ oid => '1518', descr => 'multiply', + oprname => '*', oprleft => 'circle', oprright => 'point', + oprresult => 'circle', oprcode => 'circle_mul_pt' }, +{ oid => '1519', descr => 'divide', + oprname => '/', oprleft => 'circle', oprright => 'point', + oprresult => 'circle', oprcode => 'circle_div_pt' }, + +{ oid => '1520', descr => 'distance between', + oprname => '<->', oprleft => 'circle', oprright => 'circle', + oprresult => 'float8', oprcom => '<->(circle,circle)', + oprcode => 'circle_distance' }, +{ oid => '1521', descr => 'number of points', + oprname => '#', oprkind => 'l', oprleft => '0', oprright => 'polygon', + oprresult => 'int4', oprcode => 'poly_npoints' }, +{ oid => '1522', descr => 'distance between', + oprname => '<->', oprleft => 'point', oprright => 'circle', + oprresult => 'float8', oprcom => '<->(circle,point)', oprcode => 'dist_pc' }, +{ oid => '3291', descr => 'distance between', + oprname => '<->', oprleft => 'circle', oprright => 'point', + oprresult => 'float8', oprcom => '<->(point,circle)', + oprcode => 'dist_cpoint' }, +{ oid => '3276', descr => 'distance between', + oprname => '<->', oprleft => 'point', oprright => 'polygon', + oprresult => 'float8', oprcom => '<->(polygon,point)', + oprcode => 'dist_ppoly' }, +{ oid => '3289', descr => 'distance between', + oprname => '<->', oprleft => 'polygon', oprright => 'point', + oprresult => 'float8', oprcom => '<->(point,polygon)', + oprcode => 'dist_polyp' }, +{ oid => '1523', descr => 'distance between', + oprname => '<->', oprleft => 'circle', oprright => 'polygon', + oprresult => 'float8', oprcode => 'dist_cpoly' }, + +# additional geometric operators - thomas 1997-07-09 +{ oid => '1524', descr => 'distance between', + oprname => '<->', oprleft => 'line', oprright => 'box', oprresult => 'float8', + oprcode => 'dist_lb' }, + +{ oid => '1525', descr => 'intersect', + oprname => '?#', oprleft => 'lseg', oprright => 'lseg', oprresult => 'bool', + oprcom => '?#(lseg,lseg)', oprcode => 'lseg_intersect' }, +{ oid => '1526', descr => 'parallel', + oprname => '?||', oprleft => 'lseg', oprright => 'lseg', oprresult => 'bool', + oprcom => '?||(lseg,lseg)', oprcode => 'lseg_parallel' }, +{ oid => '1527', descr => 'perpendicular', + oprname => '?-|', oprleft => 'lseg', oprright => 'lseg', oprresult => 'bool', + oprcom => '?-|(lseg,lseg)', oprcode => 'lseg_perp' }, +{ oid => '1528', descr => 'horizontal', + oprname => '?-', oprkind => 'l', oprleft => '0', oprright => 'lseg', + oprresult => 'bool', oprcode => 'lseg_horizontal' }, +{ oid => '1529', descr => 'vertical', + oprname => '?|', oprkind => 'l', oprleft => '0', oprright => 'lseg', + oprresult => 'bool', oprcode => 'lseg_vertical' }, +{ oid => '1535', descr => 'equal', + oprname => '=', oprleft => 'lseg', oprright => 'lseg', oprresult => 'bool', + oprcom => '=(lseg,lseg)', oprnegate => '<>(lseg,lseg)', oprcode => 'lseg_eq', + oprrest => 'eqsel', oprjoin => 'eqjoinsel' }, +{ oid => '1536', descr => 'intersection point', + oprname => '#', oprleft => 'lseg', oprright => 'lseg', oprresult => 'point', + oprcom => '#(lseg,lseg)', oprcode => 'lseg_interpt' }, +{ oid => '1537', descr => 'intersect', + oprname => '?#', oprleft => 'lseg', oprright => 'line', oprresult => 'bool', + oprcode => 'inter_sl' }, +{ oid => '1538', descr => 'intersect', + oprname => '?#', oprleft => 'lseg', oprright => 'box', oprresult => 'bool', + oprcode => 'inter_sb' }, +{ oid => '1539', descr => 'intersect', + oprname => '?#', oprleft => 'line', oprright => 'box', oprresult => 'bool', + oprcode => 'inter_lb' }, + +{ oid => '1546', descr => 'point on line', + oprname => '<@', oprleft => 'point', oprright => 'line', oprresult => 'bool', + oprcode => 'on_pl' }, +{ oid => '1547', descr => 'is contained by', + oprname => '<@', oprleft => 'point', oprright => 'lseg', oprresult => 'bool', + oprcode => 'on_ps' }, +{ oid => '1548', descr => 'lseg on line', + oprname => '<@', oprleft => 'lseg', oprright => 'line', oprresult => 'bool', + oprcode => 'on_sl' }, +{ oid => '1549', descr => 'is contained by', + oprname => '<@', oprleft => 'lseg', oprright => 'box', oprresult => 'bool', + oprcode => 'on_sb' }, + +{ oid => '1557', descr => 'closest point to A on B', + oprname => '##', oprleft => 'point', oprright => 'line', oprresult => 'point', + oprcode => 'close_pl' }, +{ oid => '1558', descr => 'closest point to A on B', + oprname => '##', oprleft => 'point', oprright => 'lseg', oprresult => 'point', + oprcode => 'close_ps' }, +{ oid => '1559', descr => 'closest point to A on B', + oprname => '##', oprleft => 'point', oprright => 'box', oprresult => 'point', + oprcode => 'close_pb' }, + +{ oid => '1566', descr => 'closest point to A on B', + oprname => '##', oprleft => 'lseg', oprright => 'line', oprresult => 'point', + oprcode => 'close_sl' }, +{ oid => '1567', descr => 'closest point to A on B', + oprname => '##', oprleft => 'lseg', oprright => 'box', oprresult => 'point', + oprcode => 'close_sb' }, +{ oid => '1568', descr => 'closest point to A on B', + oprname => '##', oprleft => 'line', oprright => 'box', oprresult => 'point', + oprcode => 'close_lb' }, +{ oid => '1577', descr => 'closest point to A on B', + oprname => '##', oprleft => 'line', oprright => 'lseg', oprresult => 'point', + oprcode => 'close_ls' }, +{ oid => '1578', descr => 'closest point to A on B', + oprname => '##', oprleft => 'lseg', oprright => 'lseg', oprresult => 'point', + oprcode => 'close_lseg' }, +{ oid => '1583', descr => 'multiply', + oprname => '*', oprleft => 'interval', oprright => 'float8', + oprresult => 'interval', oprcom => '*(float8,interval)', + oprcode => 'interval_mul' }, +{ oid => '1584', descr => 'multiply', + oprname => '*', oprleft => 'float8', oprright => 'interval', + oprresult => 'interval', oprcom => '*(interval,float8)', + oprcode => 'mul_d_interval' }, +{ oid => '1585', descr => 'divide', + oprname => '/', oprleft => 'interval', oprright => 'float8', + oprresult => 'interval', oprcode => 'interval_div' }, + +{ oid => '1586', descr => 'not equal', + oprname => '<>', oprleft => 'lseg', oprright => 'lseg', oprresult => 'bool', + oprcom => '<>(lseg,lseg)', oprnegate => '=(lseg,lseg)', oprcode => 'lseg_ne', + oprrest => 'neqsel', oprjoin => 'neqjoinsel' }, +{ oid => '1587', descr => 'less than by length', + oprname => '<', oprleft => 'lseg', oprright => 'lseg', oprresult => 'bool', + oprcom => '>(lseg,lseg)', oprnegate => '>=(lseg,lseg)', + oprcode => 'lseg_lt' }, +{ oid => '1588', descr => 'less than or equal by length', + oprname => '<=', oprleft => 'lseg', oprright => 'lseg', oprresult => 'bool', + oprcom => '>=(lseg,lseg)', oprnegate => '>(lseg,lseg)', + oprcode => 'lseg_le' }, +{ oid => '1589', descr => 'greater than by length', + oprname => '>', oprleft => 'lseg', oprright => 'lseg', oprresult => 'bool', + oprcom => '<(lseg,lseg)', oprnegate => '<=(lseg,lseg)', + oprcode => 'lseg_gt' }, +{ oid => '1590', descr => 'greater than or equal by length', + oprname => '>=', oprleft => 'lseg', oprright => 'lseg', oprresult => 'bool', + oprcom => '<=(lseg,lseg)', oprnegate => '<(lseg,lseg)', + oprcode => 'lseg_ge' }, + +{ oid => '1591', descr => 'distance between endpoints', + oprname => '@-@', oprkind => 'l', oprleft => '0', oprright => 'lseg', + oprresult => 'float8', oprcode => 'lseg_length' }, + +{ oid => '1611', descr => 'intersect', + oprname => '?#', oprleft => 'line', oprright => 'line', oprresult => 'bool', + oprcom => '?#(line,line)', oprcode => 'line_intersect' }, +{ oid => '1612', descr => 'parallel', + oprname => '?||', oprleft => 'line', oprright => 'line', oprresult => 'bool', + oprcom => '?||(line,line)', oprcode => 'line_parallel' }, +{ oid => '1613', descr => 'perpendicular', + oprname => '?-|', oprleft => 'line', oprright => 'line', oprresult => 'bool', + oprcom => '?-|(line,line)', oprcode => 'line_perp' }, +{ oid => '1614', descr => 'horizontal', + oprname => '?-', oprkind => 'l', oprleft => '0', oprright => 'line', + oprresult => 'bool', oprcode => 'line_horizontal' }, +{ oid => '1615', descr => 'vertical', + oprname => '?|', oprkind => 'l', oprleft => '0', oprright => 'line', + oprresult => 'bool', oprcode => 'line_vertical' }, +{ oid => '1616', descr => 'equal', + oprname => '=', oprleft => 'line', oprright => 'line', oprresult => 'bool', + oprcom => '=(line,line)', oprcode => 'line_eq', oprrest => 'eqsel', + oprjoin => 'eqjoinsel' }, +{ oid => '1617', descr => 'intersection point', + oprname => '#', oprleft => 'line', oprright => 'line', oprresult => 'point', + oprcom => '#(line,line)', oprcode => 'line_interpt' }, + +# MACADDR type +{ oid => '1220', descr => 'equal', + oprname => '=', oprcanmerge => 't', oprcanhash => 't', oprleft => 'macaddr', + oprright => 'macaddr', oprresult => 'bool', oprcom => '=(macaddr,macaddr)', + oprnegate => '<>(macaddr,macaddr)', oprcode => 'macaddr_eq', + oprrest => 'eqsel', oprjoin => 'eqjoinsel' }, +{ oid => '1221', descr => 'not equal', + oprname => '<>', oprleft => 'macaddr', oprright => 'macaddr', + oprresult => 'bool', oprcom => '<>(macaddr,macaddr)', + oprnegate => '=(macaddr,macaddr)', oprcode => 'macaddr_ne', + oprrest => 'neqsel', oprjoin => 'neqjoinsel' }, +{ oid => '1222', descr => 'less than', + oprname => '<', oprleft => 'macaddr', oprright => 'macaddr', + oprresult => 'bool', oprcom => '>(macaddr,macaddr)', + oprnegate => '>=(macaddr,macaddr)', oprcode => 'macaddr_lt', + oprrest => 'scalarltsel', oprjoin => 'scalarltjoinsel' }, +{ oid => '1223', descr => 'less than or equal', + oprname => '<=', oprleft => 'macaddr', oprright => 'macaddr', + oprresult => 'bool', oprcom => '>=(macaddr,macaddr)', + oprnegate => '>(macaddr,macaddr)', oprcode => 'macaddr_le', + oprrest => 'scalarlesel', oprjoin => 'scalarlejoinsel' }, +{ oid => '1224', descr => 'greater than', + oprname => '>', oprleft => 'macaddr', oprright => 'macaddr', + oprresult => 'bool', oprcom => '<(macaddr,macaddr)', + oprnegate => '<=(macaddr,macaddr)', oprcode => 'macaddr_gt', + oprrest => 'scalargtsel', oprjoin => 'scalargtjoinsel' }, +{ oid => '1225', descr => 'greater than or equal', + oprname => '>=', oprleft => 'macaddr', oprright => 'macaddr', + oprresult => 'bool', oprcom => '<=(macaddr,macaddr)', + oprnegate => '<(macaddr,macaddr)', oprcode => 'macaddr_ge', + oprrest => 'scalargesel', oprjoin => 'scalargejoinsel' }, + +{ oid => '3147', descr => 'bitwise not', + oprname => '~', oprkind => 'l', oprleft => '0', oprright => 'macaddr', + oprresult => 'macaddr', oprcode => 'macaddr_not' }, +{ oid => '3148', descr => 'bitwise and', + oprname => '&', oprleft => 'macaddr', oprright => 'macaddr', + oprresult => 'macaddr', oprcode => 'macaddr_and' }, +{ oid => '3149', descr => 'bitwise or', + oprname => '|', oprleft => 'macaddr', oprright => 'macaddr', + oprresult => 'macaddr', oprcode => 'macaddr_or' }, + +# MACADDR8 type +{ oid => '3362', descr => 'equal', + oprname => '=', oprcanmerge => 't', oprcanhash => 't', oprleft => 'macaddr8', + oprright => 'macaddr8', oprresult => 'bool', oprcom => '=(macaddr8,macaddr8)', + oprnegate => '<>(macaddr8,macaddr8)', oprcode => 'macaddr8_eq', + oprrest => 'eqsel', oprjoin => 'eqjoinsel' }, +{ oid => '3363', descr => 'not equal', + oprname => '<>', oprleft => 'macaddr8', oprright => 'macaddr8', + oprresult => 'bool', oprcom => '<>(macaddr8,macaddr8)', + oprnegate => '=(macaddr8,macaddr8)', oprcode => 'macaddr8_ne', + oprrest => 'neqsel', oprjoin => 'neqjoinsel' }, +{ oid => '3364', descr => 'less than', + oprname => '<', oprleft => 'macaddr8', oprright => 'macaddr8', + oprresult => 'bool', oprcom => '>(macaddr8,macaddr8)', + oprnegate => '>=(macaddr8,macaddr8)', oprcode => 'macaddr8_lt', + oprrest => 'scalarltsel', oprjoin => 'scalarltjoinsel' }, +{ oid => '3365', descr => 'less than or equal', + oprname => '<=', oprleft => 'macaddr8', oprright => 'macaddr8', + oprresult => 'bool', oprcom => '>=(macaddr8,macaddr8)', + oprnegate => '>(macaddr8,macaddr8)', oprcode => 'macaddr8_le', + oprrest => 'scalarlesel', oprjoin => 'scalarlejoinsel' }, +{ oid => '3366', descr => 'greater than', + oprname => '>', oprleft => 'macaddr8', oprright => 'macaddr8', + oprresult => 'bool', oprcom => '<(macaddr8,macaddr8)', + oprnegate => '<=(macaddr8,macaddr8)', oprcode => 'macaddr8_gt', + oprrest => 'scalargtsel', oprjoin => 'scalargtjoinsel' }, +{ oid => '3367', descr => 'greater than or equal', + oprname => '>=', oprleft => 'macaddr8', oprright => 'macaddr8', + oprresult => 'bool', oprcom => '<=(macaddr8,macaddr8)', + oprnegate => '<(macaddr8,macaddr8)', oprcode => 'macaddr8_ge', + oprrest => 'scalargesel', oprjoin => 'scalargejoinsel' }, + +{ oid => '3368', descr => 'bitwise not', + oprname => '~', oprkind => 'l', oprleft => '0', oprright => 'macaddr8', + oprresult => 'macaddr8', oprcode => 'macaddr8_not' }, +{ oid => '3369', descr => 'bitwise and', + oprname => '&', oprleft => 'macaddr8', oprright => 'macaddr8', + oprresult => 'macaddr8', oprcode => 'macaddr8_and' }, +{ oid => '3370', descr => 'bitwise or', + oprname => '|', oprleft => 'macaddr8', oprright => 'macaddr8', + oprresult => 'macaddr8', oprcode => 'macaddr8_or' }, + +# INET type (these also support CIDR via implicit cast) +{ oid => '1201', descr => 'equal', + oprname => '=', oprcanmerge => 't', oprcanhash => 't', oprleft => 'inet', + oprright => 'inet', oprresult => 'bool', oprcom => '=(inet,inet)', + oprnegate => '<>(inet,inet)', oprcode => 'network_eq', oprrest => 'eqsel', + oprjoin => 'eqjoinsel' }, +{ oid => '1202', descr => 'not equal', + oprname => '<>', oprleft => 'inet', oprright => 'inet', oprresult => 'bool', + oprcom => '<>(inet,inet)', oprnegate => '=(inet,inet)', + oprcode => 'network_ne', oprrest => 'neqsel', oprjoin => 'neqjoinsel' }, +{ oid => '1203', descr => 'less than', + oprname => '<', oprleft => 'inet', oprright => 'inet', oprresult => 'bool', + oprcom => '>(inet,inet)', oprnegate => '>=(inet,inet)', + oprcode => 'network_lt', oprrest => 'scalarltsel', + oprjoin => 'scalarltjoinsel' }, +{ oid => '1204', descr => 'less than or equal', + oprname => '<=', oprleft => 'inet', oprright => 'inet', oprresult => 'bool', + oprcom => '>=(inet,inet)', oprnegate => '>(inet,inet)', + oprcode => 'network_le', oprrest => 'scalarlesel', + oprjoin => 'scalarlejoinsel' }, +{ oid => '1205', descr => 'greater than', + oprname => '>', oprleft => 'inet', oprright => 'inet', oprresult => 'bool', + oprcom => '<(inet,inet)', oprnegate => '<=(inet,inet)', + oprcode => 'network_gt', oprrest => 'scalargtsel', + oprjoin => 'scalargtjoinsel' }, +{ oid => '1206', descr => 'greater than or equal', + oprname => '>=', oprleft => 'inet', oprright => 'inet', oprresult => 'bool', + oprcom => '<=(inet,inet)', oprnegate => '<(inet,inet)', + oprcode => 'network_ge', oprrest => 'scalargesel', + oprjoin => 'scalargejoinsel' }, +{ oid => '931', oid_symbol => 'OID_INET_SUB_OP', descr => 'is subnet', + oprname => '<<', oprleft => 'inet', oprright => 'inet', oprresult => 'bool', + oprcom => '>>(inet,inet)', oprcode => 'network_sub', oprrest => 'networksel', + oprjoin => 'networkjoinsel' }, +{ oid => '932', oid_symbol => 'OID_INET_SUBEQ_OP', + descr => 'is subnet or equal', + oprname => '<<=', oprleft => 'inet', oprright => 'inet', oprresult => 'bool', + oprcom => '>>=(inet,inet)', oprcode => 'network_subeq', + oprrest => 'networksel', oprjoin => 'networkjoinsel' }, +{ oid => '933', oid_symbol => 'OID_INET_SUP_OP', descr => 'is supernet', + oprname => '>>', oprleft => 'inet', oprright => 'inet', oprresult => 'bool', + oprcom => '<<(inet,inet)', oprcode => 'network_sup', oprrest => 'networksel', + oprjoin => 'networkjoinsel' }, +{ oid => '934', oid_symbol => 'OID_INET_SUPEQ_OP', + descr => 'is supernet or equal', + oprname => '>>=', oprleft => 'inet', oprright => 'inet', oprresult => 'bool', + oprcom => '<<=(inet,inet)', oprcode => 'network_supeq', + oprrest => 'networksel', oprjoin => 'networkjoinsel' }, +{ oid => '3552', oid_symbol => 'OID_INET_OVERLAP_OP', + descr => 'overlaps (is subnet or supernet)', + oprname => '&&', oprleft => 'inet', oprright => 'inet', oprresult => 'bool', + oprcom => '&&(inet,inet)', oprcode => 'network_overlap', + oprrest => 'networksel', oprjoin => 'networkjoinsel' }, + +{ oid => '2634', descr => 'bitwise not', + oprname => '~', oprkind => 'l', oprleft => '0', oprright => 'inet', + oprresult => 'inet', oprcode => 'inetnot' }, +{ oid => '2635', descr => 'bitwise and', + oprname => '&', oprleft => 'inet', oprright => 'inet', oprresult => 'inet', + oprcode => 'inetand' }, +{ oid => '2636', descr => 'bitwise or', + oprname => '|', oprleft => 'inet', oprright => 'inet', oprresult => 'inet', + oprcode => 'inetor' }, +{ oid => '2637', descr => 'add', + oprname => '+', oprleft => 'inet', oprright => 'int8', oprresult => 'inet', + oprcom => '+(int8,inet)', oprcode => 'inetpl' }, +{ oid => '2638', descr => 'add', + oprname => '+', oprleft => 'int8', oprright => 'inet', oprresult => 'inet', + oprcom => '+(inet,int8)', oprcode => 'int8pl_inet' }, +{ oid => '2639', descr => 'subtract', + oprname => '-', oprleft => 'inet', oprright => 'int8', oprresult => 'inet', + oprcode => 'inetmi_int8' }, +{ oid => '2640', descr => 'subtract', + oprname => '-', oprleft => 'inet', oprright => 'inet', oprresult => 'int8', + oprcode => 'inetmi' }, + +# case-insensitive LIKE hacks +{ oid => '1625', oid_symbol => 'OID_NAME_ICLIKE_OP', + descr => 'matches LIKE expression, case-insensitive', + oprname => '~~*', oprleft => 'name', oprright => 'text', oprresult => 'bool', + oprnegate => '!~~*(name,text)', oprcode => 'nameiclike', + oprrest => 'iclikesel', oprjoin => 'iclikejoinsel' }, +{ oid => '1626', descr => 'does not match LIKE expression, case-insensitive', + oprname => '!~~*', oprleft => 'name', oprright => 'text', oprresult => 'bool', + oprnegate => '~~*(name,text)', oprcode => 'nameicnlike', + oprrest => 'icnlikesel', oprjoin => 'icnlikejoinsel' }, +{ oid => '1627', oid_symbol => 'OID_TEXT_ICLIKE_OP', + descr => 'matches LIKE expression, case-insensitive', + oprname => '~~*', oprleft => 'text', oprright => 'text', oprresult => 'bool', + oprnegate => '!~~*(text,text)', oprcode => 'texticlike', + oprrest => 'iclikesel', oprjoin => 'iclikejoinsel' }, +{ oid => '1628', descr => 'does not match LIKE expression, case-insensitive', + oprname => '!~~*', oprleft => 'text', oprright => 'text', oprresult => 'bool', + oprnegate => '~~*(text,text)', oprcode => 'texticnlike', + oprrest => 'icnlikesel', oprjoin => 'icnlikejoinsel' }, +{ oid => '1629', oid_symbol => 'OID_BPCHAR_ICLIKE_OP', + descr => 'matches LIKE expression, case-insensitive', + oprname => '~~*', oprleft => 'bpchar', oprright => 'text', + oprresult => 'bool', oprnegate => '!~~*(bpchar,text)', + oprcode => 'bpchariclike', oprrest => 'iclikesel', + oprjoin => 'iclikejoinsel' }, +{ oid => '1630', descr => 'does not match LIKE expression, case-insensitive', + oprname => '!~~*', oprleft => 'bpchar', oprright => 'text', + oprresult => 'bool', oprnegate => '~~*(bpchar,text)', + oprcode => 'bpcharicnlike', oprrest => 'icnlikesel', + oprjoin => 'icnlikejoinsel' }, + +# NUMERIC type - OID's 1700-1799 +{ oid => '1751', descr => 'negate', + oprname => '-', oprkind => 'l', oprleft => '0', oprright => 'numeric', + oprresult => 'numeric', oprcode => 'numeric_uminus' }, +{ oid => '1752', descr => 'equal', + oprname => '=', oprcanmerge => 't', oprcanhash => 't', oprleft => 'numeric', + oprright => 'numeric', oprresult => 'bool', oprcom => '=(numeric,numeric)', + oprnegate => '<>(numeric,numeric)', oprcode => 'numeric_eq', + oprrest => 'eqsel', oprjoin => 'eqjoinsel' }, +{ oid => '1753', descr => 'not equal', + oprname => '<>', oprleft => 'numeric', oprright => 'numeric', + oprresult => 'bool', oprcom => '<>(numeric,numeric)', + oprnegate => '=(numeric,numeric)', oprcode => 'numeric_ne', + oprrest => 'neqsel', oprjoin => 'neqjoinsel' }, +{ oid => '1754', descr => 'less than', + oprname => '<', oprleft => 'numeric', oprright => 'numeric', + oprresult => 'bool', oprcom => '>(numeric,numeric)', + oprnegate => '>=(numeric,numeric)', oprcode => 'numeric_lt', + oprrest => 'scalarltsel', oprjoin => 'scalarltjoinsel' }, +{ oid => '1755', descr => 'less than or equal', + oprname => '<=', oprleft => 'numeric', oprright => 'numeric', + oprresult => 'bool', oprcom => '>=(numeric,numeric)', + oprnegate => '>(numeric,numeric)', oprcode => 'numeric_le', + oprrest => 'scalarlesel', oprjoin => 'scalarlejoinsel' }, +{ oid => '1756', descr => 'greater than', + oprname => '>', oprleft => 'numeric', oprright => 'numeric', + oprresult => 'bool', oprcom => '<(numeric,numeric)', + oprnegate => '<=(numeric,numeric)', oprcode => 'numeric_gt', + oprrest => 'scalargtsel', oprjoin => 'scalargtjoinsel' }, +{ oid => '1757', descr => 'greater than or equal', + oprname => '>=', oprleft => 'numeric', oprright => 'numeric', + oprresult => 'bool', oprcom => '<=(numeric,numeric)', + oprnegate => '<(numeric,numeric)', oprcode => 'numeric_ge', + oprrest => 'scalargesel', oprjoin => 'scalargejoinsel' }, +{ oid => '1758', descr => 'add', + oprname => '+', oprleft => 'numeric', oprright => 'numeric', + oprresult => 'numeric', oprcom => '+(numeric,numeric)', + oprcode => 'numeric_add' }, +{ oid => '1759', descr => 'subtract', + oprname => '-', oprleft => 'numeric', oprright => 'numeric', + oprresult => 'numeric', oprcode => 'numeric_sub' }, +{ oid => '1760', descr => 'multiply', + oprname => '*', oprleft => 'numeric', oprright => 'numeric', + oprresult => 'numeric', oprcom => '*(numeric,numeric)', + oprcode => 'numeric_mul' }, +{ oid => '1761', descr => 'divide', + oprname => '/', oprleft => 'numeric', oprright => 'numeric', + oprresult => 'numeric', oprcode => 'numeric_div' }, +{ oid => '1762', descr => 'modulus', + oprname => '%', oprleft => 'numeric', oprright => 'numeric', + oprresult => 'numeric', oprcode => 'numeric_mod' }, +{ oid => '1038', descr => 'exponentiation', + oprname => '^', oprleft => 'numeric', oprright => 'numeric', + oprresult => 'numeric', oprcode => 'numeric_power' }, +{ oid => '1763', descr => 'absolute value', + oprname => '@', oprkind => 'l', oprleft => '0', oprright => 'numeric', + oprresult => 'numeric', oprcode => 'numeric_abs' }, + +{ oid => '1784', descr => 'equal', + oprname => '=', oprcanmerge => 't', oprleft => 'bit', oprright => 'bit', + oprresult => 'bool', oprcom => '=(bit,bit)', oprnegate => '<>(bit,bit)', + oprcode => 'biteq', oprrest => 'eqsel', oprjoin => 'eqjoinsel' }, +{ oid => '1785', descr => 'not equal', + oprname => '<>', oprleft => 'bit', oprright => 'bit', oprresult => 'bool', + oprcom => '<>(bit,bit)', oprnegate => '=(bit,bit)', oprcode => 'bitne', + oprrest => 'neqsel', oprjoin => 'neqjoinsel' }, +{ oid => '1786', descr => 'less than', + oprname => '<', oprleft => 'bit', oprright => 'bit', oprresult => 'bool', + oprcom => '>(bit,bit)', oprnegate => '>=(bit,bit)', oprcode => 'bitlt', + oprrest => 'scalarltsel', oprjoin => 'scalarltjoinsel' }, +{ oid => '1787', descr => 'greater than', + oprname => '>', oprleft => 'bit', oprright => 'bit', oprresult => 'bool', + oprcom => '<(bit,bit)', oprnegate => '<=(bit,bit)', oprcode => 'bitgt', + oprrest => 'scalargtsel', oprjoin => 'scalargtjoinsel' }, +{ oid => '1788', descr => 'less than or equal', + oprname => '<=', oprleft => 'bit', oprright => 'bit', oprresult => 'bool', + oprcom => '>=(bit,bit)', oprnegate => '>(bit,bit)', oprcode => 'bitle', + oprrest => 'scalarlesel', oprjoin => 'scalarlejoinsel' }, +{ oid => '1789', descr => 'greater than or equal', + oprname => '>=', oprleft => 'bit', oprright => 'bit', oprresult => 'bool', + oprcom => '<=(bit,bit)', oprnegate => '<(bit,bit)', oprcode => 'bitge', + oprrest => 'scalargesel', oprjoin => 'scalargejoinsel' }, +{ oid => '1791', descr => 'bitwise and', + oprname => '&', oprleft => 'bit', oprright => 'bit', oprresult => 'bit', + oprcom => '&(bit,bit)', oprcode => 'bitand' }, +{ oid => '1792', descr => 'bitwise or', + oprname => '|', oprleft => 'bit', oprright => 'bit', oprresult => 'bit', + oprcom => '|(bit,bit)', oprcode => 'bitor' }, +{ oid => '1793', descr => 'bitwise exclusive or', + oprname => '#', oprleft => 'bit', oprright => 'bit', oprresult => 'bit', + oprcom => '#(bit,bit)', oprcode => 'bitxor' }, +{ oid => '1794', descr => 'bitwise not', + oprname => '~', oprkind => 'l', oprleft => '0', oprright => 'bit', + oprresult => 'bit', oprcode => 'bitnot' }, +{ oid => '1795', descr => 'bitwise shift left', + oprname => '<<', oprleft => 'bit', oprright => 'int4', oprresult => 'bit', + oprcode => 'bitshiftleft' }, +{ oid => '1796', descr => 'bitwise shift right', + oprname => '>>', oprleft => 'bit', oprright => 'int4', oprresult => 'bit', + oprcode => 'bitshiftright' }, +{ oid => '1797', descr => 'concatenate', + oprname => '||', oprleft => 'varbit', oprright => 'varbit', + oprresult => 'varbit', oprcode => 'bitcat' }, + +{ oid => '1800', descr => 'add', + oprname => '+', oprleft => 'time', oprright => 'interval', + oprresult => 'time', oprcom => '+(interval,time)', + oprcode => 'time_pl_interval' }, +{ oid => '1801', descr => 'subtract', + oprname => '-', oprleft => 'time', oprright => 'interval', + oprresult => 'time', oprcode => 'time_mi_interval' }, +{ oid => '1802', descr => 'add', + oprname => '+', oprleft => 'timetz', oprright => 'interval', + oprresult => 'timetz', oprcom => '+(interval,timetz)', + oprcode => 'timetz_pl_interval' }, +{ oid => '1803', descr => 'subtract', + oprname => '-', oprleft => 'timetz', oprright => 'interval', + oprresult => 'timetz', oprcode => 'timetz_mi_interval' }, + +{ oid => '1804', descr => 'equal', + oprname => '=', oprcanmerge => 't', oprleft => 'varbit', oprright => 'varbit', + oprresult => 'bool', oprcom => '=(varbit,varbit)', + oprnegate => '<>(varbit,varbit)', oprcode => 'varbiteq', oprrest => 'eqsel', + oprjoin => 'eqjoinsel' }, +{ oid => '1805', descr => 'not equal', + oprname => '<>', oprleft => 'varbit', oprright => 'varbit', + oprresult => 'bool', oprcom => '<>(varbit,varbit)', + oprnegate => '=(varbit,varbit)', oprcode => 'varbitne', oprrest => 'neqsel', + oprjoin => 'neqjoinsel' }, +{ oid => '1806', descr => 'less than', + oprname => '<', oprleft => 'varbit', oprright => 'varbit', + oprresult => 'bool', oprcom => '>(varbit,varbit)', + oprnegate => '>=(varbit,varbit)', oprcode => 'varbitlt', + oprrest => 'scalarltsel', oprjoin => 'scalarltjoinsel' }, +{ oid => '1807', descr => 'greater than', + oprname => '>', oprleft => 'varbit', oprright => 'varbit', + oprresult => 'bool', oprcom => '<(varbit,varbit)', + oprnegate => '<=(varbit,varbit)', oprcode => 'varbitgt', + oprrest => 'scalargtsel', oprjoin => 'scalargtjoinsel' }, +{ oid => '1808', descr => 'less than or equal', + oprname => '<=', oprleft => 'varbit', oprright => 'varbit', + oprresult => 'bool', oprcom => '>=(varbit,varbit)', + oprnegate => '>(varbit,varbit)', oprcode => 'varbitle', + oprrest => 'scalarlesel', oprjoin => 'scalarlejoinsel' }, +{ oid => '1809', descr => 'greater than or equal', + oprname => '>=', oprleft => 'varbit', oprright => 'varbit', + oprresult => 'bool', oprcom => '<=(varbit,varbit)', + oprnegate => '<(varbit,varbit)', oprcode => 'varbitge', + oprrest => 'scalargesel', oprjoin => 'scalargejoinsel' }, + +{ oid => '1849', descr => 'add', + oprname => '+', oprleft => 'interval', oprright => 'time', + oprresult => 'time', oprcom => '+(time,interval)', + oprcode => 'interval_pl_time' }, + +{ oid => '1862', descr => 'equal', + oprname => '=', oprcanmerge => 't', oprcanhash => 't', oprleft => 'int2', + oprright => 'int8', oprresult => 'bool', oprcom => '=(int8,int2)', + oprnegate => '<>(int2,int8)', oprcode => 'int28eq', oprrest => 'eqsel', + oprjoin => 'eqjoinsel' }, +{ oid => '1863', descr => 'not equal', + oprname => '<>', oprleft => 'int2', oprright => 'int8', oprresult => 'bool', + oprcom => '<>(int8,int2)', oprnegate => '=(int2,int8)', oprcode => 'int28ne', + oprrest => 'neqsel', oprjoin => 'neqjoinsel' }, +{ oid => '1864', descr => 'less than', + oprname => '<', oprleft => 'int2', oprright => 'int8', oprresult => 'bool', + oprcom => '>(int8,int2)', oprnegate => '>=(int2,int8)', oprcode => 'int28lt', + oprrest => 'scalarltsel', oprjoin => 'scalarltjoinsel' }, +{ oid => '1865', descr => 'greater than', + oprname => '>', oprleft => 'int2', oprright => 'int8', oprresult => 'bool', + oprcom => '<(int8,int2)', oprnegate => '<=(int2,int8)', oprcode => 'int28gt', + oprrest => 'scalargtsel', oprjoin => 'scalargtjoinsel' }, +{ oid => '1866', descr => 'less than or equal', + oprname => '<=', oprleft => 'int2', oprright => 'int8', oprresult => 'bool', + oprcom => '>=(int8,int2)', oprnegate => '>(int2,int8)', oprcode => 'int28le', + oprrest => 'scalarlesel', oprjoin => 'scalarlejoinsel' }, +{ oid => '1867', descr => 'greater than or equal', + oprname => '>=', oprleft => 'int2', oprright => 'int8', oprresult => 'bool', + oprcom => '<=(int8,int2)', oprnegate => '<(int2,int8)', oprcode => 'int28ge', + oprrest => 'scalargesel', oprjoin => 'scalargejoinsel' }, + +{ oid => '1868', descr => 'equal', + oprname => '=', oprcanmerge => 't', oprcanhash => 't', oprleft => 'int8', + oprright => 'int2', oprresult => 'bool', oprcom => '=(int2,int8)', + oprnegate => '<>(int8,int2)', oprcode => 'int82eq', oprrest => 'eqsel', + oprjoin => 'eqjoinsel' }, +{ oid => '1869', descr => 'not equal', + oprname => '<>', oprleft => 'int8', oprright => 'int2', oprresult => 'bool', + oprcom => '<>(int2,int8)', oprnegate => '=(int8,int2)', oprcode => 'int82ne', + oprrest => 'neqsel', oprjoin => 'neqjoinsel' }, +{ oid => '1870', descr => 'less than', + oprname => '<', oprleft => 'int8', oprright => 'int2', oprresult => 'bool', + oprcom => '>(int2,int8)', oprnegate => '>=(int8,int2)', oprcode => 'int82lt', + oprrest => 'scalarltsel', oprjoin => 'scalarltjoinsel' }, +{ oid => '1871', descr => 'greater than', + oprname => '>', oprleft => 'int8', oprright => 'int2', oprresult => 'bool', + oprcom => '<(int2,int8)', oprnegate => '<=(int8,int2)', oprcode => 'int82gt', + oprrest => 'scalargtsel', oprjoin => 'scalargtjoinsel' }, +{ oid => '1872', descr => 'less than or equal', + oprname => '<=', oprleft => 'int8', oprright => 'int2', oprresult => 'bool', + oprcom => '>=(int2,int8)', oprnegate => '>(int8,int2)', oprcode => 'int82le', + oprrest => 'scalarlesel', oprjoin => 'scalarlejoinsel' }, +{ oid => '1873', descr => 'greater than or equal', + oprname => '>=', oprleft => 'int8', oprright => 'int2', oprresult => 'bool', + oprcom => '<=(int2,int8)', oprnegate => '<(int8,int2)', oprcode => 'int82ge', + oprrest => 'scalargesel', oprjoin => 'scalargejoinsel' }, + +{ oid => '1874', descr => 'bitwise and', + oprname => '&', oprleft => 'int2', oprright => 'int2', oprresult => 'int2', + oprcom => '&(int2,int2)', oprcode => 'int2and' }, +{ oid => '1875', descr => 'bitwise or', + oprname => '|', oprleft => 'int2', oprright => 'int2', oprresult => 'int2', + oprcom => '|(int2,int2)', oprcode => 'int2or' }, +{ oid => '1876', descr => 'bitwise exclusive or', + oprname => '#', oprleft => 'int2', oprright => 'int2', oprresult => 'int2', + oprcom => '#(int2,int2)', oprcode => 'int2xor' }, +{ oid => '1877', descr => 'bitwise not', + oprname => '~', oprkind => 'l', oprleft => '0', oprright => 'int2', + oprresult => 'int2', oprcode => 'int2not' }, +{ oid => '1878', descr => 'bitwise shift left', + oprname => '<<', oprleft => 'int2', oprright => 'int4', oprresult => 'int2', + oprcode => 'int2shl' }, +{ oid => '1879', descr => 'bitwise shift right', + oprname => '>>', oprleft => 'int2', oprright => 'int4', oprresult => 'int2', + oprcode => 'int2shr' }, + +{ oid => '1880', descr => 'bitwise and', + oprname => '&', oprleft => 'int4', oprright => 'int4', oprresult => 'int4', + oprcom => '&(int4,int4)', oprcode => 'int4and' }, +{ oid => '1881', descr => 'bitwise or', + oprname => '|', oprleft => 'int4', oprright => 'int4', oprresult => 'int4', + oprcom => '|(int4,int4)', oprcode => 'int4or' }, +{ oid => '1882', descr => 'bitwise exclusive or', + oprname => '#', oprleft => 'int4', oprright => 'int4', oprresult => 'int4', + oprcom => '#(int4,int4)', oprcode => 'int4xor' }, +{ oid => '1883', descr => 'bitwise not', + oprname => '~', oprkind => 'l', oprleft => '0', oprright => 'int4', + oprresult => 'int4', oprcode => 'int4not' }, +{ oid => '1884', descr => 'bitwise shift left', + oprname => '<<', oprleft => 'int4', oprright => 'int4', oprresult => 'int4', + oprcode => 'int4shl' }, +{ oid => '1885', descr => 'bitwise shift right', + oprname => '>>', oprleft => 'int4', oprright => 'int4', oprresult => 'int4', + oprcode => 'int4shr' }, + +{ oid => '1886', descr => 'bitwise and', + oprname => '&', oprleft => 'int8', oprright => 'int8', oprresult => 'int8', + oprcom => '&(int8,int8)', oprcode => 'int8and' }, +{ oid => '1887', descr => 'bitwise or', + oprname => '|', oprleft => 'int8', oprright => 'int8', oprresult => 'int8', + oprcom => '|(int8,int8)', oprcode => 'int8or' }, +{ oid => '1888', descr => 'bitwise exclusive or', + oprname => '#', oprleft => 'int8', oprright => 'int8', oprresult => 'int8', + oprcom => '#(int8,int8)', oprcode => 'int8xor' }, +{ oid => '1889', descr => 'bitwise not', + oprname => '~', oprkind => 'l', oprleft => '0', oprright => 'int8', + oprresult => 'int8', oprcode => 'int8not' }, +{ oid => '1890', descr => 'bitwise shift left', + oprname => '<<', oprleft => 'int8', oprright => 'int4', oprresult => 'int8', + oprcode => 'int8shl' }, +{ oid => '1891', descr => 'bitwise shift right', + oprname => '>>', oprleft => 'int8', oprright => 'int4', oprresult => 'int8', + oprcode => 'int8shr' }, + +{ oid => '1916', descr => 'unary plus', + oprname => '+', oprkind => 'l', oprleft => '0', oprright => 'int8', + oprresult => 'int8', oprcode => 'int8up' }, +{ oid => '1917', descr => 'unary plus', + oprname => '+', oprkind => 'l', oprleft => '0', oprright => 'int2', + oprresult => 'int2', oprcode => 'int2up' }, +{ oid => '1918', descr => 'unary plus', + oprname => '+', oprkind => 'l', oprleft => '0', oprright => 'int4', + oprresult => 'int4', oprcode => 'int4up' }, +{ oid => '1919', descr => 'unary plus', + oprname => '+', oprkind => 'l', oprleft => '0', oprright => 'float4', + oprresult => 'float4', oprcode => 'float4up' }, +{ oid => '1920', descr => 'unary plus', + oprname => '+', oprkind => 'l', oprleft => '0', oprright => 'float8', + oprresult => 'float8', oprcode => 'float8up' }, +{ oid => '1921', descr => 'unary plus', + oprname => '+', oprkind => 'l', oprleft => '0', oprright => 'numeric', + oprresult => 'numeric', oprcode => 'numeric_uplus' }, + +# bytea operators +{ oid => '1955', descr => 'equal', + oprname => '=', oprcanmerge => 't', oprcanhash => 't', oprleft => 'bytea', + oprright => 'bytea', oprresult => 'bool', oprcom => '=(bytea,bytea)', + oprnegate => '<>(bytea,bytea)', oprcode => 'byteaeq', oprrest => 'eqsel', + oprjoin => 'eqjoinsel' }, +{ oid => '1956', descr => 'not equal', + oprname => '<>', oprleft => 'bytea', oprright => 'bytea', oprresult => 'bool', + oprcom => '<>(bytea,bytea)', oprnegate => '=(bytea,bytea)', + oprcode => 'byteane', oprrest => 'neqsel', oprjoin => 'neqjoinsel' }, +{ oid => '1957', descr => 'less than', + oprname => '<', oprleft => 'bytea', oprright => 'bytea', oprresult => 'bool', + oprcom => '>(bytea,bytea)', oprnegate => '>=(bytea,bytea)', + oprcode => 'bytealt', oprrest => 'scalarltsel', + oprjoin => 'scalarltjoinsel' }, +{ oid => '1958', descr => 'less than or equal', + oprname => '<=', oprleft => 'bytea', oprright => 'bytea', oprresult => 'bool', + oprcom => '>=(bytea,bytea)', oprnegate => '>(bytea,bytea)', + oprcode => 'byteale', oprrest => 'scalarlesel', + oprjoin => 'scalarlejoinsel' }, +{ oid => '1959', descr => 'greater than', + oprname => '>', oprleft => 'bytea', oprright => 'bytea', oprresult => 'bool', + oprcom => '<(bytea,bytea)', oprnegate => '<=(bytea,bytea)', + oprcode => 'byteagt', oprrest => 'scalargtsel', + oprjoin => 'scalargtjoinsel' }, +{ oid => '1960', descr => 'greater than or equal', + oprname => '>=', oprleft => 'bytea', oprright => 'bytea', oprresult => 'bool', + oprcom => '<=(bytea,bytea)', oprnegate => '<(bytea,bytea)', + oprcode => 'byteage', oprrest => 'scalargesel', + oprjoin => 'scalargejoinsel' }, + +{ oid => '2016', oid_symbol => 'OID_BYTEA_LIKE_OP', + descr => 'matches LIKE expression', + oprname => '~~', oprleft => 'bytea', oprright => 'bytea', oprresult => 'bool', + oprnegate => '!~~(bytea,bytea)', oprcode => 'bytealike', oprrest => 'likesel', + oprjoin => 'likejoinsel' }, +{ oid => '2017', descr => 'does not match LIKE expression', + oprname => '!~~', oprleft => 'bytea', oprright => 'bytea', + oprresult => 'bool', oprnegate => '~~(bytea,bytea)', oprcode => 'byteanlike', + oprrest => 'nlikesel', oprjoin => 'nlikejoinsel' }, +{ oid => '2018', descr => 'concatenate', + oprname => '||', oprleft => 'bytea', oprright => 'bytea', + oprresult => 'bytea', oprcode => 'byteacat' }, + +# timestamp operators +{ oid => '2060', descr => 'equal', + oprname => '=', oprcanmerge => 't', oprcanhash => 't', oprleft => 'timestamp', + oprright => 'timestamp', oprresult => 'bool', + oprcom => '=(timestamp,timestamp)', oprnegate => '<>(timestamp,timestamp)', + oprcode => 'timestamp_eq', oprrest => 'eqsel', oprjoin => 'eqjoinsel' }, +{ oid => '2061', descr => 'not equal', + oprname => '<>', oprleft => 'timestamp', oprright => 'timestamp', + oprresult => 'bool', oprcom => '<>(timestamp,timestamp)', + oprnegate => '=(timestamp,timestamp)', oprcode => 'timestamp_ne', + oprrest => 'neqsel', oprjoin => 'neqjoinsel' }, +{ oid => '2062', descr => 'less than', + oprname => '<', oprleft => 'timestamp', oprright => 'timestamp', + oprresult => 'bool', oprcom => '>(timestamp,timestamp)', + oprnegate => '>=(timestamp,timestamp)', oprcode => 'timestamp_lt', + oprrest => 'scalarltsel', oprjoin => 'scalarltjoinsel' }, +{ oid => '2063', descr => 'less than or equal', + oprname => '<=', oprleft => 'timestamp', oprright => 'timestamp', + oprresult => 'bool', oprcom => '>=(timestamp,timestamp)', + oprnegate => '>(timestamp,timestamp)', oprcode => 'timestamp_le', + oprrest => 'scalarlesel', oprjoin => 'scalarlejoinsel' }, +{ oid => '2064', descr => 'greater than', + oprname => '>', oprleft => 'timestamp', oprright => 'timestamp', + oprresult => 'bool', oprcom => '<(timestamp,timestamp)', + oprnegate => '<=(timestamp,timestamp)', oprcode => 'timestamp_gt', + oprrest => 'scalargtsel', oprjoin => 'scalargtjoinsel' }, +{ oid => '2065', descr => 'greater than or equal', + oprname => '>=', oprleft => 'timestamp', oprright => 'timestamp', + oprresult => 'bool', oprcom => '<=(timestamp,timestamp)', + oprnegate => '<(timestamp,timestamp)', oprcode => 'timestamp_ge', + oprrest => 'scalargesel', oprjoin => 'scalargejoinsel' }, +{ oid => '2066', descr => 'add', + oprname => '+', oprleft => 'timestamp', oprright => 'interval', + oprresult => 'timestamp', oprcom => '+(interval,timestamp)', + oprcode => 'timestamp_pl_interval' }, +{ oid => '2067', descr => 'subtract', + oprname => '-', oprleft => 'timestamp', oprright => 'timestamp', + oprresult => 'interval', oprcode => 'timestamp_mi' }, +{ oid => '2068', descr => 'subtract', + oprname => '-', oprleft => 'timestamp', oprright => 'interval', + oprresult => 'timestamp', oprcode => 'timestamp_mi_interval' }, + +# character-by-character (not collation order) comparison operators for character types +{ oid => '2314', descr => 'less than', + oprname => '~<~', oprleft => 'text', oprright => 'text', oprresult => 'bool', + oprcom => '~>~(text,text)', oprnegate => '~>=~(text,text)', + oprcode => 'text_pattern_lt', oprrest => 'scalarltsel', + oprjoin => 'scalarltjoinsel' }, +{ oid => '2315', descr => 'less than or equal', + oprname => '~<=~', oprleft => 'text', oprright => 'text', oprresult => 'bool', + oprcom => '~>=~(text,text)', oprnegate => '~>~(text,text)', + oprcode => 'text_pattern_le', oprrest => 'scalarlesel', + oprjoin => 'scalarlejoinsel' }, +{ oid => '2317', descr => 'greater than or equal', + oprname => '~>=~', oprleft => 'text', oprright => 'text', oprresult => 'bool', + oprcom => '~<=~(text,text)', oprnegate => '~<~(text,text)', + oprcode => 'text_pattern_ge', oprrest => 'scalargesel', + oprjoin => 'scalargejoinsel' }, +{ oid => '2318', descr => 'greater than', + oprname => '~>~', oprleft => 'text', oprright => 'text', oprresult => 'bool', + oprcom => '~<~(text,text)', oprnegate => '~<=~(text,text)', + oprcode => 'text_pattern_gt', oprrest => 'scalargtsel', + oprjoin => 'scalargtjoinsel' }, + +{ oid => '2326', descr => 'less than', + oprname => '~<~', oprleft => 'bpchar', oprright => 'bpchar', + oprresult => 'bool', oprcom => '~>~(bpchar,bpchar)', + oprnegate => '~>=~(bpchar,bpchar)', oprcode => 'bpchar_pattern_lt', + oprrest => 'scalarltsel', oprjoin => 'scalarltjoinsel' }, +{ oid => '2327', descr => 'less than or equal', + oprname => '~<=~', oprleft => 'bpchar', oprright => 'bpchar', + oprresult => 'bool', oprcom => '~>=~(bpchar,bpchar)', + oprnegate => '~>~(bpchar,bpchar)', oprcode => 'bpchar_pattern_le', + oprrest => 'scalarlesel', oprjoin => 'scalarlejoinsel' }, +{ oid => '2329', descr => 'greater than or equal', + oprname => '~>=~', oprleft => 'bpchar', oprright => 'bpchar', + oprresult => 'bool', oprcom => '~<=~(bpchar,bpchar)', + oprnegate => '~<~(bpchar,bpchar)', oprcode => 'bpchar_pattern_ge', + oprrest => 'scalargesel', oprjoin => 'scalargejoinsel' }, +{ oid => '2330', descr => 'greater than', + oprname => '~>~', oprleft => 'bpchar', oprright => 'bpchar', + oprresult => 'bool', oprcom => '~<~(bpchar,bpchar)', + oprnegate => '~<=~(bpchar,bpchar)', oprcode => 'bpchar_pattern_gt', + oprrest => 'scalargtsel', oprjoin => 'scalargtjoinsel' }, + +# crosstype operations for date vs. timestamp and timestamptz +{ oid => '2345', descr => 'less than', + oprname => '<', oprleft => 'date', oprright => 'timestamp', + oprresult => 'bool', oprcom => '>(timestamp,date)', + oprnegate => '>=(date,timestamp)', oprcode => 'date_lt_timestamp', + oprrest => 'scalarltsel', oprjoin => 'scalarltjoinsel' }, +{ oid => '2346', descr => 'less than or equal', + oprname => '<=', oprleft => 'date', oprright => 'timestamp', + oprresult => 'bool', oprcom => '>=(timestamp,date)', + oprnegate => '>(date,timestamp)', oprcode => 'date_le_timestamp', + oprrest => 'scalarlesel', oprjoin => 'scalarlejoinsel' }, +{ oid => '2347', descr => 'equal', + oprname => '=', oprcanmerge => 't', oprleft => 'date', + oprright => 'timestamp', oprresult => 'bool', oprcom => '=(timestamp,date)', + oprnegate => '<>(date,timestamp)', oprcode => 'date_eq_timestamp', + oprrest => 'eqsel', oprjoin => 'eqjoinsel' }, +{ oid => '2348', descr => 'greater than or equal', + oprname => '>=', oprleft => 'date', oprright => 'timestamp', + oprresult => 'bool', oprcom => '<=(timestamp,date)', + oprnegate => '<(date,timestamp)', oprcode => 'date_ge_timestamp', + oprrest => 'scalargesel', oprjoin => 'scalargejoinsel' }, +{ oid => '2349', descr => 'greater than', + oprname => '>', oprleft => 'date', oprright => 'timestamp', + oprresult => 'bool', oprcom => '<(timestamp,date)', + oprnegate => '<=(date,timestamp)', oprcode => 'date_gt_timestamp', + oprrest => 'scalargtsel', oprjoin => 'scalargtjoinsel' }, +{ oid => '2350', descr => 'not equal', + oprname => '<>', oprleft => 'date', oprright => 'timestamp', + oprresult => 'bool', oprcom => '<>(timestamp,date)', + oprnegate => '=(date,timestamp)', oprcode => 'date_ne_timestamp', + oprrest => 'neqsel', oprjoin => 'neqjoinsel' }, + +{ oid => '2358', descr => 'less than', + oprname => '<', oprleft => 'date', oprright => 'timestamptz', + oprresult => 'bool', oprcom => '>(timestamptz,date)', + oprnegate => '>=(date,timestamptz)', oprcode => 'date_lt_timestamptz', + oprrest => 'scalarltsel', oprjoin => 'scalarltjoinsel' }, +{ oid => '2359', descr => 'less than or equal', + oprname => '<=', oprleft => 'date', oprright => 'timestamptz', + oprresult => 'bool', oprcom => '>=(timestamptz,date)', + oprnegate => '>(date,timestamptz)', oprcode => 'date_le_timestamptz', + oprrest => 'scalarlesel', oprjoin => 'scalarlejoinsel' }, +{ oid => '2360', descr => 'equal', + oprname => '=', oprcanmerge => 't', oprleft => 'date', + oprright => 'timestamptz', oprresult => 'bool', + oprcom => '=(timestamptz,date)', oprnegate => '<>(date,timestamptz)', + oprcode => 'date_eq_timestamptz', oprrest => 'eqsel', + oprjoin => 'eqjoinsel' }, +{ oid => '2361', descr => 'greater than or equal', + oprname => '>=', oprleft => 'date', oprright => 'timestamptz', + oprresult => 'bool', oprcom => '<=(timestamptz,date)', + oprnegate => '<(date,timestamptz)', oprcode => 'date_ge_timestamptz', + oprrest => 'scalargesel', oprjoin => 'scalargejoinsel' }, +{ oid => '2362', descr => 'greater than', + oprname => '>', oprleft => 'date', oprright => 'timestamptz', + oprresult => 'bool', oprcom => '<(timestamptz,date)', + oprnegate => '<=(date,timestamptz)', oprcode => 'date_gt_timestamptz', + oprrest => 'scalargtsel', oprjoin => 'scalargtjoinsel' }, +{ oid => '2363', descr => 'not equal', + oprname => '<>', oprleft => 'date', oprright => 'timestamptz', + oprresult => 'bool', oprcom => '<>(timestamptz,date)', + oprnegate => '=(date,timestamptz)', oprcode => 'date_ne_timestamptz', + oprrest => 'neqsel', oprjoin => 'neqjoinsel' }, + +{ oid => '2371', descr => 'less than', + oprname => '<', oprleft => 'timestamp', oprright => 'date', + oprresult => 'bool', oprcom => '>(date,timestamp)', + oprnegate => '>=(timestamp,date)', oprcode => 'timestamp_lt_date', + oprrest => 'scalarltsel', oprjoin => 'scalarltjoinsel' }, +{ oid => '2372', descr => 'less than or equal', + oprname => '<=', oprleft => 'timestamp', oprright => 'date', + oprresult => 'bool', oprcom => '>=(date,timestamp)', + oprnegate => '>(timestamp,date)', oprcode => 'timestamp_le_date', + oprrest => 'scalarlesel', oprjoin => 'scalarlejoinsel' }, +{ oid => '2373', descr => 'equal', + oprname => '=', oprcanmerge => 't', oprleft => 'timestamp', + oprright => 'date', oprresult => 'bool', oprcom => '=(date,timestamp)', + oprnegate => '<>(timestamp,date)', oprcode => 'timestamp_eq_date', + oprrest => 'eqsel', oprjoin => 'eqjoinsel' }, +{ oid => '2374', descr => 'greater than or equal', + oprname => '>=', oprleft => 'timestamp', oprright => 'date', + oprresult => 'bool', oprcom => '<=(date,timestamp)', + oprnegate => '<(timestamp,date)', oprcode => 'timestamp_ge_date', + oprrest => 'scalargesel', oprjoin => 'scalargejoinsel' }, +{ oid => '2375', descr => 'greater than', + oprname => '>', oprleft => 'timestamp', oprright => 'date', + oprresult => 'bool', oprcom => '<(date,timestamp)', + oprnegate => '<=(timestamp,date)', oprcode => 'timestamp_gt_date', + oprrest => 'scalargtsel', oprjoin => 'scalargtjoinsel' }, +{ oid => '2376', descr => 'not equal', + oprname => '<>', oprleft => 'timestamp', oprright => 'date', + oprresult => 'bool', oprcom => '<>(date,timestamp)', + oprnegate => '=(timestamp,date)', oprcode => 'timestamp_ne_date', + oprrest => 'neqsel', oprjoin => 'neqjoinsel' }, + +{ oid => '2384', descr => 'less than', + oprname => '<', oprleft => 'timestamptz', oprright => 'date', + oprresult => 'bool', oprcom => '>(date,timestamptz)', + oprnegate => '>=(timestamptz,date)', oprcode => 'timestamptz_lt_date', + oprrest => 'scalarltsel', oprjoin => 'scalarltjoinsel' }, +{ oid => '2385', descr => 'less than or equal', + oprname => '<=', oprleft => 'timestamptz', oprright => 'date', + oprresult => 'bool', oprcom => '>=(date,timestamptz)', + oprnegate => '>(timestamptz,date)', oprcode => 'timestamptz_le_date', + oprrest => 'scalarlesel', oprjoin => 'scalarlejoinsel' }, +{ oid => '2386', descr => 'equal', + oprname => '=', oprcanmerge => 't', oprleft => 'timestamptz', + oprright => 'date', oprresult => 'bool', oprcom => '=(date,timestamptz)', + oprnegate => '<>(timestamptz,date)', oprcode => 'timestamptz_eq_date', + oprrest => 'eqsel', oprjoin => 'eqjoinsel' }, +{ oid => '2387', descr => 'greater than or equal', + oprname => '>=', oprleft => 'timestamptz', oprright => 'date', + oprresult => 'bool', oprcom => '<=(date,timestamptz)', + oprnegate => '<(timestamptz,date)', oprcode => 'timestamptz_ge_date', + oprrest => 'scalargesel', oprjoin => 'scalargejoinsel' }, +{ oid => '2388', descr => 'greater than', + oprname => '>', oprleft => 'timestamptz', oprright => 'date', + oprresult => 'bool', oprcom => '<(date,timestamptz)', + oprnegate => '<=(timestamptz,date)', oprcode => 'timestamptz_gt_date', + oprrest => 'scalargtsel', oprjoin => 'scalargtjoinsel' }, +{ oid => '2389', descr => 'not equal', + oprname => '<>', oprleft => 'timestamptz', oprright => 'date', + oprresult => 'bool', oprcom => '<>(date,timestamptz)', + oprnegate => '=(timestamptz,date)', oprcode => 'timestamptz_ne_date', + oprrest => 'neqsel', oprjoin => 'neqjoinsel' }, + +# crosstype operations for timestamp vs. timestamptz +{ oid => '2534', descr => 'less than', + oprname => '<', oprleft => 'timestamp', oprright => 'timestamptz', + oprresult => 'bool', oprcom => '>(timestamptz,timestamp)', + oprnegate => '>=(timestamp,timestamptz)', + oprcode => 'timestamp_lt_timestamptz', oprrest => 'scalarltsel', + oprjoin => 'scalarltjoinsel' }, +{ oid => '2535', descr => 'less than or equal', + oprname => '<=', oprleft => 'timestamp', oprright => 'timestamptz', + oprresult => 'bool', oprcom => '>=(timestamptz,timestamp)', + oprnegate => '>(timestamp,timestamptz)', + oprcode => 'timestamp_le_timestamptz', oprrest => 'scalarlesel', + oprjoin => 'scalarlejoinsel' }, +{ oid => '2536', descr => 'equal', + oprname => '=', oprcanmerge => 't', oprleft => 'timestamp', + oprright => 'timestamptz', oprresult => 'bool', + oprcom => '=(timestamptz,timestamp)', + oprnegate => '<>(timestamp,timestamptz)', + oprcode => 'timestamp_eq_timestamptz', oprrest => 'eqsel', + oprjoin => 'eqjoinsel' }, +{ oid => '2537', descr => 'greater than or equal', + oprname => '>=', oprleft => 'timestamp', oprright => 'timestamptz', + oprresult => 'bool', oprcom => '<=(timestamptz,timestamp)', + oprnegate => '<(timestamp,timestamptz)', + oprcode => 'timestamp_ge_timestamptz', oprrest => 'scalargesel', + oprjoin => 'scalargejoinsel' }, +{ oid => '2538', descr => 'greater than', + oprname => '>', oprleft => 'timestamp', oprright => 'timestamptz', + oprresult => 'bool', oprcom => '<(timestamptz,timestamp)', + oprnegate => '<=(timestamp,timestamptz)', + oprcode => 'timestamp_gt_timestamptz', oprrest => 'scalargtsel', + oprjoin => 'scalargtjoinsel' }, +{ oid => '2539', descr => 'not equal', + oprname => '<>', oprleft => 'timestamp', oprright => 'timestamptz', + oprresult => 'bool', oprcom => '<>(timestamptz,timestamp)', + oprnegate => '=(timestamp,timestamptz)', + oprcode => 'timestamp_ne_timestamptz', oprrest => 'neqsel', + oprjoin => 'neqjoinsel' }, + +{ oid => '2540', descr => 'less than', + oprname => '<', oprleft => 'timestamptz', oprright => 'timestamp', + oprresult => 'bool', oprcom => '>(timestamp,timestamptz)', + oprnegate => '>=(timestamptz,timestamp)', + oprcode => 'timestamptz_lt_timestamp', oprrest => 'scalarltsel', + oprjoin => 'scalarltjoinsel' }, +{ oid => '2541', descr => 'less than or equal', + oprname => '<=', oprleft => 'timestamptz', oprright => 'timestamp', + oprresult => 'bool', oprcom => '>=(timestamp,timestamptz)', + oprnegate => '>(timestamptz,timestamp)', + oprcode => 'timestamptz_le_timestamp', oprrest => 'scalarlesel', + oprjoin => 'scalarlejoinsel' }, +{ oid => '2542', descr => 'equal', + oprname => '=', oprcanmerge => 't', oprleft => 'timestamptz', + oprright => 'timestamp', oprresult => 'bool', + oprcom => '=(timestamp,timestamptz)', + oprnegate => '<>(timestamptz,timestamp)', + oprcode => 'timestamptz_eq_timestamp', oprrest => 'eqsel', + oprjoin => 'eqjoinsel' }, +{ oid => '2543', descr => 'greater than or equal', + oprname => '>=', oprleft => 'timestamptz', oprright => 'timestamp', + oprresult => 'bool', oprcom => '<=(timestamp,timestamptz)', + oprnegate => '<(timestamptz,timestamp)', + oprcode => 'timestamptz_ge_timestamp', oprrest => 'scalargesel', + oprjoin => 'scalargejoinsel' }, +{ oid => '2544', descr => 'greater than', + oprname => '>', oprleft => 'timestamptz', oprright => 'timestamp', + oprresult => 'bool', oprcom => '<(timestamp,timestamptz)', + oprnegate => '<=(timestamptz,timestamp)', + oprcode => 'timestamptz_gt_timestamp', oprrest => 'scalargtsel', + oprjoin => 'scalargtjoinsel' }, +{ oid => '2545', descr => 'not equal', + oprname => '<>', oprleft => 'timestamptz', oprright => 'timestamp', + oprresult => 'bool', oprcom => '<>(timestamp,timestamptz)', + oprnegate => '=(timestamptz,timestamp)', + oprcode => 'timestamptz_ne_timestamp', oprrest => 'neqsel', + oprjoin => 'neqjoinsel' }, + +# formerly-missing interval + datetime operators +{ oid => '2551', descr => 'add', + oprname => '+', oprleft => 'interval', oprright => 'date', + oprresult => 'timestamp', oprcom => '+(date,interval)', + oprcode => 'interval_pl_date' }, +{ oid => '2552', descr => 'add', + oprname => '+', oprleft => 'interval', oprright => 'timetz', + oprresult => 'timetz', oprcom => '+(timetz,interval)', + oprcode => 'interval_pl_timetz' }, +{ oid => '2553', descr => 'add', + oprname => '+', oprleft => 'interval', oprright => 'timestamp', + oprresult => 'timestamp', oprcom => '+(timestamp,interval)', + oprcode => 'interval_pl_timestamp' }, +{ oid => '2554', descr => 'add', + oprname => '+', oprleft => 'interval', oprright => 'timestamptz', + oprresult => 'timestamptz', oprcom => '+(timestamptz,interval)', + oprcode => 'interval_pl_timestamptz' }, +{ oid => '2555', descr => 'add', + oprname => '+', oprleft => 'int4', oprright => 'date', oprresult => 'date', + oprcom => '+(date,int4)', oprcode => 'integer_pl_date' }, + +# new operators for Y-direction rtree opfamilies +{ oid => '2570', descr => 'is below', + oprname => '<<|', oprleft => 'box', oprright => 'box', oprresult => 'bool', + oprcode => 'box_below', oprrest => 'positionsel', + oprjoin => 'positionjoinsel' }, +{ oid => '2571', descr => 'overlaps or is below', + oprname => '&<|', oprleft => 'box', oprright => 'box', oprresult => 'bool', + oprcode => 'box_overbelow', oprrest => 'positionsel', + oprjoin => 'positionjoinsel' }, +{ oid => '2572', descr => 'overlaps or is above', + oprname => '|&>', oprleft => 'box', oprright => 'box', oprresult => 'bool', + oprcode => 'box_overabove', oprrest => 'positionsel', + oprjoin => 'positionjoinsel' }, +{ oid => '2573', descr => 'is above', + oprname => '|>>', oprleft => 'box', oprright => 'box', oprresult => 'bool', + oprcode => 'box_above', oprrest => 'positionsel', + oprjoin => 'positionjoinsel' }, +{ oid => '2574', descr => 'is below', + oprname => '<<|', oprleft => 'polygon', oprright => 'polygon', + oprresult => 'bool', oprcode => 'poly_below', oprrest => 'positionsel', + oprjoin => 'positionjoinsel' }, +{ oid => '2575', descr => 'overlaps or is below', + oprname => '&<|', oprleft => 'polygon', oprright => 'polygon', + oprresult => 'bool', oprcode => 'poly_overbelow', oprrest => 'positionsel', + oprjoin => 'positionjoinsel' }, +{ oid => '2576', descr => 'overlaps or is above', + oprname => '|&>', oprleft => 'polygon', oprright => 'polygon', + oprresult => 'bool', oprcode => 'poly_overabove', oprrest => 'positionsel', + oprjoin => 'positionjoinsel' }, +{ oid => '2577', descr => 'is above', + oprname => '|>>', oprleft => 'polygon', oprright => 'polygon', + oprresult => 'bool', oprcode => 'poly_above', oprrest => 'positionsel', + oprjoin => 'positionjoinsel' }, +{ oid => '2589', descr => 'overlaps or is below', + oprname => '&<|', oprleft => 'circle', oprright => 'circle', + oprresult => 'bool', oprcode => 'circle_overbelow', oprrest => 'positionsel', + oprjoin => 'positionjoinsel' }, +{ oid => '2590', descr => 'overlaps or is above', + oprname => '|&>', oprleft => 'circle', oprright => 'circle', + oprresult => 'bool', oprcode => 'circle_overabove', oprrest => 'positionsel', + oprjoin => 'positionjoinsel' }, + +# overlap/contains/contained for arrays +{ oid => '2750', oid_symbol => 'OID_ARRAY_OVERLAP_OP', descr => 'overlaps', + oprname => '&&', oprleft => 'anyarray', oprright => 'anyarray', + oprresult => 'bool', oprcom => '&&(anyarray,anyarray)', + oprcode => 'arrayoverlap', oprrest => 'arraycontsel', + oprjoin => 'arraycontjoinsel' }, +{ oid => '2751', oid_symbol => 'OID_ARRAY_CONTAINS_OP', descr => 'contains', + oprname => '@>', oprleft => 'anyarray', oprright => 'anyarray', + oprresult => 'bool', oprcom => '<@(anyarray,anyarray)', + oprcode => 'arraycontains', oprrest => 'arraycontsel', + oprjoin => 'arraycontjoinsel' }, +{ oid => '2752', oid_symbol => 'OID_ARRAY_CONTAINED_OP', + descr => 'is contained by', + oprname => '<@', oprleft => 'anyarray', oprright => 'anyarray', + oprresult => 'bool', oprcom => '@>(anyarray,anyarray)', + oprcode => 'arraycontained', oprrest => 'arraycontsel', + oprjoin => 'arraycontjoinsel' }, + +# capturing operators to preserve pre-8.3 behavior of text concatenation +{ oid => '2779', descr => 'concatenate', + oprname => '||', oprleft => 'text', oprright => 'anynonarray', + oprresult => 'text', oprcode => 'textanycat' }, +{ oid => '2780', descr => 'concatenate', + oprname => '||', oprleft => 'anynonarray', oprright => 'text', + oprresult => 'text', oprcode => 'anytextcat' }, + +# obsolete names for contains/contained-by operators; remove these someday +{ oid => '2860', descr => 'deprecated, use <@ instead', + oprname => '@', oprleft => 'polygon', oprright => 'polygon', + oprresult => 'bool', oprcom => '~(polygon,polygon)', + oprcode => 'poly_contained', oprrest => 'contsel', oprjoin => 'contjoinsel' }, +{ oid => '2861', descr => 'deprecated, use @> instead', + oprname => '~', oprleft => 'polygon', oprright => 'polygon', + oprresult => 'bool', oprcom => '@(polygon,polygon)', + oprcode => 'poly_contain', oprrest => 'contsel', oprjoin => 'contjoinsel' }, +{ oid => '2862', descr => 'deprecated, use <@ instead', + oprname => '@', oprleft => 'box', oprright => 'box', oprresult => 'bool', + oprcom => '~(box,box)', oprcode => 'box_contained', oprrest => 'contsel', + oprjoin => 'contjoinsel' }, +{ oid => '2863', descr => 'deprecated, use @> instead', + oprname => '~', oprleft => 'box', oprright => 'box', oprresult => 'bool', + oprcom => '@(box,box)', oprcode => 'box_contain', oprrest => 'contsel', + oprjoin => 'contjoinsel' }, +{ oid => '2864', descr => 'deprecated, use <@ instead', + oprname => '@', oprleft => 'circle', oprright => 'circle', + oprresult => 'bool', oprcom => '~(circle,circle)', + oprcode => 'circle_contained', oprrest => 'contsel', + oprjoin => 'contjoinsel' }, +{ oid => '2865', descr => 'deprecated, use @> instead', + oprname => '~', oprleft => 'circle', oprright => 'circle', + oprresult => 'bool', oprcom => '@(circle,circle)', + oprcode => 'circle_contain', oprrest => 'contsel', oprjoin => 'contjoinsel' }, +{ oid => '2866', descr => 'deprecated, use <@ instead', + oprname => '@', oprleft => 'point', oprright => 'box', oprresult => 'bool', + oprcode => 'on_pb' }, +{ oid => '2867', descr => 'deprecated, use <@ instead', + oprname => '@', oprleft => 'point', oprright => 'path', oprresult => 'bool', + oprcom => '~(path,point)', oprcode => 'on_ppath' }, +{ oid => '2868', descr => 'deprecated, use @> instead', + oprname => '~', oprleft => 'path', oprright => 'point', oprresult => 'bool', + oprcom => '@(point,path)', oprcode => 'path_contain_pt' }, +{ oid => '2869', descr => 'deprecated, use <@ instead', + oprname => '@', oprleft => 'point', oprright => 'polygon', + oprresult => 'bool', oprcom => '~(polygon,point)', + oprcode => 'pt_contained_poly' }, +{ oid => '2870', descr => 'deprecated, use @> instead', + oprname => '~', oprleft => 'polygon', oprright => 'point', + oprresult => 'bool', oprcom => '@(point,polygon)', + oprcode => 'poly_contain_pt' }, +{ oid => '2871', descr => 'deprecated, use <@ instead', + oprname => '@', oprleft => 'point', oprright => 'circle', oprresult => 'bool', + oprcom => '~(circle,point)', oprcode => 'pt_contained_circle' }, +{ oid => '2872', descr => 'deprecated, use @> instead', + oprname => '~', oprleft => 'circle', oprright => 'point', oprresult => 'bool', + oprcom => '@(point,circle)', oprcode => 'circle_contain_pt' }, +{ oid => '2873', descr => 'deprecated, use <@ instead', + oprname => '@', oprleft => 'point', oprright => 'line', oprresult => 'bool', + oprcode => 'on_pl' }, +{ oid => '2874', descr => 'deprecated, use <@ instead', + oprname => '@', oprleft => 'point', oprright => 'lseg', oprresult => 'bool', + oprcode => 'on_ps' }, +{ oid => '2875', descr => 'deprecated, use <@ instead', + oprname => '@', oprleft => 'lseg', oprright => 'line', oprresult => 'bool', + oprcode => 'on_sl' }, +{ oid => '2876', descr => 'deprecated, use <@ instead', + oprname => '@', oprleft => 'lseg', oprright => 'box', oprresult => 'bool', + oprcode => 'on_sb' }, +{ oid => '2877', descr => 'deprecated, use @> instead', + oprname => '~', oprleft => '_aclitem', oprright => 'aclitem', + oprresult => 'bool', oprcode => 'aclcontains' }, + +# uuid operators +{ oid => '2972', descr => 'equal', + oprname => '=', oprcanmerge => 't', oprcanhash => 't', oprleft => 'uuid', + oprright => 'uuid', oprresult => 'bool', oprcom => '=(uuid,uuid)', + oprnegate => '<>(uuid,uuid)', oprcode => 'uuid_eq', oprrest => 'eqsel', + oprjoin => 'eqjoinsel' }, +{ oid => '2973', descr => 'not equal', + oprname => '<>', oprleft => 'uuid', oprright => 'uuid', oprresult => 'bool', + oprcom => '<>(uuid,uuid)', oprnegate => '=(uuid,uuid)', oprcode => 'uuid_ne', + oprrest => 'neqsel', oprjoin => 'neqjoinsel' }, +{ oid => '2974', descr => 'less than', + oprname => '<', oprleft => 'uuid', oprright => 'uuid', oprresult => 'bool', + oprcom => '>(uuid,uuid)', oprnegate => '>=(uuid,uuid)', oprcode => 'uuid_lt', + oprrest => 'scalarltsel', oprjoin => 'scalarltjoinsel' }, +{ oid => '2975', descr => 'greater than', + oprname => '>', oprleft => 'uuid', oprright => 'uuid', oprresult => 'bool', + oprcom => '<(uuid,uuid)', oprnegate => '<=(uuid,uuid)', oprcode => 'uuid_gt', + oprrest => 'scalargtsel', oprjoin => 'scalargtjoinsel' }, +{ oid => '2976', descr => 'less than or equal', + oprname => '<=', oprleft => 'uuid', oprright => 'uuid', oprresult => 'bool', + oprcom => '>=(uuid,uuid)', oprnegate => '>(uuid,uuid)', oprcode => 'uuid_le', + oprrest => 'scalarlesel', oprjoin => 'scalarlejoinsel' }, +{ oid => '2977', descr => 'greater than or equal', + oprname => '>=', oprleft => 'uuid', oprright => 'uuid', oprresult => 'bool', + oprcom => '<=(uuid,uuid)', oprnegate => '<(uuid,uuid)', oprcode => 'uuid_ge', + oprrest => 'scalargesel', oprjoin => 'scalargejoinsel' }, + +# pg_lsn operators +{ oid => '3222', descr => 'equal', + oprname => '=', oprcanmerge => 't', oprcanhash => 't', oprleft => 'pg_lsn', + oprright => 'pg_lsn', oprresult => 'bool', oprcom => '=(pg_lsn,pg_lsn)', + oprnegate => '<>(pg_lsn,pg_lsn)', oprcode => 'pg_lsn_eq', oprrest => 'eqsel', + oprjoin => 'eqjoinsel' }, +{ oid => '3223', descr => 'not equal', + oprname => '<>', oprleft => 'pg_lsn', oprright => 'pg_lsn', + oprresult => 'bool', oprcom => '<>(pg_lsn,pg_lsn)', + oprnegate => '=(pg_lsn,pg_lsn)', oprcode => 'pg_lsn_ne', oprrest => 'neqsel', + oprjoin => 'neqjoinsel' }, +{ oid => '3224', descr => 'less than', + oprname => '<', oprleft => 'pg_lsn', oprright => 'pg_lsn', + oprresult => 'bool', oprcom => '>(pg_lsn,pg_lsn)', + oprnegate => '>=(pg_lsn,pg_lsn)', oprcode => 'pg_lsn_lt', + oprrest => 'scalarltsel', oprjoin => 'scalarltjoinsel' }, +{ oid => '3225', descr => 'greater than', + oprname => '>', oprleft => 'pg_lsn', oprright => 'pg_lsn', + oprresult => 'bool', oprcom => '<(pg_lsn,pg_lsn)', + oprnegate => '<=(pg_lsn,pg_lsn)', oprcode => 'pg_lsn_gt', + oprrest => 'scalargtsel', oprjoin => 'scalargtjoinsel' }, +{ oid => '3226', descr => 'less than or equal', + oprname => '<=', oprleft => 'pg_lsn', oprright => 'pg_lsn', + oprresult => 'bool', oprcom => '>=(pg_lsn,pg_lsn)', + oprnegate => '>(pg_lsn,pg_lsn)', oprcode => 'pg_lsn_le', + oprrest => 'scalarlesel', oprjoin => 'scalarlejoinsel' }, +{ oid => '3227', descr => 'greater than or equal', + oprname => '>=', oprleft => 'pg_lsn', oprright => 'pg_lsn', + oprresult => 'bool', oprcom => '<=(pg_lsn,pg_lsn)', + oprnegate => '<(pg_lsn,pg_lsn)', oprcode => 'pg_lsn_ge', + oprrest => 'scalargesel', oprjoin => 'scalargejoinsel' }, +{ oid => '3228', descr => 'minus', + oprname => '-', oprleft => 'pg_lsn', oprright => 'pg_lsn', + oprresult => 'numeric', oprcode => 'pg_lsn_mi' }, + +# enum operators +{ oid => '3516', descr => 'equal', + oprname => '=', oprcanmerge => 't', oprcanhash => 't', oprleft => 'anyenum', + oprright => 'anyenum', oprresult => 'bool', oprcom => '=(anyenum,anyenum)', + oprnegate => '<>(anyenum,anyenum)', oprcode => 'enum_eq', oprrest => 'eqsel', + oprjoin => 'eqjoinsel' }, +{ oid => '3517', descr => 'not equal', + oprname => '<>', oprleft => 'anyenum', oprright => 'anyenum', + oprresult => 'bool', oprcom => '<>(anyenum,anyenum)', + oprnegate => '=(anyenum,anyenum)', oprcode => 'enum_ne', oprrest => 'neqsel', + oprjoin => 'neqjoinsel' }, +{ oid => '3518', descr => 'less than', + oprname => '<', oprleft => 'anyenum', oprright => 'anyenum', + oprresult => 'bool', oprcom => '>(anyenum,anyenum)', + oprnegate => '>=(anyenum,anyenum)', oprcode => 'enum_lt', + oprrest => 'scalarltsel', oprjoin => 'scalarltjoinsel' }, +{ oid => '3519', descr => 'greater than', + oprname => '>', oprleft => 'anyenum', oprright => 'anyenum', + oprresult => 'bool', oprcom => '<(anyenum,anyenum)', + oprnegate => '<=(anyenum,anyenum)', oprcode => 'enum_gt', + oprrest => 'scalargtsel', oprjoin => 'scalargtjoinsel' }, +{ oid => '3520', descr => 'less than or equal', + oprname => '<=', oprleft => 'anyenum', oprright => 'anyenum', + oprresult => 'bool', oprcom => '>=(anyenum,anyenum)', + oprnegate => '>(anyenum,anyenum)', oprcode => 'enum_le', + oprrest => 'scalarlesel', oprjoin => 'scalarlejoinsel' }, +{ oid => '3521', descr => 'greater than or equal', + oprname => '>=', oprleft => 'anyenum', oprright => 'anyenum', + oprresult => 'bool', oprcom => '<=(anyenum,anyenum)', + oprnegate => '<(anyenum,anyenum)', oprcode => 'enum_ge', + oprrest => 'scalargesel', oprjoin => 'scalargejoinsel' }, + +# tsearch operations +{ oid => '3627', descr => 'less than', + oprname => '<', oprleft => 'tsvector', oprright => 'tsvector', + oprresult => 'bool', oprcom => '>(tsvector,tsvector)', + oprnegate => '>=(tsvector,tsvector)', oprcode => 'tsvector_lt', + oprrest => 'scalarltsel', oprjoin => 'scalarltjoinsel' }, +{ oid => '3628', descr => 'less than or equal', + oprname => '<=', oprleft => 'tsvector', oprright => 'tsvector', + oprresult => 'bool', oprcom => '>=(tsvector,tsvector)', + oprnegate => '>(tsvector,tsvector)', oprcode => 'tsvector_le', + oprrest => 'scalarlesel', oprjoin => 'scalarlejoinsel' }, +{ oid => '3629', descr => 'equal', + oprname => '=', oprcanmerge => 't', oprleft => 'tsvector', + oprright => 'tsvector', oprresult => 'bool', oprcom => '=(tsvector,tsvector)', + oprnegate => '<>(tsvector,tsvector)', oprcode => 'tsvector_eq', + oprrest => 'eqsel', oprjoin => 'eqjoinsel' }, +{ oid => '3630', descr => 'not equal', + oprname => '<>', oprleft => 'tsvector', oprright => 'tsvector', + oprresult => 'bool', oprcom => '<>(tsvector,tsvector)', + oprnegate => '=(tsvector,tsvector)', oprcode => 'tsvector_ne', + oprrest => 'neqsel', oprjoin => 'neqjoinsel' }, +{ oid => '3631', descr => 'greater than or equal', + oprname => '>=', oprleft => 'tsvector', oprright => 'tsvector', + oprresult => 'bool', oprcom => '<=(tsvector,tsvector)', + oprnegate => '<(tsvector,tsvector)', oprcode => 'tsvector_ge', + oprrest => 'scalargesel', oprjoin => 'scalargejoinsel' }, +{ oid => '3632', descr => 'greater than', + oprname => '>', oprleft => 'tsvector', oprright => 'tsvector', + oprresult => 'bool', oprcom => '<(tsvector,tsvector)', + oprnegate => '<=(tsvector,tsvector)', oprcode => 'tsvector_gt', + oprrest => 'scalargtsel', oprjoin => 'scalargtjoinsel' }, +{ oid => '3633', descr => 'concatenate', + oprname => '||', oprleft => 'tsvector', oprright => 'tsvector', + oprresult => 'tsvector', oprcode => 'tsvector_concat' }, +{ oid => '3636', descr => 'text search match', + oprname => '@@', oprleft => 'tsvector', oprright => 'tsquery', + oprresult => 'bool', oprcom => '@@(tsquery,tsvector)', + oprcode => 'ts_match_vq', oprrest => 'tsmatchsel', + oprjoin => 'tsmatchjoinsel' }, +{ oid => '3637', descr => 'text search match', + oprname => '@@', oprleft => 'tsquery', oprright => 'tsvector', + oprresult => 'bool', oprcom => '@@(tsvector,tsquery)', + oprcode => 'ts_match_qv', oprrest => 'tsmatchsel', + oprjoin => 'tsmatchjoinsel' }, +{ oid => '3660', descr => 'deprecated, use @@ instead', + oprname => '@@@', oprleft => 'tsvector', oprright => 'tsquery', + oprresult => 'bool', oprcom => '@@@(tsquery,tsvector)', + oprcode => 'ts_match_vq', oprrest => 'tsmatchsel', + oprjoin => 'tsmatchjoinsel' }, +{ oid => '3661', descr => 'deprecated, use @@ instead', + oprname => '@@@', oprleft => 'tsquery', oprright => 'tsvector', + oprresult => 'bool', oprcom => '@@@(tsvector,tsquery)', + oprcode => 'ts_match_qv', oprrest => 'tsmatchsel', + oprjoin => 'tsmatchjoinsel' }, +{ oid => '3674', descr => 'less than', + oprname => '<', oprleft => 'tsquery', oprright => 'tsquery', + oprresult => 'bool', oprcom => '>(tsquery,tsquery)', + oprnegate => '>=(tsquery,tsquery)', oprcode => 'tsquery_lt', + oprrest => 'scalarltsel', oprjoin => 'scalarltjoinsel' }, +{ oid => '3675', descr => 'less than or equal', + oprname => '<=', oprleft => 'tsquery', oprright => 'tsquery', + oprresult => 'bool', oprcom => '>=(tsquery,tsquery)', + oprnegate => '>(tsquery,tsquery)', oprcode => 'tsquery_le', + oprrest => 'scalarlesel', oprjoin => 'scalarlejoinsel' }, +{ oid => '3676', descr => 'equal', + oprname => '=', oprcanmerge => 't', oprleft => 'tsquery', + oprright => 'tsquery', oprresult => 'bool', oprcom => '=(tsquery,tsquery)', + oprnegate => '<>(tsquery,tsquery)', oprcode => 'tsquery_eq', + oprrest => 'eqsel', oprjoin => 'eqjoinsel' }, +{ oid => '3677', descr => 'not equal', + oprname => '<>', oprleft => 'tsquery', oprright => 'tsquery', + oprresult => 'bool', oprcom => '<>(tsquery,tsquery)', + oprnegate => '=(tsquery,tsquery)', oprcode => 'tsquery_ne', + oprrest => 'neqsel', oprjoin => 'neqjoinsel' }, +{ oid => '3678', descr => 'greater than or equal', + oprname => '>=', oprleft => 'tsquery', oprright => 'tsquery', + oprresult => 'bool', oprcom => '<=(tsquery,tsquery)', + oprnegate => '<(tsquery,tsquery)', oprcode => 'tsquery_ge', + oprrest => 'scalargesel', oprjoin => 'scalargejoinsel' }, +{ oid => '3679', descr => 'greater than', + oprname => '>', oprleft => 'tsquery', oprright => 'tsquery', + oprresult => 'bool', oprcom => '<(tsquery,tsquery)', + oprnegate => '<=(tsquery,tsquery)', oprcode => 'tsquery_gt', + oprrest => 'scalargtsel', oprjoin => 'scalargtjoinsel' }, +{ oid => '3680', descr => 'AND-concatenate', + oprname => '&&', oprleft => 'tsquery', oprright => 'tsquery', + oprresult => 'tsquery', oprcode => 'tsquery_and' }, +{ oid => '3681', descr => 'OR-concatenate', + oprname => '||', oprleft => 'tsquery', oprright => 'tsquery', + oprresult => 'tsquery', oprcode => 'tsquery_or' }, +{ oid => '5005', descr => 'phrase-concatenate', + oprname => '<->', oprleft => 'tsquery', oprright => 'tsquery', + oprresult => 'tsquery', oprcode => 'tsquery_phrase(tsquery,tsquery)' }, +{ oid => '3682', descr => 'NOT tsquery', + oprname => '!!', oprkind => 'l', oprleft => '0', oprright => 'tsquery', + oprresult => 'tsquery', oprcode => 'tsquery_not' }, +{ oid => '3693', descr => 'contains', + oprname => '@>', oprleft => 'tsquery', oprright => 'tsquery', + oprresult => 'bool', oprcom => '<@(tsquery,tsquery)', + oprcode => 'tsq_mcontains', oprrest => 'contsel', oprjoin => 'contjoinsel' }, +{ oid => '3694', descr => 'is contained by', + oprname => '<@', oprleft => 'tsquery', oprright => 'tsquery', + oprresult => 'bool', oprcom => '@>(tsquery,tsquery)', + oprcode => 'tsq_mcontained', oprrest => 'contsel', oprjoin => 'contjoinsel' }, +{ oid => '3762', descr => 'text search match', + oprname => '@@', oprleft => 'text', oprright => 'text', oprresult => 'bool', + oprcode => 'ts_match_tt', oprrest => 'contsel', oprjoin => 'contjoinsel' }, +{ oid => '3763', descr => 'text search match', + oprname => '@@', oprleft => 'text', oprright => 'tsquery', + oprresult => 'bool', oprcode => 'ts_match_tq', oprrest => 'contsel', + oprjoin => 'contjoinsel' }, + +# generic record comparison operators +{ oid => '2988', oid_symbol => 'RECORD_EQ_OP', descr => 'equal', + oprname => '=', oprcanmerge => 't', oprleft => 'record', oprright => 'record', + oprresult => 'bool', oprcom => '=(record,record)', + oprnegate => '<>(record,record)', oprcode => 'record_eq', oprrest => 'eqsel', + oprjoin => 'eqjoinsel' }, +{ oid => '2989', descr => 'not equal', + oprname => '<>', oprleft => 'record', oprright => 'record', + oprresult => 'bool', oprcom => '<>(record,record)', + oprnegate => '=(record,record)', oprcode => 'record_ne', oprrest => 'neqsel', + oprjoin => 'neqjoinsel' }, +{ oid => '2990', oid_symbol => 'RECORD_LT_OP', descr => 'less than', + oprname => '<', oprleft => 'record', oprright => 'record', + oprresult => 'bool', oprcom => '>(record,record)', + oprnegate => '>=(record,record)', oprcode => 'record_lt', + oprrest => 'scalarltsel', oprjoin => 'scalarltjoinsel' }, +{ oid => '2991', oid_symbol => 'RECORD_GT_OP', descr => 'greater than', + oprname => '>', oprleft => 'record', oprright => 'record', + oprresult => 'bool', oprcom => '<(record,record)', + oprnegate => '<=(record,record)', oprcode => 'record_gt', + oprrest => 'scalargtsel', oprjoin => 'scalargtjoinsel' }, +{ oid => '2992', descr => 'less than or equal', + oprname => '<=', oprleft => 'record', oprright => 'record', + oprresult => 'bool', oprcom => '>=(record,record)', + oprnegate => '>(record,record)', oprcode => 'record_le', + oprrest => 'scalarlesel', oprjoin => 'scalarlejoinsel' }, +{ oid => '2993', descr => 'greater than or equal', + oprname => '>=', oprleft => 'record', oprright => 'record', + oprresult => 'bool', oprcom => '<=(record,record)', + oprnegate => '<(record,record)', oprcode => 'record_ge', + oprrest => 'scalargesel', oprjoin => 'scalargejoinsel' }, + +# byte-oriented tests for identical rows and fast sorting +{ oid => '3188', descr => 'identical', + oprname => '*=', oprcanmerge => 't', oprleft => 'record', + oprright => 'record', oprresult => 'bool', oprcom => '*=(record,record)', + oprnegate => '*<>(record,record)', oprcode => 'record_image_eq', + oprrest => 'eqsel', oprjoin => 'eqjoinsel' }, +{ oid => '3189', descr => 'not identical', + oprname => '*<>', oprleft => 'record', oprright => 'record', + oprresult => 'bool', oprcom => '*<>(record,record)', + oprnegate => '*=(record,record)', oprcode => 'record_image_ne', + oprrest => 'neqsel', oprjoin => 'neqjoinsel' }, +{ oid => '3190', descr => 'less than', + oprname => '*<', oprleft => 'record', oprright => 'record', + oprresult => 'bool', oprcom => '*>(record,record)', + oprnegate => '*>=(record,record)', oprcode => 'record_image_lt', + oprrest => 'scalarltsel', oprjoin => 'scalarltjoinsel' }, +{ oid => '3191', descr => 'greater than', + oprname => '*>', oprleft => 'record', oprright => 'record', + oprresult => 'bool', oprcom => '*<(record,record)', + oprnegate => '*<=(record,record)', oprcode => 'record_image_gt', + oprrest => 'scalargtsel', oprjoin => 'scalargtjoinsel' }, +{ oid => '3192', descr => 'less than or equal', + oprname => '*<=', oprleft => 'record', oprright => 'record', + oprresult => 'bool', oprcom => '*>=(record,record)', + oprnegate => '*>(record,record)', oprcode => 'record_image_le', + oprrest => 'scalarlesel', oprjoin => 'scalarlejoinsel' }, +{ oid => '3193', descr => 'greater than or equal', + oprname => '*>=', oprleft => 'record', oprright => 'record', + oprresult => 'bool', oprcom => '*<=(record,record)', + oprnegate => '*<(record,record)', oprcode => 'record_image_ge', + oprrest => 'scalargesel', oprjoin => 'scalargejoinsel' }, + +# generic range type operators +{ oid => '3882', descr => 'equal', + oprname => '=', oprcanmerge => 't', oprcanhash => 't', oprleft => 'anyrange', + oprright => 'anyrange', oprresult => 'bool', oprcom => '=(anyrange,anyrange)', + oprnegate => '<>(anyrange,anyrange)', oprcode => 'range_eq', + oprrest => 'eqsel', oprjoin => 'eqjoinsel' }, +{ oid => '3883', descr => 'not equal', + oprname => '<>', oprleft => 'anyrange', oprright => 'anyrange', + oprresult => 'bool', oprcom => '<>(anyrange,anyrange)', + oprnegate => '=(anyrange,anyrange)', oprcode => 'range_ne', + oprrest => 'neqsel', oprjoin => 'neqjoinsel' }, +{ oid => '3884', oid_symbol => 'OID_RANGE_LESS_OP', descr => 'less than', + oprname => '<', oprleft => 'anyrange', oprright => 'anyrange', + oprresult => 'bool', oprcom => '>(anyrange,anyrange)', + oprnegate => '>=(anyrange,anyrange)', oprcode => 'range_lt', + oprrest => 'rangesel', oprjoin => 'scalarltjoinsel' }, +{ oid => '3885', oid_symbol => 'OID_RANGE_LESS_EQUAL_OP', + descr => 'less than or equal', + oprname => '<=', oprleft => 'anyrange', oprright => 'anyrange', + oprresult => 'bool', oprcom => '>=(anyrange,anyrange)', + oprnegate => '>(anyrange,anyrange)', oprcode => 'range_le', + oprrest => 'rangesel', oprjoin => 'scalarlejoinsel' }, +{ oid => '3886', oid_symbol => 'OID_RANGE_GREATER_EQUAL_OP', + descr => 'greater than or equal', + oprname => '>=', oprleft => 'anyrange', oprright => 'anyrange', + oprresult => 'bool', oprcom => '<=(anyrange,anyrange)', + oprnegate => '<(anyrange,anyrange)', oprcode => 'range_ge', + oprrest => 'rangesel', oprjoin => 'scalargejoinsel' }, +{ oid => '3887', oid_symbol => 'OID_RANGE_GREATER_OP', + descr => 'greater than', + oprname => '>', oprleft => 'anyrange', oprright => 'anyrange', + oprresult => 'bool', oprcom => '<(anyrange,anyrange)', + oprnegate => '<=(anyrange,anyrange)', oprcode => 'range_gt', + oprrest => 'rangesel', oprjoin => 'scalargtjoinsel' }, +{ oid => '3888', oid_symbol => 'OID_RANGE_OVERLAP_OP', descr => 'overlaps', + oprname => '&&', oprleft => 'anyrange', oprright => 'anyrange', + oprresult => 'bool', oprcom => '&&(anyrange,anyrange)', + oprcode => 'range_overlaps', oprrest => 'rangesel', + oprjoin => 'areajoinsel' }, +{ oid => '3889', oid_symbol => 'OID_RANGE_CONTAINS_ELEM_OP', + descr => 'contains', + oprname => '@>', oprleft => 'anyrange', oprright => 'anyelement', + oprresult => 'bool', oprcom => '<@(anyelement,anyrange)', + oprcode => 'range_contains_elem', oprrest => 'rangesel', + oprjoin => 'contjoinsel' }, +{ oid => '3890', oid_symbol => 'OID_RANGE_CONTAINS_OP', descr => 'contains', + oprname => '@>', oprleft => 'anyrange', oprright => 'anyrange', + oprresult => 'bool', oprcom => '<@(anyrange,anyrange)', + oprcode => 'range_contains', oprrest => 'rangesel', + oprjoin => 'contjoinsel' }, +{ oid => '3891', oid_symbol => 'OID_RANGE_ELEM_CONTAINED_OP', + descr => 'is contained by', + oprname => '<@', oprleft => 'anyelement', oprright => 'anyrange', + oprresult => 'bool', oprcom => '@>(anyrange,anyelement)', + oprcode => 'elem_contained_by_range', oprrest => 'rangesel', + oprjoin => 'contjoinsel' }, +{ oid => '3892', oid_symbol => 'OID_RANGE_CONTAINED_OP', + descr => 'is contained by', + oprname => '<@', oprleft => 'anyrange', oprright => 'anyrange', + oprresult => 'bool', oprcom => '@>(anyrange,anyrange)', + oprcode => 'range_contained_by', oprrest => 'rangesel', + oprjoin => 'contjoinsel' }, +{ oid => '3893', oid_symbol => 'OID_RANGE_LEFT_OP', descr => 'is left of', + oprname => '<<', oprleft => 'anyrange', oprright => 'anyrange', + oprresult => 'bool', oprcom => '>>(anyrange,anyrange)', + oprcode => 'range_before', oprrest => 'rangesel', + oprjoin => 'scalarltjoinsel' }, +{ oid => '3894', oid_symbol => 'OID_RANGE_RIGHT_OP', descr => 'is right of', + oprname => '>>', oprleft => 'anyrange', oprright => 'anyrange', + oprresult => 'bool', oprcom => '<<(anyrange,anyrange)', + oprcode => 'range_after', oprrest => 'rangesel', + oprjoin => 'scalargtjoinsel' }, +{ oid => '3895', oid_symbol => 'OID_RANGE_OVERLAPS_LEFT_OP', + descr => 'overlaps or is left of', + oprname => '&<', oprleft => 'anyrange', oprright => 'anyrange', + oprresult => 'bool', oprcode => 'range_overleft', oprrest => 'rangesel', + oprjoin => 'scalarltjoinsel' }, +{ oid => '3896', oid_symbol => 'OID_RANGE_OVERLAPS_RIGHT_OP', + descr => 'overlaps or is right of', + oprname => '&>', oprleft => 'anyrange', oprright => 'anyrange', + oprresult => 'bool', oprcode => 'range_overright', oprrest => 'rangesel', + oprjoin => 'scalargtjoinsel' }, +{ oid => '3897', descr => 'is adjacent to', + oprname => '-|-', oprleft => 'anyrange', oprright => 'anyrange', + oprresult => 'bool', oprcom => '-|-(anyrange,anyrange)', + oprcode => 'range_adjacent', oprrest => 'contsel', oprjoin => 'contjoinsel' }, +{ oid => '3898', descr => 'range union', + oprname => '+', oprleft => 'anyrange', oprright => 'anyrange', + oprresult => 'anyrange', oprcom => '+(anyrange,anyrange)', + oprcode => 'range_union' }, +{ oid => '3899', descr => 'range difference', + oprname => '-', oprleft => 'anyrange', oprright => 'anyrange', + oprresult => 'anyrange', oprcode => 'range_minus' }, +{ oid => '3900', descr => 'range intersection', + oprname => '*', oprleft => 'anyrange', oprright => 'anyrange', + oprresult => 'anyrange', oprcom => '*(anyrange,anyrange)', + oprcode => 'range_intersect' }, +{ oid => '3962', descr => 'get json object field', + oprname => '->', oprleft => 'json', oprright => 'text', oprresult => 'json', + oprcode => 'json_object_field' }, +{ oid => '3963', descr => 'get json object field as text', + oprname => '->>', oprleft => 'json', oprright => 'text', oprresult => 'text', + oprcode => 'json_object_field_text' }, +{ oid => '3964', descr => 'get json array element', + oprname => '->', oprleft => 'json', oprright => 'int4', oprresult => 'json', + oprcode => 'json_array_element' }, +{ oid => '3965', descr => 'get json array element as text', + oprname => '->>', oprleft => 'json', oprright => 'int4', oprresult => 'text', + oprcode => 'json_array_element_text' }, +{ oid => '3966', descr => 'get value from json with path elements', + oprname => '#>', oprleft => 'json', oprright => '_text', oprresult => 'json', + oprcode => 'json_extract_path' }, +{ oid => '3967', descr => 'get value from json as text with path elements', + oprname => '#>>', oprleft => 'json', oprright => '_text', oprresult => 'text', + oprcode => 'json_extract_path_text' }, +{ oid => '3211', descr => 'get jsonb object field', + oprname => '->', oprleft => 'jsonb', oprright => 'text', oprresult => 'jsonb', + oprcode => 'jsonb_object_field' }, +{ oid => '3477', descr => 'get jsonb object field as text', + oprname => '->>', oprleft => 'jsonb', oprright => 'text', oprresult => 'text', + oprcode => 'jsonb_object_field_text' }, +{ oid => '3212', descr => 'get jsonb array element', + oprname => '->', oprleft => 'jsonb', oprright => 'int4', oprresult => 'jsonb', + oprcode => 'jsonb_array_element' }, +{ oid => '3481', descr => 'get jsonb array element as text', + oprname => '->>', oprleft => 'jsonb', oprright => 'int4', oprresult => 'text', + oprcode => 'jsonb_array_element_text' }, +{ oid => '3213', descr => 'get value from jsonb with path elements', + oprname => '#>', oprleft => 'jsonb', oprright => '_text', + oprresult => 'jsonb', oprcode => 'jsonb_extract_path' }, +{ oid => '3206', descr => 'get value from jsonb as text with path elements', + oprname => '#>>', oprleft => 'jsonb', oprright => '_text', + oprresult => 'text', oprcode => 'jsonb_extract_path_text' }, +{ oid => '3240', descr => 'equal', + oprname => '=', oprcanmerge => 't', oprcanhash => 't', oprleft => 'jsonb', + oprright => 'jsonb', oprresult => 'bool', oprcom => '=(jsonb,jsonb)', + oprnegate => '<>(jsonb,jsonb)', oprcode => 'jsonb_eq', oprrest => 'eqsel', + oprjoin => 'eqjoinsel' }, +{ oid => '3241', descr => 'not equal', + oprname => '<>', oprleft => 'jsonb', oprright => 'jsonb', oprresult => 'bool', + oprcom => '<>(jsonb,jsonb)', oprnegate => '=(jsonb,jsonb)', + oprcode => 'jsonb_ne', oprrest => 'neqsel', oprjoin => 'neqjoinsel' }, +{ oid => '3242', descr => 'less than', + oprname => '<', oprleft => 'jsonb', oprright => 'jsonb', oprresult => 'bool', + oprcom => '>(jsonb,jsonb)', oprnegate => '>=(jsonb,jsonb)', + oprcode => 'jsonb_lt', oprrest => 'scalarltsel', + oprjoin => 'scalarltjoinsel' }, +{ oid => '3243', descr => 'greater than', + oprname => '>', oprleft => 'jsonb', oprright => 'jsonb', oprresult => 'bool', + oprcom => '<(jsonb,jsonb)', oprnegate => '<=(jsonb,jsonb)', + oprcode => 'jsonb_gt', oprrest => 'scalargtsel', + oprjoin => 'scalargtjoinsel' }, +{ oid => '3244', descr => 'less than or equal', + oprname => '<=', oprleft => 'jsonb', oprright => 'jsonb', oprresult => 'bool', + oprcom => '>=(jsonb,jsonb)', oprnegate => '>(jsonb,jsonb)', + oprcode => 'jsonb_le', oprrest => 'scalarlesel', + oprjoin => 'scalarlejoinsel' }, +{ oid => '3245', descr => 'greater than or equal', + oprname => '>=', oprleft => 'jsonb', oprright => 'jsonb', oprresult => 'bool', + oprcom => '<=(jsonb,jsonb)', oprnegate => '<(jsonb,jsonb)', + oprcode => 'jsonb_ge', oprrest => 'scalargesel', + oprjoin => 'scalargejoinsel' }, +{ oid => '3246', descr => 'contains', + oprname => '@>', oprleft => 'jsonb', oprright => 'jsonb', oprresult => 'bool', + oprcom => '<@(jsonb,jsonb)', oprcode => 'jsonb_contains', + oprrest => 'contsel', oprjoin => 'contjoinsel' }, +{ oid => '3247', descr => 'key exists', + oprname => '?', oprleft => 'jsonb', oprright => 'text', oprresult => 'bool', + oprcode => 'jsonb_exists', oprrest => 'contsel', oprjoin => 'contjoinsel' }, +{ oid => '3248', descr => 'any key exists', + oprname => '?|', oprleft => 'jsonb', oprright => '_text', oprresult => 'bool', + oprcode => 'jsonb_exists_any', oprrest => 'contsel', + oprjoin => 'contjoinsel' }, +{ oid => '3249', descr => 'all keys exist', + oprname => '?&', oprleft => 'jsonb', oprright => '_text', oprresult => 'bool', + oprcode => 'jsonb_exists_all', oprrest => 'contsel', + oprjoin => 'contjoinsel' }, +{ oid => '3250', descr => 'is contained by', + oprname => '<@', oprleft => 'jsonb', oprright => 'jsonb', oprresult => 'bool', + oprcom => '@>(jsonb,jsonb)', oprcode => 'jsonb_contained', + oprrest => 'contsel', oprjoin => 'contjoinsel' }, +{ oid => '3284', descr => 'concatenate', + oprname => '||', oprleft => 'jsonb', oprright => 'jsonb', + oprresult => 'jsonb', oprcode => 'jsonb_concat' }, +{ oid => '3285', descr => 'delete object field', + oprname => '-', oprleft => 'jsonb', oprright => 'text', oprresult => 'jsonb', + oprcode => 'jsonb_delete(jsonb,text)' }, +{ oid => '3398', descr => 'delete object fields', + oprname => '-', oprleft => 'jsonb', oprright => '_text', oprresult => 'jsonb', + oprcode => 'jsonb_delete(jsonb,_text)' }, +{ oid => '3286', descr => 'delete array element', + oprname => '-', oprleft => 'jsonb', oprright => 'int4', oprresult => 'jsonb', + oprcode => 'jsonb_delete(jsonb,int4)' }, +{ oid => '3287', descr => 'delete path', + oprname => '#-', oprleft => 'jsonb', oprright => '_text', + oprresult => 'jsonb', oprcode => 'jsonb_delete_path' }, + +] diff --git a/src/include/catalog/pg_operator.h b/src/include/catalog/pg_operator.h index 6a6f708914..4950d28f1a 100644 --- a/src/include/catalog/pg_operator.h +++ b/src/include/catalog/pg_operator.h @@ -2,7 +2,6 @@ * * pg_operator.h * definition of the system "operator" relation (pg_operator) - * along with the relation's initial contents. * * * Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group @@ -11,11 +10,8 @@ * src/include/catalog/pg_operator.h * * NOTES - * the genbki.pl script reads this file and generates .bki - * information from the DATA() statements. - * - * XXX do NOT break up DATA() statements into multiple lines! - * the scripts are not as smart as you might think... + * The Catalog.pm module reads this file and derives schema + * information. * *------------------------------------------------------------------------- */ @@ -23,30 +19,56 @@ #define PG_OPERATOR_H #include "catalog/genbki.h" +#include "catalog/pg_operator_d.h" /* ---------------- * pg_operator definition. cpp turns this into * typedef struct FormData_pg_operator * ---------------- */ -#define OperatorRelationId 2617 - -CATALOG(pg_operator,2617) +CATALOG(pg_operator,2617,OperatorRelationId) { - NameData oprname; /* name of operator */ - Oid oprnamespace; /* OID of namespace containing this oper */ - Oid oprowner; /* operator owner */ - char oprkind; /* 'l', 'r', or 'b' */ - bool oprcanmerge; /* can be used in merge join? */ - bool oprcanhash; /* can be used in hash join? */ - Oid oprleft; /* left arg type, or 0 if 'l' oprkind */ - Oid oprright; /* right arg type, or 0 if 'r' oprkind */ - Oid oprresult; /* result datatype */ - Oid oprcom; /* OID of commutator oper, or 0 if none */ - Oid oprnegate; /* OID of negator oper, or 0 if none */ - regproc oprcode; /* OID of underlying function */ - regproc oprrest; /* OID of restriction estimator, or 0 */ - regproc oprjoin; /* OID of join estimator, or 0 */ + /* name of operator */ + NameData oprname; + + /* OID of namespace containing this oper */ + Oid oprnamespace BKI_DEFAULT(PGNSP); + + /* operator owner */ + Oid oprowner BKI_DEFAULT(PGUID); + + /* 'l', 'r', or 'b' */ + char oprkind BKI_DEFAULT(b); + + /* can be used in merge join? */ + bool oprcanmerge BKI_DEFAULT(f); + + /* can be used in hash join? */ + bool oprcanhash BKI_DEFAULT(f); + + /* left arg type, or 0 if 'l' oprkind */ + Oid oprleft BKI_LOOKUP(pg_type); + + /* right arg type, or 0 if 'r' oprkind */ + Oid oprright BKI_LOOKUP(pg_type); + + /* result datatype */ + Oid oprresult BKI_LOOKUP(pg_type); + + /* OID of commutator oper, or 0 if none */ + Oid oprcom BKI_DEFAULT(0) BKI_LOOKUP(pg_operator); + + /* OID of negator oper, or 0 if none */ + Oid oprnegate BKI_DEFAULT(0) BKI_LOOKUP(pg_operator); + + /* OID of underlying function */ + regproc oprcode BKI_LOOKUP(pg_proc); + + /* OID of restriction estimator, or 0 */ + regproc oprrest BKI_DEFAULT(-) BKI_LOOKUP(pg_proc); + + /* OID of join estimator, or 0 */ + regproc oprjoin BKI_DEFAULT(-) BKI_LOOKUP(pg_proc); } FormData_pg_operator; /* ---------------- @@ -56,1804 +78,4 @@ CATALOG(pg_operator,2617) */ typedef FormData_pg_operator *Form_pg_operator; -/* ---------------- - * compiler constants for pg_operator - * ---------------- - */ - -#define Natts_pg_operator 14 -#define Anum_pg_operator_oprname 1 -#define Anum_pg_operator_oprnamespace 2 -#define Anum_pg_operator_oprowner 3 -#define Anum_pg_operator_oprkind 4 -#define Anum_pg_operator_oprcanmerge 5 -#define Anum_pg_operator_oprcanhash 6 -#define Anum_pg_operator_oprleft 7 -#define Anum_pg_operator_oprright 8 -#define Anum_pg_operator_oprresult 9 -#define Anum_pg_operator_oprcom 10 -#define Anum_pg_operator_oprnegate 11 -#define Anum_pg_operator_oprcode 12 -#define Anum_pg_operator_oprrest 13 -#define Anum_pg_operator_oprjoin 14 - -/* ---------------- - * initial contents of pg_operator - * ---------------- - */ - -/* - * 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. - */ - -DATA(insert OID = 15 ( "=" PGNSP PGUID b t t 23 20 16 416 36 int48eq eqsel eqjoinsel )); -DESCR("equal"); -DATA(insert OID = 36 ( "<>" PGNSP PGUID b f f 23 20 16 417 15 int48ne neqsel neqjoinsel )); -DESCR("not equal"); -DATA(insert OID = 37 ( "<" PGNSP PGUID b f f 23 20 16 419 82 int48lt scalarltsel scalarltjoinsel )); -DESCR("less than"); -DATA(insert OID = 76 ( ">" PGNSP PGUID b f f 23 20 16 418 80 int48gt scalargtsel scalargtjoinsel )); -DESCR("greater than"); -DATA(insert OID = 80 ( "<=" PGNSP PGUID b f f 23 20 16 430 76 int48le scalarlesel scalarlejoinsel )); -DESCR("less than or equal"); -DATA(insert OID = 82 ( ">=" PGNSP PGUID b f f 23 20 16 420 37 int48ge scalargesel scalargejoinsel )); -DESCR("greater than or equal"); - -DATA(insert OID = 58 ( "<" PGNSP PGUID b f f 16 16 16 59 1695 boollt scalarltsel scalarltjoinsel )); -DESCR("less than"); -DATA(insert OID = 59 ( ">" PGNSP PGUID b f f 16 16 16 58 1694 boolgt scalargtsel scalargtjoinsel )); -DESCR("greater than"); -DATA(insert OID = 85 ( "<>" PGNSP PGUID b f f 16 16 16 85 91 boolne neqsel neqjoinsel )); -DESCR("not equal"); -#define BooleanNotEqualOperator 85 -DATA(insert OID = 91 ( "=" PGNSP PGUID b t t 16 16 16 91 85 booleq eqsel eqjoinsel )); -DESCR("equal"); -#define BooleanEqualOperator 91 -DATA(insert OID = 1694 ( "<=" PGNSP PGUID b f f 16 16 16 1695 59 boolle scalarlesel scalarlejoinsel )); -DESCR("less than or equal"); -DATA(insert OID = 1695 ( ">=" PGNSP PGUID b f f 16 16 16 1694 58 boolge scalargesel scalargejoinsel )); -DESCR("greater than or equal"); - -DATA(insert OID = 92 ( "=" PGNSP PGUID b t t 18 18 16 92 630 chareq eqsel eqjoinsel )); -DESCR("equal"); -DATA(insert OID = 93 ( "=" PGNSP PGUID b t t 19 19 16 93 643 nameeq eqsel eqjoinsel )); -DESCR("equal"); -DATA(insert OID = 94 ( "=" PGNSP PGUID b t t 21 21 16 94 519 int2eq eqsel eqjoinsel )); -DESCR("equal"); -DATA(insert OID = 95 ( "<" PGNSP PGUID b f f 21 21 16 520 524 int2lt scalarltsel scalarltjoinsel )); -DESCR("less than"); -DATA(insert OID = 96 ( "=" PGNSP PGUID b t t 23 23 16 96 518 int4eq eqsel eqjoinsel )); -DESCR("equal"); -#define Int4EqualOperator 96 -DATA(insert OID = 97 ( "<" PGNSP PGUID b f f 23 23 16 521 525 int4lt scalarltsel scalarltjoinsel )); -DESCR("less than"); -#define Int4LessOperator 97 -DATA(insert OID = 98 ( "=" PGNSP PGUID b t t 25 25 16 98 531 texteq eqsel eqjoinsel )); -DESCR("equal"); -#define TextEqualOperator 98 -DATA(insert OID = 3877 ( "^@" PGNSP PGUID b f f 25 25 16 0 0 starts_with prefixsel prefixjoinsel )); -DESCR("starts with"); - -DATA(insert OID = 349 ( "||" PGNSP PGUID b f f 2277 2283 2277 0 0 array_append - - )); -DESCR("append element onto end of array"); -DATA(insert OID = 374 ( "||" PGNSP PGUID b f f 2283 2277 2277 0 0 array_prepend - - )); -DESCR("prepend element onto front of array"); -DATA(insert OID = 375 ( "||" PGNSP PGUID b f f 2277 2277 2277 0 0 array_cat - - )); -DESCR("concatenate"); - -DATA(insert OID = 352 ( "=" PGNSP PGUID b f t 28 28 16 352 3315 xideq eqsel eqjoinsel )); -DESCR("equal"); -DATA(insert OID = 353 ( "=" PGNSP PGUID b f f 28 23 16 0 3316 xideqint4 eqsel eqjoinsel )); -DESCR("equal"); -DATA(insert OID = 3315 ( "<>" PGNSP PGUID b f f 28 28 16 3315 352 xidneq neqsel neqjoinsel )); -DESCR("not equal"); -DATA(insert OID = 3316 ( "<>" PGNSP PGUID b f f 28 23 16 0 353 xidneqint4 neqsel neqjoinsel )); -DESCR("not equal"); -DATA(insert OID = 388 ( "!" PGNSP PGUID r f f 20 0 1700 0 0 numeric_fac - - )); -DESCR("factorial"); -DATA(insert OID = 389 ( "!!" PGNSP PGUID l f f 0 20 1700 0 0 numeric_fac - - )); -DESCR("deprecated, use ! instead"); -DATA(insert OID = 385 ( "=" PGNSP PGUID b f t 29 29 16 385 0 cideq eqsel eqjoinsel )); -DESCR("equal"); - -DATA(insert OID = 387 ( "=" PGNSP PGUID b t f 27 27 16 387 402 tideq eqsel eqjoinsel )); -DESCR("equal"); -#define TIDEqualOperator 387 -DATA(insert OID = 402 ( "<>" PGNSP PGUID b f f 27 27 16 402 387 tidne neqsel neqjoinsel )); -DESCR("not equal"); -DATA(insert OID = 2799 ( "<" PGNSP PGUID b f f 27 27 16 2800 2802 tidlt scalarltsel scalarltjoinsel )); -DESCR("less than"); -#define TIDLessOperator 2799 -DATA(insert OID = 2800 ( ">" PGNSP PGUID b f f 27 27 16 2799 2801 tidgt scalargtsel scalargtjoinsel )); -DESCR("greater than"); -DATA(insert OID = 2801 ( "<=" PGNSP PGUID b f f 27 27 16 2802 2800 tidle scalarlesel scalarlejoinsel )); -DESCR("less than or equal"); -DATA(insert OID = 2802 ( ">=" PGNSP PGUID b f f 27 27 16 2801 2799 tidge scalargesel scalargejoinsel )); -DESCR("greater than or equal"); - -DATA(insert OID = 410 ( "=" PGNSP PGUID b t t 20 20 16 410 411 int8eq eqsel eqjoinsel )); -DESCR("equal"); -DATA(insert OID = 411 ( "<>" PGNSP PGUID b f f 20 20 16 411 410 int8ne neqsel neqjoinsel )); -DESCR("not equal"); -DATA(insert OID = 412 ( "<" PGNSP PGUID b f f 20 20 16 413 415 int8lt scalarltsel scalarltjoinsel )); -DESCR("less than"); -#define Int8LessOperator 412 -DATA(insert OID = 413 ( ">" PGNSP PGUID b f f 20 20 16 412 414 int8gt scalargtsel scalargtjoinsel )); -DESCR("greater than"); -DATA(insert OID = 414 ( "<=" PGNSP PGUID b f f 20 20 16 415 413 int8le scalarlesel scalarlejoinsel )); -DESCR("less than or equal"); -DATA(insert OID = 415 ( ">=" PGNSP PGUID b f f 20 20 16 414 412 int8ge scalargesel scalargejoinsel )); -DESCR("greater than or equal"); - -DATA(insert OID = 416 ( "=" PGNSP PGUID b t t 20 23 16 15 417 int84eq eqsel eqjoinsel )); -DESCR("equal"); -DATA(insert OID = 417 ( "<>" PGNSP PGUID b f f 20 23 16 36 416 int84ne neqsel neqjoinsel )); -DESCR("not equal"); -DATA(insert OID = 418 ( "<" PGNSP PGUID b f f 20 23 16 76 430 int84lt scalarltsel scalarltjoinsel )); -DESCR("less than"); -DATA(insert OID = 419 ( ">" PGNSP PGUID b f f 20 23 16 37 420 int84gt scalargtsel scalargtjoinsel )); -DESCR("greater than"); -DATA(insert OID = 420 ( "<=" PGNSP PGUID b f f 20 23 16 82 419 int84le scalarlesel scalarlejoinsel )); -DESCR("less than or equal"); -DATA(insert OID = 430 ( ">=" PGNSP PGUID b f f 20 23 16 80 418 int84ge scalargesel scalargejoinsel )); -DESCR("greater than or equal"); -DATA(insert OID = 439 ( "%" PGNSP PGUID b f f 20 20 20 0 0 int8mod - - )); -DESCR("modulus"); -DATA(insert OID = 473 ( "@" PGNSP PGUID l f f 0 20 20 0 0 int8abs - - )); -DESCR("absolute value"); - -DATA(insert OID = 484 ( "-" PGNSP PGUID l f f 0 20 20 0 0 int8um - - )); -DESCR("negate"); -DATA(insert OID = 485 ( "<<" PGNSP PGUID b f f 604 604 16 0 0 poly_left positionsel positionjoinsel )); -DESCR("is left of"); -DATA(insert OID = 486 ( "&<" PGNSP PGUID b f f 604 604 16 0 0 poly_overleft positionsel positionjoinsel )); -DESCR("overlaps or is left of"); -DATA(insert OID = 487 ( "&>" PGNSP PGUID b f f 604 604 16 0 0 poly_overright positionsel positionjoinsel )); -DESCR("overlaps or is right of"); -DATA(insert OID = 488 ( ">>" PGNSP PGUID b f f 604 604 16 0 0 poly_right positionsel positionjoinsel )); -DESCR("is right of"); -DATA(insert OID = 489 ( "<@" PGNSP PGUID b f f 604 604 16 490 0 poly_contained contsel contjoinsel )); -DESCR("is contained by"); -DATA(insert OID = 490 ( "@>" PGNSP PGUID b f f 604 604 16 489 0 poly_contain contsel contjoinsel )); -DESCR("contains"); -DATA(insert OID = 491 ( "~=" PGNSP PGUID b f f 604 604 16 491 0 poly_same eqsel eqjoinsel )); -DESCR("same as"); -DATA(insert OID = 492 ( "&&" PGNSP PGUID b f f 604 604 16 492 0 poly_overlap areasel areajoinsel )); -DESCR("overlaps"); -DATA(insert OID = 493 ( "<<" PGNSP PGUID b f f 603 603 16 0 0 box_left positionsel positionjoinsel )); -DESCR("is left of"); -DATA(insert OID = 494 ( "&<" PGNSP PGUID b f f 603 603 16 0 0 box_overleft positionsel positionjoinsel )); -DESCR("overlaps or is left of"); -DATA(insert OID = 495 ( "&>" PGNSP PGUID b f f 603 603 16 0 0 box_overright positionsel positionjoinsel )); -DESCR("overlaps or is right of"); -DATA(insert OID = 496 ( ">>" PGNSP PGUID b f f 603 603 16 0 0 box_right positionsel positionjoinsel )); -DESCR("is right of"); -DATA(insert OID = 497 ( "<@" PGNSP PGUID b f f 603 603 16 498 0 box_contained contsel contjoinsel )); -DESCR("is contained by"); -DATA(insert OID = 498 ( "@>" PGNSP PGUID b f f 603 603 16 497 0 box_contain contsel contjoinsel )); -DESCR("contains"); -DATA(insert OID = 499 ( "~=" PGNSP PGUID b f f 603 603 16 499 0 box_same eqsel eqjoinsel )); -DESCR("same as"); -DATA(insert OID = 500 ( "&&" PGNSP PGUID b f f 603 603 16 500 0 box_overlap areasel areajoinsel )); -DESCR("overlaps"); -DATA(insert OID = 501 ( ">=" PGNSP PGUID b f f 603 603 16 505 504 box_ge areasel areajoinsel )); -DESCR("greater than or equal by area"); -DATA(insert OID = 502 ( ">" PGNSP PGUID b f f 603 603 16 504 505 box_gt areasel areajoinsel )); -DESCR("greater than by area"); -DATA(insert OID = 503 ( "=" PGNSP PGUID b f f 603 603 16 503 0 box_eq eqsel eqjoinsel )); -DESCR("equal by area"); -DATA(insert OID = 504 ( "<" PGNSP PGUID b f f 603 603 16 502 501 box_lt areasel areajoinsel )); -DESCR("less than by area"); -DATA(insert OID = 505 ( "<=" PGNSP PGUID b f f 603 603 16 501 502 box_le areasel areajoinsel )); -DESCR("less than or equal by area"); -DATA(insert OID = 506 ( ">^" PGNSP PGUID b f f 600 600 16 0 0 point_above positionsel positionjoinsel )); -DESCR("is above"); -DATA(insert OID = 507 ( "<<" PGNSP PGUID b f f 600 600 16 0 0 point_left positionsel positionjoinsel )); -DESCR("is left of"); -DATA(insert OID = 508 ( ">>" PGNSP PGUID b f f 600 600 16 0 0 point_right positionsel positionjoinsel )); -DESCR("is right of"); -DATA(insert OID = 509 ( "<^" PGNSP PGUID b f f 600 600 16 0 0 point_below positionsel positionjoinsel )); -DESCR("is below"); -DATA(insert OID = 510 ( "~=" PGNSP PGUID b f f 600 600 16 510 713 point_eq eqsel eqjoinsel )); -DESCR("same as"); -DATA(insert OID = 511 ( "<@" PGNSP PGUID b f f 600 603 16 433 0 on_pb contsel contjoinsel )); -DESCR("point inside box"); -DATA(insert OID = 433 ( "@>" PGNSP PGUID b f f 603 600 16 511 0 box_contain_pt contsel contjoinsel )); -DESCR("contains"); -DATA(insert OID = 512 ( "<@" PGNSP PGUID b f f 600 602 16 755 0 on_ppath - - )); -DESCR("point within closed path, or point on open path"); -DATA(insert OID = 513 ( "@@" PGNSP PGUID l f f 0 603 600 0 0 box_center - - )); -DESCR("center of"); -DATA(insert OID = 514 ( "*" PGNSP PGUID b f f 23 23 23 514 0 int4mul - - )); -DESCR("multiply"); -DATA(insert OID = 517 ( "<->" PGNSP PGUID b f f 600 600 701 517 0 point_distance - - )); -DESCR("distance between"); -DATA(insert OID = 518 ( "<>" PGNSP PGUID b f f 23 23 16 518 96 int4ne neqsel neqjoinsel )); -DESCR("not equal"); -DATA(insert OID = 519 ( "<>" PGNSP PGUID b f f 21 21 16 519 94 int2ne neqsel neqjoinsel )); -DESCR("not equal"); -DATA(insert OID = 520 ( ">" PGNSP PGUID b f f 21 21 16 95 522 int2gt scalargtsel scalargtjoinsel )); -DESCR("greater than"); -DATA(insert OID = 521 ( ">" PGNSP PGUID b f f 23 23 16 97 523 int4gt scalargtsel scalargtjoinsel )); -DESCR("greater than"); -DATA(insert OID = 522 ( "<=" PGNSP PGUID b f f 21 21 16 524 520 int2le scalarlesel scalarlejoinsel )); -DESCR("less than or equal"); -DATA(insert OID = 523 ( "<=" PGNSP PGUID b f f 23 23 16 525 521 int4le scalarlesel scalarlejoinsel )); -DESCR("less than or equal"); -DATA(insert OID = 524 ( ">=" PGNSP PGUID b f f 21 21 16 522 95 int2ge scalargesel scalargejoinsel )); -DESCR("greater than or equal"); -DATA(insert OID = 525 ( ">=" PGNSP PGUID b f f 23 23 16 523 97 int4ge scalargesel scalargejoinsel )); -DESCR("greater than or equal"); -DATA(insert OID = 526 ( "*" PGNSP PGUID b f f 21 21 21 526 0 int2mul - - )); -DESCR("multiply"); -DATA(insert OID = 527 ( "/" PGNSP PGUID b f f 21 21 21 0 0 int2div - - )); -DESCR("divide"); -DATA(insert OID = 528 ( "/" PGNSP PGUID b f f 23 23 23 0 0 int4div - - )); -DESCR("divide"); -DATA(insert OID = 529 ( "%" PGNSP PGUID b f f 21 21 21 0 0 int2mod - - )); -DESCR("modulus"); -DATA(insert OID = 530 ( "%" PGNSP PGUID b f f 23 23 23 0 0 int4mod - - )); -DESCR("modulus"); -DATA(insert OID = 531 ( "<>" PGNSP PGUID b f f 25 25 16 531 98 textne neqsel neqjoinsel )); -DESCR("not equal"); -DATA(insert OID = 532 ( "=" PGNSP PGUID b t t 21 23 16 533 538 int24eq eqsel eqjoinsel )); -DESCR("equal"); -DATA(insert OID = 533 ( "=" PGNSP PGUID b t t 23 21 16 532 539 int42eq eqsel eqjoinsel )); -DESCR("equal"); -DATA(insert OID = 534 ( "<" PGNSP PGUID b f f 21 23 16 537 542 int24lt scalarltsel scalarltjoinsel )); -DESCR("less than"); -DATA(insert OID = 535 ( "<" PGNSP PGUID b f f 23 21 16 536 543 int42lt scalarltsel scalarltjoinsel )); -DESCR("less than"); -DATA(insert OID = 536 ( ">" PGNSP PGUID b f f 21 23 16 535 540 int24gt scalargtsel scalargtjoinsel )); -DESCR("greater than"); -DATA(insert OID = 537 ( ">" PGNSP PGUID b f f 23 21 16 534 541 int42gt scalargtsel scalargtjoinsel )); -DESCR("greater than"); -DATA(insert OID = 538 ( "<>" PGNSP PGUID b f f 21 23 16 539 532 int24ne neqsel neqjoinsel )); -DESCR("not equal"); -DATA(insert OID = 539 ( "<>" PGNSP PGUID b f f 23 21 16 538 533 int42ne neqsel neqjoinsel )); -DESCR("not equal"); -DATA(insert OID = 540 ( "<=" PGNSP PGUID b f f 21 23 16 543 536 int24le scalarlesel scalarlejoinsel )); -DESCR("less than or equal"); -DATA(insert OID = 541 ( "<=" PGNSP PGUID b f f 23 21 16 542 537 int42le scalarlesel scalarlejoinsel )); -DESCR("less than or equal"); -DATA(insert OID = 542 ( ">=" PGNSP PGUID b f f 21 23 16 541 534 int24ge scalargesel scalargejoinsel )); -DESCR("greater than or equal"); -DATA(insert OID = 543 ( ">=" PGNSP PGUID b f f 23 21 16 540 535 int42ge scalargesel scalargejoinsel )); -DESCR("greater than or equal"); -DATA(insert OID = 544 ( "*" PGNSP PGUID b f f 21 23 23 545 0 int24mul - - )); -DESCR("multiply"); -DATA(insert OID = 545 ( "*" PGNSP PGUID b f f 23 21 23 544 0 int42mul - - )); -DESCR("multiply"); -DATA(insert OID = 546 ( "/" PGNSP PGUID b f f 21 23 23 0 0 int24div - - )); -DESCR("divide"); -DATA(insert OID = 547 ( "/" PGNSP PGUID b f f 23 21 23 0 0 int42div - - )); -DESCR("divide"); -DATA(insert OID = 550 ( "+" PGNSP PGUID b f f 21 21 21 550 0 int2pl - - )); -DESCR("add"); -DATA(insert OID = 551 ( "+" PGNSP PGUID b f f 23 23 23 551 0 int4pl - - )); -DESCR("add"); -DATA(insert OID = 552 ( "+" PGNSP PGUID b f f 21 23 23 553 0 int24pl - - )); -DESCR("add"); -DATA(insert OID = 553 ( "+" PGNSP PGUID b f f 23 21 23 552 0 int42pl - - )); -DESCR("add"); -DATA(insert OID = 554 ( "-" PGNSP PGUID b f f 21 21 21 0 0 int2mi - - )); -DESCR("subtract"); -DATA(insert OID = 555 ( "-" PGNSP PGUID b f f 23 23 23 0 0 int4mi - - )); -DESCR("subtract"); -DATA(insert OID = 556 ( "-" PGNSP PGUID b f f 21 23 23 0 0 int24mi - - )); -DESCR("subtract"); -DATA(insert OID = 557 ( "-" PGNSP PGUID b f f 23 21 23 0 0 int42mi - - )); -DESCR("subtract"); -DATA(insert OID = 558 ( "-" PGNSP PGUID l f f 0 23 23 0 0 int4um - - )); -DESCR("negate"); -DATA(insert OID = 559 ( "-" PGNSP PGUID l f f 0 21 21 0 0 int2um - - )); -DESCR("negate"); -DATA(insert OID = 560 ( "=" PGNSP PGUID b t t 702 702 16 560 561 abstimeeq eqsel eqjoinsel )); -DESCR("equal"); -DATA(insert OID = 561 ( "<>" PGNSP PGUID b f f 702 702 16 561 560 abstimene neqsel neqjoinsel )); -DESCR("not equal"); -DATA(insert OID = 562 ( "<" PGNSP PGUID b f f 702 702 16 563 565 abstimelt scalarltsel scalarltjoinsel )); -DESCR("less than"); -DATA(insert OID = 563 ( ">" PGNSP PGUID b f f 702 702 16 562 564 abstimegt scalargtsel scalargtjoinsel )); -DESCR("greater than"); -DATA(insert OID = 564 ( "<=" PGNSP PGUID b f f 702 702 16 565 563 abstimele scalarlesel scalarlejoinsel )); -DESCR("less than or equal"); -DATA(insert OID = 565 ( ">=" PGNSP PGUID b f f 702 702 16 564 562 abstimege scalargesel scalargejoinsel )); -DESCR("greater than or equal"); -DATA(insert OID = 566 ( "=" PGNSP PGUID b t t 703 703 16 566 567 reltimeeq eqsel eqjoinsel )); -DESCR("equal"); -DATA(insert OID = 567 ( "<>" PGNSP PGUID b f f 703 703 16 567 566 reltimene neqsel neqjoinsel )); -DESCR("not equal"); -DATA(insert OID = 568 ( "<" PGNSP PGUID b f f 703 703 16 569 571 reltimelt scalarltsel scalarltjoinsel )); -DESCR("less than"); -DATA(insert OID = 569 ( ">" PGNSP PGUID b f f 703 703 16 568 570 reltimegt scalargtsel scalargtjoinsel )); -DESCR("greater than"); -DATA(insert OID = 570 ( "<=" PGNSP PGUID b f f 703 703 16 571 569 reltimele scalarlesel scalarlejoinsel )); -DESCR("less than or equal"); -DATA(insert OID = 571 ( ">=" PGNSP PGUID b f f 703 703 16 570 568 reltimege scalargesel scalargejoinsel )); -DESCR("greater than or equal"); -DATA(insert OID = 572 ( "~=" PGNSP PGUID b f f 704 704 16 572 0 tintervalsame eqsel eqjoinsel )); -DESCR("same as"); -DATA(insert OID = 573 ( "<<" PGNSP PGUID b f f 704 704 16 0 0 tintervalct - - )); -DESCR("contains"); -DATA(insert OID = 574 ( "&&" PGNSP PGUID b f f 704 704 16 574 0 tintervalov - - )); -DESCR("overlaps"); -DATA(insert OID = 575 ( "#=" PGNSP PGUID b f f 704 703 16 0 576 tintervalleneq - - )); -DESCR("equal by length"); -DATA(insert OID = 576 ( "#<>" PGNSP PGUID b f f 704 703 16 0 575 tintervallenne - - )); -DESCR("not equal by length"); -DATA(insert OID = 577 ( "#<" PGNSP PGUID b f f 704 703 16 0 580 tintervallenlt - - )); -DESCR("less than by length"); -DATA(insert OID = 578 ( "#>" PGNSP PGUID b f f 704 703 16 0 579 tintervallengt - - )); -DESCR("greater than by length"); -DATA(insert OID = 579 ( "#<=" PGNSP PGUID b f f 704 703 16 0 578 tintervallenle - - )); -DESCR("less than or equal by length"); -DATA(insert OID = 580 ( "#>=" PGNSP PGUID b f f 704 703 16 0 577 tintervallenge - - )); -DESCR("greater than or equal by length"); -DATA(insert OID = 581 ( "+" PGNSP PGUID b f f 702 703 702 0 0 timepl - - )); -DESCR("add"); -DATA(insert OID = 582 ( "-" PGNSP PGUID b f f 702 703 702 0 0 timemi - - )); -DESCR("subtract"); -DATA(insert OID = 583 ( "" PGNSP PGUID b f f 702 704 16 0 0 intinterval - - )); -DESCR("is contained by"); -DATA(insert OID = 584 ( "-" PGNSP PGUID l f f 0 700 700 0 0 float4um - - )); -DESCR("negate"); -DATA(insert OID = 585 ( "-" PGNSP PGUID l f f 0 701 701 0 0 float8um - - )); -DESCR("negate"); -DATA(insert OID = 586 ( "+" PGNSP PGUID b f f 700 700 700 586 0 float4pl - - )); -DESCR("add"); -DATA(insert OID = 587 ( "-" PGNSP PGUID b f f 700 700 700 0 0 float4mi - - )); -DESCR("subtract"); -DATA(insert OID = 588 ( "/" PGNSP PGUID b f f 700 700 700 0 0 float4div - - )); -DESCR("divide"); -DATA(insert OID = 589 ( "*" PGNSP PGUID b f f 700 700 700 589 0 float4mul - - )); -DESCR("multiply"); -DATA(insert OID = 590 ( "@" PGNSP PGUID l f f 0 700 700 0 0 float4abs - - )); -DESCR("absolute value"); -DATA(insert OID = 591 ( "+" PGNSP PGUID b f f 701 701 701 591 0 float8pl - - )); -DESCR("add"); -DATA(insert OID = 592 ( "-" PGNSP PGUID b f f 701 701 701 0 0 float8mi - - )); -DESCR("subtract"); -DATA(insert OID = 593 ( "/" PGNSP PGUID b f f 701 701 701 0 0 float8div - - )); -DESCR("divide"); -DATA(insert OID = 594 ( "*" PGNSP PGUID b f f 701 701 701 594 0 float8mul - - )); -DESCR("multiply"); -DATA(insert OID = 595 ( "@" PGNSP PGUID l f f 0 701 701 0 0 float8abs - - )); -DESCR("absolute value"); -DATA(insert OID = 596 ( "|/" PGNSP PGUID l f f 0 701 701 0 0 dsqrt - - )); -DESCR("square root"); -DATA(insert OID = 597 ( "||/" PGNSP PGUID l f f 0 701 701 0 0 dcbrt - - )); -DESCR("cube root"); -DATA(insert OID = 1284 ( "|" PGNSP PGUID l f f 0 704 702 0 0 tintervalstart - - )); -DESCR("start of interval"); -DATA(insert OID = 606 ( "<#>" PGNSP PGUID b f f 702 702 704 0 0 mktinterval - - )); -DESCR("convert to tinterval"); - -DATA(insert OID = 607 ( "=" PGNSP PGUID b t t 26 26 16 607 608 oideq eqsel eqjoinsel )); -DESCR("equal"); -DATA(insert OID = 608 ( "<>" PGNSP PGUID b f f 26 26 16 608 607 oidne neqsel neqjoinsel )); -DESCR("not equal"); -DATA(insert OID = 609 ( "<" PGNSP PGUID b f f 26 26 16 610 612 oidlt scalarltsel scalarltjoinsel )); -DESCR("less than"); -DATA(insert OID = 610 ( ">" PGNSP PGUID b f f 26 26 16 609 611 oidgt scalargtsel scalargtjoinsel )); -DESCR("greater than"); -DATA(insert OID = 611 ( "<=" PGNSP PGUID b f f 26 26 16 612 610 oidle scalarlesel scalarlejoinsel )); -DESCR("less than or equal"); -DATA(insert OID = 612 ( ">=" PGNSP PGUID b f f 26 26 16 611 609 oidge scalargesel scalargejoinsel )); -DESCR("greater than or equal"); - -DATA(insert OID = 644 ( "<>" PGNSP PGUID b f f 30 30 16 644 649 oidvectorne neqsel neqjoinsel )); -DESCR("not equal"); -DATA(insert OID = 645 ( "<" PGNSP PGUID b f f 30 30 16 646 648 oidvectorlt scalarltsel scalarltjoinsel )); -DESCR("less than"); -DATA(insert OID = 646 ( ">" PGNSP PGUID b f f 30 30 16 645 647 oidvectorgt scalargtsel scalargtjoinsel )); -DESCR("greater than"); -DATA(insert OID = 647 ( "<=" PGNSP PGUID b f f 30 30 16 648 646 oidvectorle scalarlesel scalarlejoinsel )); -DESCR("less than or equal"); -DATA(insert OID = 648 ( ">=" PGNSP PGUID b f f 30 30 16 647 645 oidvectorge scalargesel scalargejoinsel )); -DESCR("greater than or equal"); -DATA(insert OID = 649 ( "=" PGNSP PGUID b t t 30 30 16 649 644 oidvectoreq eqsel eqjoinsel )); -DESCR("equal"); - -DATA(insert OID = 613 ( "<->" PGNSP PGUID b f f 600 628 701 0 0 dist_pl - - )); -DESCR("distance between"); -DATA(insert OID = 614 ( "<->" PGNSP PGUID b f f 600 601 701 0 0 dist_ps - - )); -DESCR("distance between"); -DATA(insert OID = 615 ( "<->" PGNSP PGUID b f f 600 603 701 0 0 dist_pb - - )); -DESCR("distance between"); -DATA(insert OID = 616 ( "<->" PGNSP PGUID b f f 601 628 701 0 0 dist_sl - - )); -DESCR("distance between"); -DATA(insert OID = 617 ( "<->" PGNSP PGUID b f f 601 603 701 0 0 dist_sb - - )); -DESCR("distance between"); -DATA(insert OID = 618 ( "<->" PGNSP PGUID b f f 600 602 701 0 0 dist_ppath - - )); -DESCR("distance between"); - -DATA(insert OID = 620 ( "=" PGNSP PGUID b t t 700 700 16 620 621 float4eq eqsel eqjoinsel )); -DESCR("equal"); -DATA(insert OID = 621 ( "<>" PGNSP PGUID b f f 700 700 16 621 620 float4ne neqsel neqjoinsel )); -DESCR("not equal"); -DATA(insert OID = 622 ( "<" PGNSP PGUID b f f 700 700 16 623 625 float4lt scalarltsel scalarltjoinsel )); -DESCR("less than"); -DATA(insert OID = 623 ( ">" PGNSP PGUID b f f 700 700 16 622 624 float4gt scalargtsel scalargtjoinsel )); -DESCR("greater than"); -DATA(insert OID = 624 ( "<=" PGNSP PGUID b f f 700 700 16 625 623 float4le scalarlesel scalarlejoinsel )); -DESCR("less than or equal"); -DATA(insert OID = 625 ( ">=" PGNSP PGUID b f f 700 700 16 624 622 float4ge scalargesel scalargejoinsel )); -DESCR("greater than or equal"); -DATA(insert OID = 630 ( "<>" PGNSP PGUID b f f 18 18 16 630 92 charne neqsel neqjoinsel )); -DESCR("not equal"); - -DATA(insert OID = 631 ( "<" PGNSP PGUID b f f 18 18 16 633 634 charlt scalarltsel scalarltjoinsel )); -DESCR("less than"); -DATA(insert OID = 632 ( "<=" PGNSP PGUID b f f 18 18 16 634 633 charle scalarlesel scalarlejoinsel )); -DESCR("less than or equal"); -DATA(insert OID = 633 ( ">" PGNSP PGUID b f f 18 18 16 631 632 chargt scalargtsel scalargtjoinsel )); -DESCR("greater than"); -DATA(insert OID = 634 ( ">=" PGNSP PGUID b f f 18 18 16 632 631 charge scalargesel scalargejoinsel )); -DESCR("greater than or equal"); - -DATA(insert OID = 639 ( "~" PGNSP PGUID b f f 19 25 16 0 640 nameregexeq regexeqsel regexeqjoinsel )); -DESCR("matches regular expression, case-sensitive"); -#define OID_NAME_REGEXEQ_OP 639 -DATA(insert OID = 640 ( "!~" PGNSP PGUID b f f 19 25 16 0 639 nameregexne regexnesel regexnejoinsel )); -DESCR("does not match regular expression, case-sensitive"); -DATA(insert OID = 641 ( "~" PGNSP PGUID b f f 25 25 16 0 642 textregexeq regexeqsel regexeqjoinsel )); -DESCR("matches regular expression, case-sensitive"); -#define OID_TEXT_REGEXEQ_OP 641 -DATA(insert OID = 642 ( "!~" PGNSP PGUID b f f 25 25 16 0 641 textregexne regexnesel regexnejoinsel )); -DESCR("does not match regular expression, case-sensitive"); -DATA(insert OID = 643 ( "<>" PGNSP PGUID b f f 19 19 16 643 93 namene neqsel neqjoinsel )); -DESCR("not equal"); -DATA(insert OID = 654 ( "||" PGNSP PGUID b f f 25 25 25 0 0 textcat - - )); -DESCR("concatenate"); - -DATA(insert OID = 660 ( "<" PGNSP PGUID b f f 19 19 16 662 663 namelt scalarltsel scalarltjoinsel )); -DESCR("less than"); -DATA(insert OID = 661 ( "<=" PGNSP PGUID b f f 19 19 16 663 662 namele scalarlesel scalarlejoinsel )); -DESCR("less than or equal"); -DATA(insert OID = 662 ( ">" PGNSP PGUID b f f 19 19 16 660 661 namegt scalargtsel scalargtjoinsel )); -DESCR("greater than"); -DATA(insert OID = 663 ( ">=" PGNSP PGUID b f f 19 19 16 661 660 namege scalargesel scalargejoinsel )); -DESCR("greater than or equal"); -DATA(insert OID = 664 ( "<" PGNSP PGUID b f f 25 25 16 666 667 text_lt scalarltsel scalarltjoinsel )); -DESCR("less than"); -DATA(insert OID = 665 ( "<=" PGNSP PGUID b f f 25 25 16 667 666 text_le scalarlesel scalarlejoinsel )); -DESCR("less than or equal"); -DATA(insert OID = 666 ( ">" PGNSP PGUID b f f 25 25 16 664 665 text_gt scalargtsel scalargtjoinsel )); -DESCR("greater than"); -DATA(insert OID = 667 ( ">=" PGNSP PGUID b f f 25 25 16 665 664 text_ge scalargesel scalargejoinsel )); -DESCR("greater than or equal"); - -DATA(insert OID = 670 ( "=" PGNSP PGUID b t t 701 701 16 670 671 float8eq eqsel eqjoinsel )); -DESCR("equal"); -DATA(insert OID = 671 ( "<>" PGNSP PGUID b f f 701 701 16 671 670 float8ne neqsel neqjoinsel )); -DESCR("not equal"); -DATA(insert OID = 672 ( "<" PGNSP PGUID b f f 701 701 16 674 675 float8lt scalarltsel scalarltjoinsel )); -DESCR("less than"); -#define Float8LessOperator 672 -DATA(insert OID = 673 ( "<=" PGNSP PGUID b f f 701 701 16 675 674 float8le scalarlesel scalarlejoinsel )); -DESCR("less than or equal"); -DATA(insert OID = 674 ( ">" PGNSP PGUID b f f 701 701 16 672 673 float8gt scalargtsel scalargtjoinsel )); -DESCR("greater than"); -DATA(insert OID = 675 ( ">=" PGNSP PGUID b f f 701 701 16 673 672 float8ge scalargesel scalargejoinsel )); -DESCR("greater than or equal"); - -DATA(insert OID = 682 ( "@" PGNSP PGUID l f f 0 21 21 0 0 int2abs - - )); -DESCR("absolute value"); -DATA(insert OID = 684 ( "+" PGNSP PGUID b f f 20 20 20 684 0 int8pl - - )); -DESCR("add"); -DATA(insert OID = 685 ( "-" PGNSP PGUID b f f 20 20 20 0 0 int8mi - - )); -DESCR("subtract"); -DATA(insert OID = 686 ( "*" PGNSP PGUID b f f 20 20 20 686 0 int8mul - - )); -DESCR("multiply"); -DATA(insert OID = 687 ( "/" PGNSP PGUID b f f 20 20 20 0 0 int8div - - )); -DESCR("divide"); - -DATA(insert OID = 688 ( "+" PGNSP PGUID b f f 20 23 20 692 0 int84pl - - )); -DESCR("add"); -DATA(insert OID = 689 ( "-" PGNSP PGUID b f f 20 23 20 0 0 int84mi - - )); -DESCR("subtract"); -DATA(insert OID = 690 ( "*" PGNSP PGUID b f f 20 23 20 694 0 int84mul - - )); -DESCR("multiply"); -DATA(insert OID = 691 ( "/" PGNSP PGUID b f f 20 23 20 0 0 int84div - - )); -DESCR("divide"); -DATA(insert OID = 692 ( "+" PGNSP PGUID b f f 23 20 20 688 0 int48pl - - )); -DESCR("add"); -DATA(insert OID = 693 ( "-" PGNSP PGUID b f f 23 20 20 0 0 int48mi - - )); -DESCR("subtract"); -DATA(insert OID = 694 ( "*" PGNSP PGUID b f f 23 20 20 690 0 int48mul - - )); -DESCR("multiply"); -DATA(insert OID = 695 ( "/" PGNSP PGUID b f f 23 20 20 0 0 int48div - - )); -DESCR("divide"); - -DATA(insert OID = 818 ( "+" PGNSP PGUID b f f 20 21 20 822 0 int82pl - - )); -DESCR("add"); -DATA(insert OID = 819 ( "-" PGNSP PGUID b f f 20 21 20 0 0 int82mi - - )); -DESCR("subtract"); -DATA(insert OID = 820 ( "*" PGNSP PGUID b f f 20 21 20 824 0 int82mul - - )); -DESCR("multiply"); -DATA(insert OID = 821 ( "/" PGNSP PGUID b f f 20 21 20 0 0 int82div - - )); -DESCR("divide"); -DATA(insert OID = 822 ( "+" PGNSP PGUID b f f 21 20 20 818 0 int28pl - - )); -DESCR("add"); -DATA(insert OID = 823 ( "-" PGNSP PGUID b f f 21 20 20 0 0 int28mi - - )); -DESCR("subtract"); -DATA(insert OID = 824 ( "*" PGNSP PGUID b f f 21 20 20 820 0 int28mul - - )); -DESCR("multiply"); -DATA(insert OID = 825 ( "/" PGNSP PGUID b f f 21 20 20 0 0 int28div - - )); -DESCR("divide"); - -DATA(insert OID = 706 ( "<->" PGNSP PGUID b f f 603 603 701 706 0 box_distance - - )); -DESCR("distance between"); -DATA(insert OID = 707 ( "<->" PGNSP PGUID b f f 602 602 701 707 0 path_distance - - )); -DESCR("distance between"); -DATA(insert OID = 708 ( "<->" PGNSP PGUID b f f 628 628 701 708 0 line_distance - - )); -DESCR("distance between"); -DATA(insert OID = 709 ( "<->" PGNSP PGUID b f f 601 601 701 709 0 lseg_distance - - )); -DESCR("distance between"); -DATA(insert OID = 712 ( "<->" PGNSP PGUID b f f 604 604 701 712 0 poly_distance - - )); -DESCR("distance between"); - -DATA(insert OID = 713 ( "<>" PGNSP PGUID b f f 600 600 16 713 510 point_ne neqsel neqjoinsel )); -DESCR("not equal"); - -/* add translation/rotation/scaling operators for geometric types. - thomas 97/05/10 */ -DATA(insert OID = 731 ( "+" PGNSP PGUID b f f 600 600 600 731 0 point_add - - )); -DESCR("add points (translate)"); -DATA(insert OID = 732 ( "-" PGNSP PGUID b f f 600 600 600 0 0 point_sub - - )); -DESCR("subtract points (translate)"); -DATA(insert OID = 733 ( "*" PGNSP PGUID b f f 600 600 600 733 0 point_mul - - )); -DESCR("multiply points (scale/rotate)"); -DATA(insert OID = 734 ( "/" PGNSP PGUID b f f 600 600 600 0 0 point_div - - )); -DESCR("divide points (scale/rotate)"); -DATA(insert OID = 735 ( "+" PGNSP PGUID b f f 602 602 602 735 0 path_add - - )); -DESCR("concatenate"); -DATA(insert OID = 736 ( "+" PGNSP PGUID b f f 602 600 602 0 0 path_add_pt - - )); -DESCR("add (translate path)"); -DATA(insert OID = 737 ( "-" PGNSP PGUID b f f 602 600 602 0 0 path_sub_pt - - )); -DESCR("subtract (translate path)"); -DATA(insert OID = 738 ( "*" PGNSP PGUID b f f 602 600 602 0 0 path_mul_pt - - )); -DESCR("multiply (rotate/scale path)"); -DATA(insert OID = 739 ( "/" PGNSP PGUID b f f 602 600 602 0 0 path_div_pt - - )); -DESCR("divide (rotate/scale path)"); -DATA(insert OID = 755 ( "@>" PGNSP PGUID b f f 602 600 16 512 0 path_contain_pt - - )); -DESCR("contains"); -DATA(insert OID = 756 ( "<@" PGNSP PGUID b f f 600 604 16 757 0 pt_contained_poly contsel contjoinsel )); -DESCR("is contained by"); -DATA(insert OID = 757 ( "@>" PGNSP PGUID b f f 604 600 16 756 0 poly_contain_pt contsel contjoinsel )); -DESCR("contains"); -DATA(insert OID = 758 ( "<@" PGNSP PGUID b f f 600 718 16 759 0 pt_contained_circle contsel contjoinsel )); -DESCR("is contained by"); -DATA(insert OID = 759 ( "@>" PGNSP PGUID b f f 718 600 16 758 0 circle_contain_pt contsel contjoinsel )); -DESCR("contains"); - -DATA(insert OID = 773 ( "@" PGNSP PGUID l f f 0 23 23 0 0 int4abs - - )); -DESCR("absolute value"); - -/* additional operators for geometric types - thomas 1997-07-09 */ -DATA(insert OID = 792 ( "=" PGNSP PGUID b f f 602 602 16 792 0 path_n_eq eqsel eqjoinsel )); -DESCR("equal"); -DATA(insert OID = 793 ( "<" PGNSP PGUID b f f 602 602 16 794 0 path_n_lt - - )); -DESCR("less than"); -DATA(insert OID = 794 ( ">" PGNSP PGUID b f f 602 602 16 793 0 path_n_gt - - )); -DESCR("greater than"); -DATA(insert OID = 795 ( "<=" PGNSP PGUID b f f 602 602 16 796 0 path_n_le - - )); -DESCR("less than or equal"); -DATA(insert OID = 796 ( ">=" PGNSP PGUID b f f 602 602 16 795 0 path_n_ge - - )); -DESCR("greater than or equal"); -DATA(insert OID = 797 ( "#" PGNSP PGUID l f f 0 602 23 0 0 path_npoints - - )); -DESCR("number of points"); -DATA(insert OID = 798 ( "?#" PGNSP PGUID b f f 602 602 16 0 0 path_inter - - )); -DESCR("intersect"); -DATA(insert OID = 799 ( "@-@" PGNSP PGUID l f f 0 602 701 0 0 path_length - - )); -DESCR("sum of path segment lengths"); -DATA(insert OID = 800 ( ">^" PGNSP PGUID b f f 603 603 16 0 0 box_above_eq positionsel positionjoinsel )); -DESCR("is above (allows touching)"); -DATA(insert OID = 801 ( "<^" PGNSP PGUID b f f 603 603 16 0 0 box_below_eq positionsel positionjoinsel )); -DESCR("is below (allows touching)"); -DATA(insert OID = 802 ( "?#" PGNSP PGUID b f f 603 603 16 0 0 box_overlap areasel areajoinsel )); -DESCR("deprecated, use && instead"); -DATA(insert OID = 803 ( "#" PGNSP PGUID b f f 603 603 603 0 0 box_intersect - - )); -DESCR("box intersection"); -DATA(insert OID = 804 ( "+" PGNSP PGUID b f f 603 600 603 0 0 box_add - - )); -DESCR("add point to box (translate)"); -DATA(insert OID = 805 ( "-" PGNSP PGUID b f f 603 600 603 0 0 box_sub - - )); -DESCR("subtract point from box (translate)"); -DATA(insert OID = 806 ( "*" PGNSP PGUID b f f 603 600 603 0 0 box_mul - - )); -DESCR("multiply box by point (scale)"); -DATA(insert OID = 807 ( "/" PGNSP PGUID b f f 603 600 603 0 0 box_div - - )); -DESCR("divide box by point (scale)"); -DATA(insert OID = 808 ( "?-" PGNSP PGUID b f f 600 600 16 808 0 point_horiz - - )); -DESCR("horizontally aligned"); -DATA(insert OID = 809 ( "?|" PGNSP PGUID b f f 600 600 16 809 0 point_vert - - )); -DESCR("vertically aligned"); - -DATA(insert OID = 811 ( "=" PGNSP PGUID b t f 704 704 16 811 812 tintervaleq eqsel eqjoinsel )); -DESCR("equal"); -DATA(insert OID = 812 ( "<>" PGNSP PGUID b f f 704 704 16 812 811 tintervalne neqsel neqjoinsel )); -DESCR("not equal"); -DATA(insert OID = 813 ( "<" PGNSP PGUID b f f 704 704 16 814 816 tintervallt scalarltsel scalarltjoinsel )); -DESCR("less than"); -DATA(insert OID = 814 ( ">" PGNSP PGUID b f f 704 704 16 813 815 tintervalgt scalargtsel scalargtjoinsel )); -DESCR("greater than"); -DATA(insert OID = 815 ( "<=" PGNSP PGUID b f f 704 704 16 816 814 tintervalle scalarlesel scalarlejoinsel )); -DESCR("less than or equal"); -DATA(insert OID = 816 ( ">=" PGNSP PGUID b f f 704 704 16 815 813 tintervalge scalargesel scalargejoinsel )); -DESCR("greater than or equal"); - -DATA(insert OID = 843 ( "*" PGNSP PGUID b f f 790 700 790 845 0 cash_mul_flt4 - - )); -DESCR("multiply"); -DATA(insert OID = 844 ( "/" PGNSP PGUID b f f 790 700 790 0 0 cash_div_flt4 - - )); -DESCR("divide"); -DATA(insert OID = 845 ( "*" PGNSP PGUID b f f 700 790 790 843 0 flt4_mul_cash - - )); -DESCR("multiply"); - -DATA(insert OID = 900 ( "=" PGNSP PGUID b t f 790 790 16 900 901 cash_eq eqsel eqjoinsel )); -DESCR("equal"); -DATA(insert OID = 901 ( "<>" PGNSP PGUID b f f 790 790 16 901 900 cash_ne neqsel neqjoinsel )); -DESCR("not equal"); -DATA(insert OID = 902 ( "<" PGNSP PGUID b f f 790 790 16 903 905 cash_lt scalarltsel scalarltjoinsel )); -DESCR("less than"); -DATA(insert OID = 903 ( ">" PGNSP PGUID b f f 790 790 16 902 904 cash_gt scalargtsel scalargtjoinsel )); -DESCR("greater than"); -DATA(insert OID = 904 ( "<=" PGNSP PGUID b f f 790 790 16 905 903 cash_le scalarlesel scalarlejoinsel )); -DESCR("less than or equal"); -DATA(insert OID = 905 ( ">=" PGNSP PGUID b f f 790 790 16 904 902 cash_ge scalargesel scalargejoinsel )); -DESCR("greater than or equal"); -DATA(insert OID = 906 ( "+" PGNSP PGUID b f f 790 790 790 906 0 cash_pl - - )); -DESCR("add"); -DATA(insert OID = 907 ( "-" PGNSP PGUID b f f 790 790 790 0 0 cash_mi - - )); -DESCR("subtract"); -DATA(insert OID = 908 ( "*" PGNSP PGUID b f f 790 701 790 916 0 cash_mul_flt8 - - )); -DESCR("multiply"); -DATA(insert OID = 909 ( "/" PGNSP PGUID b f f 790 701 790 0 0 cash_div_flt8 - - )); -DESCR("divide"); -DATA(insert OID = 3346 ( "*" PGNSP PGUID b f f 790 20 790 3349 0 cash_mul_int8 - - )); -DESCR("multiply"); -DATA(insert OID = 3347 ( "/" PGNSP PGUID b f f 790 20 790 0 0 cash_div_int8 - - )); -DESCR("divide"); -DATA(insert OID = 912 ( "*" PGNSP PGUID b f f 790 23 790 917 0 cash_mul_int4 - - )); -DESCR("multiply"); -DATA(insert OID = 913 ( "/" PGNSP PGUID b f f 790 23 790 0 0 cash_div_int4 - - )); -DESCR("divide"); -DATA(insert OID = 914 ( "*" PGNSP PGUID b f f 790 21 790 918 0 cash_mul_int2 - - )); -DESCR("multiply"); -DATA(insert OID = 915 ( "/" PGNSP PGUID b f f 790 21 790 0 0 cash_div_int2 - - )); -DESCR("divide"); -DATA(insert OID = 916 ( "*" PGNSP PGUID b f f 701 790 790 908 0 flt8_mul_cash - - )); -DESCR("multiply"); -DATA(insert OID = 3349 ( "*" PGNSP PGUID b f f 20 790 790 3346 0 int8_mul_cash - - )); -DESCR("multiply"); -DATA(insert OID = 917 ( "*" PGNSP PGUID b f f 23 790 790 912 0 int4_mul_cash - - )); -DESCR("multiply"); -DATA(insert OID = 918 ( "*" PGNSP PGUID b f f 21 790 790 914 0 int2_mul_cash - - )); -DESCR("multiply"); -DATA(insert OID = 3825 ( "/" PGNSP PGUID b f f 790 790 701 0 0 cash_div_cash - - )); -DESCR("divide"); - -DATA(insert OID = 965 ( "^" PGNSP PGUID b f f 701 701 701 0 0 dpow - - )); -DESCR("exponentiation"); -DATA(insert OID = 966 ( "+" PGNSP PGUID b f f 1034 1033 1034 0 0 aclinsert - - )); -DESCR("add/update ACL item"); -DATA(insert OID = 967 ( "-" PGNSP PGUID b f f 1034 1033 1034 0 0 aclremove - - )); -DESCR("remove ACL item"); -DATA(insert OID = 968 ( "@>" PGNSP PGUID b f f 1034 1033 16 0 0 aclcontains - - )); -DESCR("contains"); -DATA(insert OID = 974 ( "=" PGNSP PGUID b f t 1033 1033 16 974 0 aclitemeq eqsel eqjoinsel )); -DESCR("equal"); - -/* additional geometric operators - thomas 1997-07-09 */ -DATA(insert OID = 969 ( "@@" PGNSP PGUID l f f 0 601 600 0 0 lseg_center - - )); -DESCR("center of"); -DATA(insert OID = 970 ( "@@" PGNSP PGUID l f f 0 602 600 0 0 path_center - - )); -DESCR("center of"); -DATA(insert OID = 971 ( "@@" PGNSP PGUID l f f 0 604 600 0 0 poly_center - - )); -DESCR("center of"); - -DATA(insert OID = 1054 ( "=" PGNSP PGUID b t t 1042 1042 16 1054 1057 bpchareq eqsel eqjoinsel )); -DESCR("equal"); - -DATA(insert OID = 1055 ( "~" PGNSP PGUID b f f 1042 25 16 0 1056 bpcharregexeq regexeqsel regexeqjoinsel )); -DESCR("matches regular expression, case-sensitive"); -#define OID_BPCHAR_REGEXEQ_OP 1055 -DATA(insert OID = 1056 ( "!~" PGNSP PGUID b f f 1042 25 16 0 1055 bpcharregexne regexnesel regexnejoinsel )); -DESCR("does not match regular expression, case-sensitive"); -DATA(insert OID = 1057 ( "<>" PGNSP PGUID b f f 1042 1042 16 1057 1054 bpcharne neqsel neqjoinsel )); -DESCR("not equal"); -DATA(insert OID = 1058 ( "<" PGNSP PGUID b f f 1042 1042 16 1060 1061 bpcharlt scalarltsel scalarltjoinsel )); -DESCR("less than"); -DATA(insert OID = 1059 ( "<=" PGNSP PGUID b f f 1042 1042 16 1061 1060 bpcharle scalarlesel scalarlejoinsel )); -DESCR("less than or equal"); -DATA(insert OID = 1060 ( ">" PGNSP PGUID b f f 1042 1042 16 1058 1059 bpchargt scalargtsel scalargtjoinsel )); -DESCR("greater than"); -DATA(insert OID = 1061 ( ">=" PGNSP PGUID b f f 1042 1042 16 1059 1058 bpcharge scalargesel scalargejoinsel )); -DESCR("greater than or equal"); - -/* generic array comparison operators */ -DATA(insert OID = 1070 ( "=" PGNSP PGUID b t t 2277 2277 16 1070 1071 array_eq eqsel eqjoinsel )); -DESCR("equal"); -#define ARRAY_EQ_OP 1070 -DATA(insert OID = 1071 ( "<>" PGNSP PGUID b f f 2277 2277 16 1071 1070 array_ne neqsel neqjoinsel )); -DESCR("not equal"); -DATA(insert OID = 1072 ( "<" PGNSP PGUID b f f 2277 2277 16 1073 1075 array_lt scalarltsel scalarltjoinsel )); -DESCR("less than"); -#define ARRAY_LT_OP 1072 -DATA(insert OID = 1073 ( ">" PGNSP PGUID b f f 2277 2277 16 1072 1074 array_gt scalargtsel scalargtjoinsel )); -DESCR("greater than"); -#define ARRAY_GT_OP 1073 -DATA(insert OID = 1074 ( "<=" PGNSP PGUID b f f 2277 2277 16 1075 1073 array_le scalarlesel scalarlejoinsel )); -DESCR("less than or equal"); -DATA(insert OID = 1075 ( ">=" PGNSP PGUID b f f 2277 2277 16 1074 1072 array_ge scalargesel scalargejoinsel )); -DESCR("greater than or equal"); - -/* date operators */ -DATA(insert OID = 1076 ( "+" PGNSP PGUID b f f 1082 1186 1114 2551 0 date_pl_interval - - )); -DESCR("add"); -DATA(insert OID = 1077 ( "-" PGNSP PGUID b f f 1082 1186 1114 0 0 date_mi_interval - - )); -DESCR("subtract"); -DATA(insert OID = 1093 ( "=" PGNSP PGUID b t t 1082 1082 16 1093 1094 date_eq eqsel eqjoinsel )); -DESCR("equal"); -DATA(insert OID = 1094 ( "<>" PGNSP PGUID b f f 1082 1082 16 1094 1093 date_ne neqsel neqjoinsel )); -DESCR("not equal"); -DATA(insert OID = 1095 ( "<" PGNSP PGUID b f f 1082 1082 16 1097 1098 date_lt scalarltsel scalarltjoinsel )); -DESCR("less than"); -DATA(insert OID = 1096 ( "<=" PGNSP PGUID b f f 1082 1082 16 1098 1097 date_le scalarlesel scalarlejoinsel )); -DESCR("less than or equal"); -DATA(insert OID = 1097 ( ">" PGNSP PGUID b f f 1082 1082 16 1095 1096 date_gt scalargtsel scalargtjoinsel )); -DESCR("greater than"); -DATA(insert OID = 1098 ( ">=" PGNSP PGUID b f f 1082 1082 16 1096 1095 date_ge scalargesel scalargejoinsel )); -DESCR("greater than or equal"); -DATA(insert OID = 1099 ( "-" PGNSP PGUID b f f 1082 1082 23 0 0 date_mi - - )); -DESCR("subtract"); -DATA(insert OID = 1100 ( "+" PGNSP PGUID b f f 1082 23 1082 2555 0 date_pli - - )); -DESCR("add"); -DATA(insert OID = 1101 ( "-" PGNSP PGUID b f f 1082 23 1082 0 0 date_mii - - )); -DESCR("subtract"); - -/* time operators */ -DATA(insert OID = 1108 ( "=" PGNSP PGUID b t t 1083 1083 16 1108 1109 time_eq eqsel eqjoinsel )); -DESCR("equal"); -DATA(insert OID = 1109 ( "<>" PGNSP PGUID b f f 1083 1083 16 1109 1108 time_ne neqsel neqjoinsel )); -DESCR("not equal"); -DATA(insert OID = 1110 ( "<" PGNSP PGUID b f f 1083 1083 16 1112 1113 time_lt scalarltsel scalarltjoinsel )); -DESCR("less than"); -DATA(insert OID = 1111 ( "<=" PGNSP PGUID b f f 1083 1083 16 1113 1112 time_le scalarlesel scalarlejoinsel )); -DESCR("less than or equal"); -DATA(insert OID = 1112 ( ">" PGNSP PGUID b f f 1083 1083 16 1110 1111 time_gt scalargtsel scalargtjoinsel )); -DESCR("greater than"); -DATA(insert OID = 1113 ( ">=" PGNSP PGUID b f f 1083 1083 16 1111 1110 time_ge scalargesel scalargejoinsel )); -DESCR("greater than or equal"); - -/* timetz operators */ -DATA(insert OID = 1550 ( "=" PGNSP PGUID b t t 1266 1266 16 1550 1551 timetz_eq eqsel eqjoinsel )); -DESCR("equal"); -DATA(insert OID = 1551 ( "<>" PGNSP PGUID b f f 1266 1266 16 1551 1550 timetz_ne neqsel neqjoinsel )); -DESCR("not equal"); -DATA(insert OID = 1552 ( "<" PGNSP PGUID b f f 1266 1266 16 1554 1555 timetz_lt scalarltsel scalarltjoinsel )); -DESCR("less than"); -DATA(insert OID = 1553 ( "<=" PGNSP PGUID b f f 1266 1266 16 1555 1554 timetz_le scalarlesel scalarlejoinsel )); -DESCR("less than or equal"); -DATA(insert OID = 1554 ( ">" PGNSP PGUID b f f 1266 1266 16 1552 1553 timetz_gt scalargtsel scalargtjoinsel )); -DESCR("greater than"); -DATA(insert OID = 1555 ( ">=" PGNSP PGUID b f f 1266 1266 16 1553 1552 timetz_ge scalargesel scalargejoinsel )); -DESCR("greater than or equal"); - -/* float48 operators */ -DATA(insert OID = 1116 ( "+" PGNSP PGUID b f f 700 701 701 1126 0 float48pl - - )); -DESCR("add"); -DATA(insert OID = 1117 ( "-" PGNSP PGUID b f f 700 701 701 0 0 float48mi - - )); -DESCR("subtract"); -DATA(insert OID = 1118 ( "/" PGNSP PGUID b f f 700 701 701 0 0 float48div - - )); -DESCR("divide"); -DATA(insert OID = 1119 ( "*" PGNSP PGUID b f f 700 701 701 1129 0 float48mul - - )); -DESCR("multiply"); -DATA(insert OID = 1120 ( "=" PGNSP PGUID b t t 700 701 16 1130 1121 float48eq eqsel eqjoinsel )); -DESCR("equal"); -DATA(insert OID = 1121 ( "<>" PGNSP PGUID b f f 700 701 16 1131 1120 float48ne neqsel neqjoinsel )); -DESCR("not equal"); -DATA(insert OID = 1122 ( "<" PGNSP PGUID b f f 700 701 16 1133 1125 float48lt scalarltsel scalarltjoinsel )); -DESCR("less than"); -DATA(insert OID = 1123 ( ">" PGNSP PGUID b f f 700 701 16 1132 1124 float48gt scalargtsel scalargtjoinsel )); -DESCR("greater than"); -DATA(insert OID = 1124 ( "<=" PGNSP PGUID b f f 700 701 16 1135 1123 float48le scalarlesel scalarlejoinsel )); -DESCR("less than or equal"); -DATA(insert OID = 1125 ( ">=" PGNSP PGUID b f f 700 701 16 1134 1122 float48ge scalargesel scalargejoinsel )); -DESCR("greater than or equal"); - -/* float84 operators */ -DATA(insert OID = 1126 ( "+" PGNSP PGUID b f f 701 700 701 1116 0 float84pl - - )); -DESCR("add"); -DATA(insert OID = 1127 ( "-" PGNSP PGUID b f f 701 700 701 0 0 float84mi - - )); -DESCR("subtract"); -DATA(insert OID = 1128 ( "/" PGNSP PGUID b f f 701 700 701 0 0 float84div - - )); -DESCR("divide"); -DATA(insert OID = 1129 ( "*" PGNSP PGUID b f f 701 700 701 1119 0 float84mul - - )); -DESCR("multiply"); -DATA(insert OID = 1130 ( "=" PGNSP PGUID b t t 701 700 16 1120 1131 float84eq eqsel eqjoinsel )); -DESCR("equal"); -DATA(insert OID = 1131 ( "<>" PGNSP PGUID b f f 701 700 16 1121 1130 float84ne neqsel neqjoinsel )); -DESCR("not equal"); -DATA(insert OID = 1132 ( "<" PGNSP PGUID b f f 701 700 16 1123 1135 float84lt scalarltsel scalarltjoinsel )); -DESCR("less than"); -DATA(insert OID = 1133 ( ">" PGNSP PGUID b f f 701 700 16 1122 1134 float84gt scalargtsel scalargtjoinsel )); -DESCR("greater than"); -DATA(insert OID = 1134 ( "<=" PGNSP PGUID b f f 701 700 16 1125 1133 float84le scalarlesel scalarlejoinsel )); -DESCR("less than or equal"); -DATA(insert OID = 1135 ( ">=" PGNSP PGUID b f f 701 700 16 1124 1132 float84ge scalargesel scalargejoinsel )); -DESCR("greater than or equal"); - - -/* LIKE hacks by Keith Parks. */ -DATA(insert OID = 1207 ( "~~" PGNSP PGUID b f f 19 25 16 0 1208 namelike likesel likejoinsel )); -DESCR("matches LIKE expression"); -#define OID_NAME_LIKE_OP 1207 -DATA(insert OID = 1208 ( "!~~" PGNSP PGUID b f f 19 25 16 0 1207 namenlike nlikesel nlikejoinsel )); -DESCR("does not match LIKE expression"); -DATA(insert OID = 1209 ( "~~" PGNSP PGUID b f f 25 25 16 0 1210 textlike likesel likejoinsel )); -DESCR("matches LIKE expression"); -#define OID_TEXT_LIKE_OP 1209 -DATA(insert OID = 1210 ( "!~~" PGNSP PGUID b f f 25 25 16 0 1209 textnlike nlikesel nlikejoinsel )); -DESCR("does not match LIKE expression"); -DATA(insert OID = 1211 ( "~~" PGNSP PGUID b f f 1042 25 16 0 1212 bpcharlike likesel likejoinsel )); -DESCR("matches LIKE expression"); -#define OID_BPCHAR_LIKE_OP 1211 -DATA(insert OID = 1212 ( "!~~" PGNSP PGUID b f f 1042 25 16 0 1211 bpcharnlike nlikesel nlikejoinsel )); -DESCR("does not match LIKE expression"); - -/* case-insensitive regex hacks */ -DATA(insert OID = 1226 ( "~*" PGNSP PGUID b f f 19 25 16 0 1227 nameicregexeq icregexeqsel icregexeqjoinsel )); -DESCR("matches regular expression, case-insensitive"); -#define OID_NAME_ICREGEXEQ_OP 1226 -DATA(insert OID = 1227 ( "!~*" PGNSP PGUID b f f 19 25 16 0 1226 nameicregexne icregexnesel icregexnejoinsel )); -DESCR("does not match regular expression, case-insensitive"); -DATA(insert OID = 1228 ( "~*" PGNSP PGUID b f f 25 25 16 0 1229 texticregexeq icregexeqsel icregexeqjoinsel )); -DESCR("matches regular expression, case-insensitive"); -#define OID_TEXT_ICREGEXEQ_OP 1228 -DATA(insert OID = 1229 ( "!~*" PGNSP PGUID b f f 25 25 16 0 1228 texticregexne icregexnesel icregexnejoinsel )); -DESCR("does not match regular expression, case-insensitive"); -DATA(insert OID = 1234 ( "~*" PGNSP PGUID b f f 1042 25 16 0 1235 bpcharicregexeq icregexeqsel icregexeqjoinsel )); -DESCR("matches regular expression, case-insensitive"); -#define OID_BPCHAR_ICREGEXEQ_OP 1234 -DATA(insert OID = 1235 ( "!~*" PGNSP PGUID b f f 1042 25 16 0 1234 bpcharicregexne icregexnesel icregexnejoinsel )); -DESCR("does not match regular expression, case-insensitive"); - -/* timestamptz operators */ -DATA(insert OID = 1320 ( "=" PGNSP PGUID b t t 1184 1184 16 1320 1321 timestamptz_eq eqsel eqjoinsel )); -DESCR("equal"); -DATA(insert OID = 1321 ( "<>" PGNSP PGUID b f f 1184 1184 16 1321 1320 timestamptz_ne neqsel neqjoinsel )); -DESCR("not equal"); -DATA(insert OID = 1322 ( "<" PGNSP PGUID b f f 1184 1184 16 1324 1325 timestamptz_lt scalarltsel scalarltjoinsel )); -DESCR("less than"); -DATA(insert OID = 1323 ( "<=" PGNSP PGUID b f f 1184 1184 16 1325 1324 timestamptz_le scalarlesel scalarlejoinsel )); -DESCR("less than or equal"); -DATA(insert OID = 1324 ( ">" PGNSP PGUID b f f 1184 1184 16 1322 1323 timestamptz_gt scalargtsel scalargtjoinsel )); -DESCR("greater than"); -DATA(insert OID = 1325 ( ">=" PGNSP PGUID b f f 1184 1184 16 1323 1322 timestamptz_ge scalargesel scalargejoinsel )); -DESCR("greater than or equal"); -DATA(insert OID = 1327 ( "+" PGNSP PGUID b f f 1184 1186 1184 2554 0 timestamptz_pl_interval - - )); -DESCR("add"); -DATA(insert OID = 1328 ( "-" PGNSP PGUID b f f 1184 1184 1186 0 0 timestamptz_mi - - )); -DESCR("subtract"); -DATA(insert OID = 1329 ( "-" PGNSP PGUID b f f 1184 1186 1184 0 0 timestamptz_mi_interval - - )); -DESCR("subtract"); - -/* interval operators */ -DATA(insert OID = 1330 ( "=" PGNSP PGUID b t t 1186 1186 16 1330 1331 interval_eq eqsel eqjoinsel )); -DESCR("equal"); -DATA(insert OID = 1331 ( "<>" PGNSP PGUID b f f 1186 1186 16 1331 1330 interval_ne neqsel neqjoinsel )); -DESCR("not equal"); -DATA(insert OID = 1332 ( "<" PGNSP PGUID b f f 1186 1186 16 1334 1335 interval_lt scalarltsel scalarltjoinsel )); -DESCR("less than"); -DATA(insert OID = 1333 ( "<=" PGNSP PGUID b f f 1186 1186 16 1335 1334 interval_le scalarlesel scalarlejoinsel )); -DESCR("less than or equal"); -DATA(insert OID = 1334 ( ">" PGNSP PGUID b f f 1186 1186 16 1332 1333 interval_gt scalargtsel scalargtjoinsel )); -DESCR("greater than"); -DATA(insert OID = 1335 ( ">=" PGNSP PGUID b f f 1186 1186 16 1333 1332 interval_ge scalargesel scalargejoinsel )); -DESCR("greater than or equal"); - -DATA(insert OID = 1336 ( "-" PGNSP PGUID l f f 0 1186 1186 0 0 interval_um - - )); -DESCR("negate"); -DATA(insert OID = 1337 ( "+" PGNSP PGUID b f f 1186 1186 1186 1337 0 interval_pl - - )); -DESCR("add"); -DATA(insert OID = 1338 ( "-" PGNSP PGUID b f f 1186 1186 1186 0 0 interval_mi - - )); -DESCR("subtract"); - -DATA(insert OID = 1360 ( "+" PGNSP PGUID b f f 1082 1083 1114 1363 0 datetime_pl - - )); -DESCR("convert date and time to timestamp"); -DATA(insert OID = 1361 ( "+" PGNSP PGUID b f f 1082 1266 1184 1366 0 datetimetz_pl - - )); -DESCR("convert date and time with time zone to timestamp with time zone"); -DATA(insert OID = 1363 ( "+" PGNSP PGUID b f f 1083 1082 1114 1360 0 timedate_pl - - )); -DESCR("convert time and date to timestamp"); -DATA(insert OID = 1366 ( "+" PGNSP PGUID b f f 1266 1082 1184 1361 0 timetzdate_pl - - )); -DESCR("convert time with time zone and date to timestamp with time zone"); - -DATA(insert OID = 1399 ( "-" PGNSP PGUID b f f 1083 1083 1186 0 0 time_mi_time - - )); -DESCR("subtract"); - -/* additional geometric operators - thomas 97/04/18 */ -DATA(insert OID = 1420 ( "@@" PGNSP PGUID l f f 0 718 600 0 0 circle_center - - )); -DESCR("center of"); -DATA(insert OID = 1500 ( "=" PGNSP PGUID b f f 718 718 16 1500 1501 circle_eq eqsel eqjoinsel )); -DESCR("equal by area"); -DATA(insert OID = 1501 ( "<>" PGNSP PGUID b f f 718 718 16 1501 1500 circle_ne neqsel neqjoinsel )); -DESCR("not equal by area"); -DATA(insert OID = 1502 ( "<" PGNSP PGUID b f f 718 718 16 1503 1505 circle_lt areasel areajoinsel )); -DESCR("less than by area"); -DATA(insert OID = 1503 ( ">" PGNSP PGUID b f f 718 718 16 1502 1504 circle_gt areasel areajoinsel )); -DESCR("greater than by area"); -DATA(insert OID = 1504 ( "<=" PGNSP PGUID b f f 718 718 16 1505 1503 circle_le areasel areajoinsel )); -DESCR("less than or equal by area"); -DATA(insert OID = 1505 ( ">=" PGNSP PGUID b f f 718 718 16 1504 1502 circle_ge areasel areajoinsel )); -DESCR("greater than or equal by area"); - -DATA(insert OID = 1506 ( "<<" PGNSP PGUID b f f 718 718 16 0 0 circle_left positionsel positionjoinsel )); -DESCR("is left of"); -DATA(insert OID = 1507 ( "&<" PGNSP PGUID b f f 718 718 16 0 0 circle_overleft positionsel positionjoinsel )); -DESCR("overlaps or is left of"); -DATA(insert OID = 1508 ( "&>" PGNSP PGUID b f f 718 718 16 0 0 circle_overright positionsel positionjoinsel )); -DESCR("overlaps or is right of"); -DATA(insert OID = 1509 ( ">>" PGNSP PGUID b f f 718 718 16 0 0 circle_right positionsel positionjoinsel )); -DESCR("is right of"); -DATA(insert OID = 1510 ( "<@" PGNSP PGUID b f f 718 718 16 1511 0 circle_contained contsel contjoinsel )); -DESCR("is contained by"); -DATA(insert OID = 1511 ( "@>" PGNSP PGUID b f f 718 718 16 1510 0 circle_contain contsel contjoinsel )); -DESCR("contains"); -DATA(insert OID = 1512 ( "~=" PGNSP PGUID b f f 718 718 16 1512 0 circle_same eqsel eqjoinsel )); -DESCR("same as"); -DATA(insert OID = 1513 ( "&&" PGNSP PGUID b f f 718 718 16 1513 0 circle_overlap areasel areajoinsel )); -DESCR("overlaps"); -DATA(insert OID = 1514 ( "|>>" PGNSP PGUID b f f 718 718 16 0 0 circle_above positionsel positionjoinsel )); -DESCR("is above"); -DATA(insert OID = 1515 ( "<<|" PGNSP PGUID b f f 718 718 16 0 0 circle_below positionsel positionjoinsel )); -DESCR("is below"); - -DATA(insert OID = 1516 ( "+" PGNSP PGUID b f f 718 600 718 0 0 circle_add_pt - - )); -DESCR("add"); -DATA(insert OID = 1517 ( "-" PGNSP PGUID b f f 718 600 718 0 0 circle_sub_pt - - )); -DESCR("subtract"); -DATA(insert OID = 1518 ( "*" PGNSP PGUID b f f 718 600 718 0 0 circle_mul_pt - - )); -DESCR("multiply"); -DATA(insert OID = 1519 ( "/" PGNSP PGUID b f f 718 600 718 0 0 circle_div_pt - - )); -DESCR("divide"); - -DATA(insert OID = 1520 ( "<->" PGNSP PGUID b f f 718 718 701 1520 0 circle_distance - - )); -DESCR("distance between"); -DATA(insert OID = 1521 ( "#" PGNSP PGUID l f f 0 604 23 0 0 poly_npoints - - )); -DESCR("number of points"); -DATA(insert OID = 1522 ( "<->" PGNSP PGUID b f f 600 718 701 3291 0 dist_pc - - )); -DESCR("distance between"); -DATA(insert OID = 3291 ( "<->" PGNSP PGUID b f f 718 600 701 1522 0 dist_cpoint - - )); -DESCR("distance between"); -DATA(insert OID = 3276 ( "<->" PGNSP PGUID b f f 600 604 701 3289 0 dist_ppoly - - )); -DESCR("distance between"); -DATA(insert OID = 3289 ( "<->" PGNSP PGUID b f f 604 600 701 3276 0 dist_polyp - - )); -DESCR("distance between"); -DATA(insert OID = 1523 ( "<->" PGNSP PGUID b f f 718 604 701 0 0 dist_cpoly - - )); -DESCR("distance between"); - -/* additional geometric operators - thomas 1997-07-09 */ -DATA(insert OID = 1524 ( "<->" PGNSP PGUID b f f 628 603 701 0 0 dist_lb - - )); -DESCR("distance between"); - -DATA(insert OID = 1525 ( "?#" PGNSP PGUID b f f 601 601 16 1525 0 lseg_intersect - - )); -DESCR("intersect"); -DATA(insert OID = 1526 ( "?||" PGNSP PGUID b f f 601 601 16 1526 0 lseg_parallel - - )); -DESCR("parallel"); -DATA(insert OID = 1527 ( "?-|" PGNSP PGUID b f f 601 601 16 1527 0 lseg_perp - - )); -DESCR("perpendicular"); -DATA(insert OID = 1528 ( "?-" PGNSP PGUID l f f 0 601 16 0 0 lseg_horizontal - - )); -DESCR("horizontal"); -DATA(insert OID = 1529 ( "?|" PGNSP PGUID l f f 0 601 16 0 0 lseg_vertical - - )); -DESCR("vertical"); -DATA(insert OID = 1535 ( "=" PGNSP PGUID b f f 601 601 16 1535 1586 lseg_eq eqsel eqjoinsel )); -DESCR("equal"); -DATA(insert OID = 1536 ( "#" PGNSP PGUID b f f 601 601 600 1536 0 lseg_interpt - - )); -DESCR("intersection point"); -DATA(insert OID = 1537 ( "?#" PGNSP PGUID b f f 601 628 16 0 0 inter_sl - - )); -DESCR("intersect"); -DATA(insert OID = 1538 ( "?#" PGNSP PGUID b f f 601 603 16 0 0 inter_sb - - )); -DESCR("intersect"); -DATA(insert OID = 1539 ( "?#" PGNSP PGUID b f f 628 603 16 0 0 inter_lb - - )); -DESCR("intersect"); - -DATA(insert OID = 1546 ( "<@" PGNSP PGUID b f f 600 628 16 0 0 on_pl - - )); -DESCR("point on line"); -DATA(insert OID = 1547 ( "<@" PGNSP PGUID b f f 600 601 16 0 0 on_ps - - )); -DESCR("is contained by"); -DATA(insert OID = 1548 ( "<@" PGNSP PGUID b f f 601 628 16 0 0 on_sl - - )); -DESCR("lseg on line"); -DATA(insert OID = 1549 ( "<@" PGNSP PGUID b f f 601 603 16 0 0 on_sb - - )); -DESCR("is contained by"); - -DATA(insert OID = 1557 ( "##" PGNSP PGUID b f f 600 628 600 0 0 close_pl - - )); -DESCR("closest point to A on B"); -DATA(insert OID = 1558 ( "##" PGNSP PGUID b f f 600 601 600 0 0 close_ps - - )); -DESCR("closest point to A on B"); -DATA(insert OID = 1559 ( "##" PGNSP PGUID b f f 600 603 600 0 0 close_pb - - )); -DESCR("closest point to A on B"); - -DATA(insert OID = 1566 ( "##" PGNSP PGUID b f f 601 628 600 0 0 close_sl - - )); -DESCR("closest point to A on B"); -DATA(insert OID = 1567 ( "##" PGNSP PGUID b f f 601 603 600 0 0 close_sb - - )); -DESCR("closest point to A on B"); -DATA(insert OID = 1568 ( "##" PGNSP PGUID b f f 628 603 600 0 0 close_lb - - )); -DESCR("closest point to A on B"); -DATA(insert OID = 1577 ( "##" PGNSP PGUID b f f 628 601 600 0 0 close_ls - - )); -DESCR("closest point to A on B"); -DATA(insert OID = 1578 ( "##" PGNSP PGUID b f f 601 601 600 0 0 close_lseg - - )); -DESCR("closest point to A on B"); -DATA(insert OID = 1583 ( "*" PGNSP PGUID b f f 1186 701 1186 1584 0 interval_mul - - )); -DESCR("multiply"); -DATA(insert OID = 1584 ( "*" PGNSP PGUID b f f 701 1186 1186 1583 0 mul_d_interval - - )); -DESCR("multiply"); -DATA(insert OID = 1585 ( "/" PGNSP PGUID b f f 1186 701 1186 0 0 interval_div - - )); -DESCR("divide"); - -DATA(insert OID = 1586 ( "<>" PGNSP PGUID b f f 601 601 16 1586 1535 lseg_ne neqsel neqjoinsel )); -DESCR("not equal"); -DATA(insert OID = 1587 ( "<" PGNSP PGUID b f f 601 601 16 1589 1590 lseg_lt - - )); -DESCR("less than by length"); -DATA(insert OID = 1588 ( "<=" PGNSP PGUID b f f 601 601 16 1590 1589 lseg_le - - )); -DESCR("less than or equal by length"); -DATA(insert OID = 1589 ( ">" PGNSP PGUID b f f 601 601 16 1587 1588 lseg_gt - - )); -DESCR("greater than by length"); -DATA(insert OID = 1590 ( ">=" PGNSP PGUID b f f 601 601 16 1588 1587 lseg_ge - - )); -DESCR("greater than or equal by length"); - -DATA(insert OID = 1591 ( "@-@" PGNSP PGUID l f f 0 601 701 0 0 lseg_length - - )); -DESCR("distance between endpoints"); - -DATA(insert OID = 1611 ( "?#" PGNSP PGUID b f f 628 628 16 1611 0 line_intersect - - )); -DESCR("intersect"); -DATA(insert OID = 1612 ( "?||" PGNSP PGUID b f f 628 628 16 1612 0 line_parallel - - )); -DESCR("parallel"); -DATA(insert OID = 1613 ( "?-|" PGNSP PGUID b f f 628 628 16 1613 0 line_perp - - )); -DESCR("perpendicular"); -DATA(insert OID = 1614 ( "?-" PGNSP PGUID l f f 0 628 16 0 0 line_horizontal - - )); -DESCR("horizontal"); -DATA(insert OID = 1615 ( "?|" PGNSP PGUID l f f 0 628 16 0 0 line_vertical - - )); -DESCR("vertical"); -DATA(insert OID = 1616 ( "=" PGNSP PGUID b f f 628 628 16 1616 0 line_eq eqsel eqjoinsel )); -DESCR("equal"); -DATA(insert OID = 1617 ( "#" PGNSP PGUID b f f 628 628 600 1617 0 line_interpt - - )); -DESCR("intersection point"); - -/* MACADDR type */ -DATA(insert OID = 1220 ( "=" PGNSP PGUID b t t 829 829 16 1220 1221 macaddr_eq eqsel eqjoinsel )); -DESCR("equal"); -DATA(insert OID = 1221 ( "<>" PGNSP PGUID b f f 829 829 16 1221 1220 macaddr_ne neqsel neqjoinsel )); -DESCR("not equal"); -DATA(insert OID = 1222 ( "<" PGNSP PGUID b f f 829 829 16 1224 1225 macaddr_lt scalarltsel scalarltjoinsel )); -DESCR("less than"); -DATA(insert OID = 1223 ( "<=" PGNSP PGUID b f f 829 829 16 1225 1224 macaddr_le scalarlesel scalarlejoinsel )); -DESCR("less than or equal"); -DATA(insert OID = 1224 ( ">" PGNSP PGUID b f f 829 829 16 1222 1223 macaddr_gt scalargtsel scalargtjoinsel )); -DESCR("greater than"); -DATA(insert OID = 1225 ( ">=" PGNSP PGUID b f f 829 829 16 1223 1222 macaddr_ge scalargesel scalargejoinsel )); -DESCR("greater than or equal"); - -DATA(insert OID = 3147 ( "~" PGNSP PGUID l f f 0 829 829 0 0 macaddr_not - - )); -DESCR("bitwise not"); -DATA(insert OID = 3148 ( "&" PGNSP PGUID b f f 829 829 829 0 0 macaddr_and - - )); -DESCR("bitwise and"); -DATA(insert OID = 3149 ( "|" PGNSP PGUID b f f 829 829 829 0 0 macaddr_or - - )); -DESCR("bitwise or"); - -/* MACADDR8 type */ -DATA(insert OID = 3362 ( "=" PGNSP PGUID b t t 774 774 16 3362 3363 macaddr8_eq eqsel eqjoinsel )); -DESCR("equal"); -DATA(insert OID = 3363 ( "<>" PGNSP PGUID b f f 774 774 16 3363 3362 macaddr8_ne neqsel neqjoinsel )); -DESCR("not equal"); -DATA(insert OID = 3364 ( "<" PGNSP PGUID b f f 774 774 16 3366 3367 macaddr8_lt scalarltsel scalarltjoinsel )); -DESCR("less than"); -DATA(insert OID = 3365 ( "<=" PGNSP PGUID b f f 774 774 16 3367 3366 macaddr8_le scalarlesel scalarlejoinsel )); -DESCR("less than or equal"); -DATA(insert OID = 3366 ( ">" PGNSP PGUID b f f 774 774 16 3364 3365 macaddr8_gt scalargtsel scalargtjoinsel )); -DESCR("greater than"); -DATA(insert OID = 3367 ( ">=" PGNSP PGUID b f f 774 774 16 3365 3364 macaddr8_ge scalargesel scalargejoinsel )); -DESCR("greater than or equal"); - -DATA(insert OID = 3368 ( "~" PGNSP PGUID l f f 0 774 774 0 0 macaddr8_not - - )); -DESCR("bitwise not"); -DATA(insert OID = 3369 ( "&" PGNSP PGUID b f f 774 774 774 0 0 macaddr8_and - - )); -DESCR("bitwise and"); -DATA(insert OID = 3370 ( "|" PGNSP PGUID b f f 774 774 774 0 0 macaddr8_or - - )); -DESCR("bitwise or"); - -/* INET type (these also support CIDR via implicit cast) */ -DATA(insert OID = 1201 ( "=" PGNSP PGUID b t t 869 869 16 1201 1202 network_eq eqsel eqjoinsel )); -DESCR("equal"); -DATA(insert OID = 1202 ( "<>" PGNSP PGUID b f f 869 869 16 1202 1201 network_ne neqsel neqjoinsel )); -DESCR("not equal"); -DATA(insert OID = 1203 ( "<" PGNSP PGUID b f f 869 869 16 1205 1206 network_lt scalarltsel scalarltjoinsel )); -DESCR("less than"); -DATA(insert OID = 1204 ( "<=" PGNSP PGUID b f f 869 869 16 1206 1205 network_le scalarlesel scalarlejoinsel )); -DESCR("less than or equal"); -DATA(insert OID = 1205 ( ">" PGNSP PGUID b f f 869 869 16 1203 1204 network_gt scalargtsel scalargtjoinsel )); -DESCR("greater than"); -DATA(insert OID = 1206 ( ">=" PGNSP PGUID b f f 869 869 16 1204 1203 network_ge scalargesel scalargejoinsel )); -DESCR("greater than or equal"); -DATA(insert OID = 931 ( "<<" PGNSP PGUID b f f 869 869 16 933 0 network_sub networksel networkjoinsel )); -DESCR("is subnet"); -#define OID_INET_SUB_OP 931 -DATA(insert OID = 932 ( "<<=" PGNSP PGUID b f f 869 869 16 934 0 network_subeq networksel networkjoinsel )); -DESCR("is subnet or equal"); -#define OID_INET_SUBEQ_OP 932 -DATA(insert OID = 933 ( ">>" PGNSP PGUID b f f 869 869 16 931 0 network_sup networksel networkjoinsel )); -DESCR("is supernet"); -#define OID_INET_SUP_OP 933 -DATA(insert OID = 934 ( ">>=" PGNSP PGUID b f f 869 869 16 932 0 network_supeq networksel networkjoinsel )); -DESCR("is supernet or equal"); -#define OID_INET_SUPEQ_OP 934 -DATA(insert OID = 3552 ( "&&" PGNSP PGUID b f f 869 869 16 3552 0 network_overlap networksel networkjoinsel )); -DESCR("overlaps (is subnet or supernet)"); -#define OID_INET_OVERLAP_OP 3552 - -DATA(insert OID = 2634 ( "~" PGNSP PGUID l f f 0 869 869 0 0 inetnot - - )); -DESCR("bitwise not"); -DATA(insert OID = 2635 ( "&" PGNSP PGUID b f f 869 869 869 0 0 inetand - - )); -DESCR("bitwise and"); -DATA(insert OID = 2636 ( "|" PGNSP PGUID b f f 869 869 869 0 0 inetor - - )); -DESCR("bitwise or"); -DATA(insert OID = 2637 ( "+" PGNSP PGUID b f f 869 20 869 2638 0 inetpl - - )); -DESCR("add"); -DATA(insert OID = 2638 ( "+" PGNSP PGUID b f f 20 869 869 2637 0 int8pl_inet - - )); -DESCR("add"); -DATA(insert OID = 2639 ( "-" PGNSP PGUID b f f 869 20 869 0 0 inetmi_int8 - - )); -DESCR("subtract"); -DATA(insert OID = 2640 ( "-" PGNSP PGUID b f f 869 869 20 0 0 inetmi - - )); -DESCR("subtract"); - -/* case-insensitive LIKE hacks */ -DATA(insert OID = 1625 ( "~~*" PGNSP PGUID b f f 19 25 16 0 1626 nameiclike iclikesel iclikejoinsel )); -DESCR("matches LIKE expression, case-insensitive"); -#define OID_NAME_ICLIKE_OP 1625 -DATA(insert OID = 1626 ( "!~~*" PGNSP PGUID b f f 19 25 16 0 1625 nameicnlike icnlikesel icnlikejoinsel )); -DESCR("does not match LIKE expression, case-insensitive"); -DATA(insert OID = 1627 ( "~~*" PGNSP PGUID b f f 25 25 16 0 1628 texticlike iclikesel iclikejoinsel )); -DESCR("matches LIKE expression, case-insensitive"); -#define OID_TEXT_ICLIKE_OP 1627 -DATA(insert OID = 1628 ( "!~~*" PGNSP PGUID b f f 25 25 16 0 1627 texticnlike icnlikesel icnlikejoinsel )); -DESCR("does not match LIKE expression, case-insensitive"); -DATA(insert OID = 1629 ( "~~*" PGNSP PGUID b f f 1042 25 16 0 1630 bpchariclike iclikesel iclikejoinsel )); -DESCR("matches LIKE expression, case-insensitive"); -#define OID_BPCHAR_ICLIKE_OP 1629 -DATA(insert OID = 1630 ( "!~~*" PGNSP PGUID b f f 1042 25 16 0 1629 bpcharicnlike icnlikesel icnlikejoinsel )); -DESCR("does not match LIKE expression, case-insensitive"); - -/* NUMERIC type - OID's 1700-1799 */ -DATA(insert OID = 1751 ( "-" PGNSP PGUID l f f 0 1700 1700 0 0 numeric_uminus - - )); -DESCR("negate"); -DATA(insert OID = 1752 ( "=" PGNSP PGUID b t t 1700 1700 16 1752 1753 numeric_eq eqsel eqjoinsel )); -DESCR("equal"); -DATA(insert OID = 1753 ( "<>" PGNSP PGUID b f f 1700 1700 16 1753 1752 numeric_ne neqsel neqjoinsel )); -DESCR("not equal"); -DATA(insert OID = 1754 ( "<" PGNSP PGUID b f f 1700 1700 16 1756 1757 numeric_lt scalarltsel scalarltjoinsel )); -DESCR("less than"); -DATA(insert OID = 1755 ( "<=" PGNSP PGUID b f f 1700 1700 16 1757 1756 numeric_le scalarlesel scalarlejoinsel )); -DESCR("less than or equal"); -DATA(insert OID = 1756 ( ">" PGNSP PGUID b f f 1700 1700 16 1754 1755 numeric_gt scalargtsel scalargtjoinsel )); -DESCR("greater than"); -DATA(insert OID = 1757 ( ">=" PGNSP PGUID b f f 1700 1700 16 1755 1754 numeric_ge scalargesel scalargejoinsel )); -DESCR("greater than or equal"); -DATA(insert OID = 1758 ( "+" PGNSP PGUID b f f 1700 1700 1700 1758 0 numeric_add - - )); -DESCR("add"); -DATA(insert OID = 1759 ( "-" PGNSP PGUID b f f 1700 1700 1700 0 0 numeric_sub - - )); -DESCR("subtract"); -DATA(insert OID = 1760 ( "*" PGNSP PGUID b f f 1700 1700 1700 1760 0 numeric_mul - - )); -DESCR("multiply"); -DATA(insert OID = 1761 ( "/" PGNSP PGUID b f f 1700 1700 1700 0 0 numeric_div - - )); -DESCR("divide"); -DATA(insert OID = 1762 ( "%" PGNSP PGUID b f f 1700 1700 1700 0 0 numeric_mod - - )); -DESCR("modulus"); -DATA(insert OID = 1038 ( "^" PGNSP PGUID b f f 1700 1700 1700 0 0 numeric_power - - )); -DESCR("exponentiation"); -DATA(insert OID = 1763 ( "@" PGNSP PGUID l f f 0 1700 1700 0 0 numeric_abs - - )); -DESCR("absolute value"); - -DATA(insert OID = 1784 ( "=" PGNSP PGUID b t f 1560 1560 16 1784 1785 biteq eqsel eqjoinsel )); -DESCR("equal"); -DATA(insert OID = 1785 ( "<>" PGNSP PGUID b f f 1560 1560 16 1785 1784 bitne neqsel neqjoinsel )); -DESCR("not equal"); -DATA(insert OID = 1786 ( "<" PGNSP PGUID b f f 1560 1560 16 1787 1789 bitlt scalarltsel scalarltjoinsel )); -DESCR("less than"); -DATA(insert OID = 1787 ( ">" PGNSP PGUID b f f 1560 1560 16 1786 1788 bitgt scalargtsel scalargtjoinsel )); -DESCR("greater than"); -DATA(insert OID = 1788 ( "<=" PGNSP PGUID b f f 1560 1560 16 1789 1787 bitle scalarlesel scalarlejoinsel )); -DESCR("less than or equal"); -DATA(insert OID = 1789 ( ">=" PGNSP PGUID b f f 1560 1560 16 1788 1786 bitge scalargesel scalargejoinsel )); -DESCR("greater than or equal"); -DATA(insert OID = 1791 ( "&" PGNSP PGUID b f f 1560 1560 1560 1791 0 bitand - - )); -DESCR("bitwise and"); -DATA(insert OID = 1792 ( "|" PGNSP PGUID b f f 1560 1560 1560 1792 0 bitor - - )); -DESCR("bitwise or"); -DATA(insert OID = 1793 ( "#" PGNSP PGUID b f f 1560 1560 1560 1793 0 bitxor - - )); -DESCR("bitwise exclusive or"); -DATA(insert OID = 1794 ( "~" PGNSP PGUID l f f 0 1560 1560 0 0 bitnot - - )); -DESCR("bitwise not"); -DATA(insert OID = 1795 ( "<<" PGNSP PGUID b f f 1560 23 1560 0 0 bitshiftleft - - )); -DESCR("bitwise shift left"); -DATA(insert OID = 1796 ( ">>" PGNSP PGUID b f f 1560 23 1560 0 0 bitshiftright - - )); -DESCR("bitwise shift right"); -DATA(insert OID = 1797 ( "||" PGNSP PGUID b f f 1562 1562 1562 0 0 bitcat - - )); -DESCR("concatenate"); - -DATA(insert OID = 1800 ( "+" PGNSP PGUID b f f 1083 1186 1083 1849 0 time_pl_interval - - )); -DESCR("add"); -DATA(insert OID = 1801 ( "-" PGNSP PGUID b f f 1083 1186 1083 0 0 time_mi_interval - - )); -DESCR("subtract"); -DATA(insert OID = 1802 ( "+" PGNSP PGUID b f f 1266 1186 1266 2552 0 timetz_pl_interval - - )); -DESCR("add"); -DATA(insert OID = 1803 ( "-" PGNSP PGUID b f f 1266 1186 1266 0 0 timetz_mi_interval - - )); -DESCR("subtract"); - -DATA(insert OID = 1804 ( "=" PGNSP PGUID b t f 1562 1562 16 1804 1805 varbiteq eqsel eqjoinsel )); -DESCR("equal"); -DATA(insert OID = 1805 ( "<>" PGNSP PGUID b f f 1562 1562 16 1805 1804 varbitne neqsel neqjoinsel )); -DESCR("not equal"); -DATA(insert OID = 1806 ( "<" PGNSP PGUID b f f 1562 1562 16 1807 1809 varbitlt scalarltsel scalarltjoinsel )); -DESCR("less than"); -DATA(insert OID = 1807 ( ">" PGNSP PGUID b f f 1562 1562 16 1806 1808 varbitgt scalargtsel scalargtjoinsel )); -DESCR("greater than"); -DATA(insert OID = 1808 ( "<=" PGNSP PGUID b f f 1562 1562 16 1809 1807 varbitle scalarlesel scalarlejoinsel )); -DESCR("less than or equal"); -DATA(insert OID = 1809 ( ">=" PGNSP PGUID b f f 1562 1562 16 1808 1806 varbitge scalargesel scalargejoinsel )); -DESCR("greater than or equal"); - -DATA(insert OID = 1849 ( "+" PGNSP PGUID b f f 1186 1083 1083 1800 0 interval_pl_time - - )); -DESCR("add"); - -DATA(insert OID = 1862 ( "=" PGNSP PGUID b t t 21 20 16 1868 1863 int28eq eqsel eqjoinsel )); -DESCR("equal"); -DATA(insert OID = 1863 ( "<>" PGNSP PGUID b f f 21 20 16 1869 1862 int28ne neqsel neqjoinsel )); -DESCR("not equal"); -DATA(insert OID = 1864 ( "<" PGNSP PGUID b f f 21 20 16 1871 1867 int28lt scalarltsel scalarltjoinsel )); -DESCR("less than"); -DATA(insert OID = 1865 ( ">" PGNSP PGUID b f f 21 20 16 1870 1866 int28gt scalargtsel scalargtjoinsel )); -DESCR("greater than"); -DATA(insert OID = 1866 ( "<=" PGNSP PGUID b f f 21 20 16 1873 1865 int28le scalarlesel scalarlejoinsel )); -DESCR("less than or equal"); -DATA(insert OID = 1867 ( ">=" PGNSP PGUID b f f 21 20 16 1872 1864 int28ge scalargesel scalargejoinsel )); -DESCR("greater than or equal"); - -DATA(insert OID = 1868 ( "=" PGNSP PGUID b t t 20 21 16 1862 1869 int82eq eqsel eqjoinsel )); -DESCR("equal"); -DATA(insert OID = 1869 ( "<>" PGNSP PGUID b f f 20 21 16 1863 1868 int82ne neqsel neqjoinsel )); -DESCR("not equal"); -DATA(insert OID = 1870 ( "<" PGNSP PGUID b f f 20 21 16 1865 1873 int82lt scalarltsel scalarltjoinsel )); -DESCR("less than"); -DATA(insert OID = 1871 ( ">" PGNSP PGUID b f f 20 21 16 1864 1872 int82gt scalargtsel scalargtjoinsel )); -DESCR("greater than"); -DATA(insert OID = 1872 ( "<=" PGNSP PGUID b f f 20 21 16 1867 1871 int82le scalarlesel scalarlejoinsel )); -DESCR("less than or equal"); -DATA(insert OID = 1873 ( ">=" PGNSP PGUID b f f 20 21 16 1866 1870 int82ge scalargesel scalargejoinsel )); -DESCR("greater than or equal"); - -DATA(insert OID = 1874 ( "&" PGNSP PGUID b f f 21 21 21 1874 0 int2and - - )); -DESCR("bitwise and"); -DATA(insert OID = 1875 ( "|" PGNSP PGUID b f f 21 21 21 1875 0 int2or - - )); -DESCR("bitwise or"); -DATA(insert OID = 1876 ( "#" PGNSP PGUID b f f 21 21 21 1876 0 int2xor - - )); -DESCR("bitwise exclusive or"); -DATA(insert OID = 1877 ( "~" PGNSP PGUID l f f 0 21 21 0 0 int2not - - )); -DESCR("bitwise not"); -DATA(insert OID = 1878 ( "<<" PGNSP PGUID b f f 21 23 21 0 0 int2shl - - )); -DESCR("bitwise shift left"); -DATA(insert OID = 1879 ( ">>" PGNSP PGUID b f f 21 23 21 0 0 int2shr - - )); -DESCR("bitwise shift right"); - -DATA(insert OID = 1880 ( "&" PGNSP PGUID b f f 23 23 23 1880 0 int4and - - )); -DESCR("bitwise and"); -DATA(insert OID = 1881 ( "|" PGNSP PGUID b f f 23 23 23 1881 0 int4or - - )); -DESCR("bitwise or"); -DATA(insert OID = 1882 ( "#" PGNSP PGUID b f f 23 23 23 1882 0 int4xor - - )); -DESCR("bitwise exclusive or"); -DATA(insert OID = 1883 ( "~" PGNSP PGUID l f f 0 23 23 0 0 int4not - - )); -DESCR("bitwise not"); -DATA(insert OID = 1884 ( "<<" PGNSP PGUID b f f 23 23 23 0 0 int4shl - - )); -DESCR("bitwise shift left"); -DATA(insert OID = 1885 ( ">>" PGNSP PGUID b f f 23 23 23 0 0 int4shr - - )); -DESCR("bitwise shift right"); - -DATA(insert OID = 1886 ( "&" PGNSP PGUID b f f 20 20 20 1886 0 int8and - - )); -DESCR("bitwise and"); -DATA(insert OID = 1887 ( "|" PGNSP PGUID b f f 20 20 20 1887 0 int8or - - )); -DESCR("bitwise or"); -DATA(insert OID = 1888 ( "#" PGNSP PGUID b f f 20 20 20 1888 0 int8xor - - )); -DESCR("bitwise exclusive or"); -DATA(insert OID = 1889 ( "~" PGNSP PGUID l f f 0 20 20 0 0 int8not - - )); -DESCR("bitwise not"); -DATA(insert OID = 1890 ( "<<" PGNSP PGUID b f f 20 23 20 0 0 int8shl - - )); -DESCR("bitwise shift left"); -DATA(insert OID = 1891 ( ">>" PGNSP PGUID b f f 20 23 20 0 0 int8shr - - )); -DESCR("bitwise shift right"); - -DATA(insert OID = 1916 ( "+" PGNSP PGUID l f f 0 20 20 0 0 int8up - - )); -DESCR("unary plus"); -DATA(insert OID = 1917 ( "+" PGNSP PGUID l f f 0 21 21 0 0 int2up - - )); -DESCR("unary plus"); -DATA(insert OID = 1918 ( "+" PGNSP PGUID l f f 0 23 23 0 0 int4up - - )); -DESCR("unary plus"); -DATA(insert OID = 1919 ( "+" PGNSP PGUID l f f 0 700 700 0 0 float4up - - )); -DESCR("unary plus"); -DATA(insert OID = 1920 ( "+" PGNSP PGUID l f f 0 701 701 0 0 float8up - - )); -DESCR("unary plus"); -DATA(insert OID = 1921 ( "+" PGNSP PGUID l f f 0 1700 1700 0 0 numeric_uplus - - )); -DESCR("unary plus"); - -/* bytea operators */ -DATA(insert OID = 1955 ( "=" PGNSP PGUID b t t 17 17 16 1955 1956 byteaeq eqsel eqjoinsel )); -DESCR("equal"); -DATA(insert OID = 1956 ( "<>" PGNSP PGUID b f f 17 17 16 1956 1955 byteane neqsel neqjoinsel )); -DESCR("not equal"); -DATA(insert OID = 1957 ( "<" PGNSP PGUID b f f 17 17 16 1959 1960 bytealt scalarltsel scalarltjoinsel )); -DESCR("less than"); -DATA(insert OID = 1958 ( "<=" PGNSP PGUID b f f 17 17 16 1960 1959 byteale scalarlesel scalarlejoinsel )); -DESCR("less than or equal"); -DATA(insert OID = 1959 ( ">" PGNSP PGUID b f f 17 17 16 1957 1958 byteagt scalargtsel scalargtjoinsel )); -DESCR("greater than"); -DATA(insert OID = 1960 ( ">=" PGNSP PGUID b f f 17 17 16 1958 1957 byteage scalargesel scalargejoinsel )); -DESCR("greater than or equal"); - -DATA(insert OID = 2016 ( "~~" PGNSP PGUID b f f 17 17 16 0 2017 bytealike likesel likejoinsel )); -DESCR("matches LIKE expression"); -#define OID_BYTEA_LIKE_OP 2016 -DATA(insert OID = 2017 ( "!~~" PGNSP PGUID b f f 17 17 16 0 2016 byteanlike nlikesel nlikejoinsel )); -DESCR("does not match LIKE expression"); -DATA(insert OID = 2018 ( "||" PGNSP PGUID b f f 17 17 17 0 0 byteacat - - )); -DESCR("concatenate"); - -/* timestamp operators */ -DATA(insert OID = 2060 ( "=" PGNSP PGUID b t t 1114 1114 16 2060 2061 timestamp_eq eqsel eqjoinsel )); -DESCR("equal"); -DATA(insert OID = 2061 ( "<>" PGNSP PGUID b f f 1114 1114 16 2061 2060 timestamp_ne neqsel neqjoinsel )); -DESCR("not equal"); -DATA(insert OID = 2062 ( "<" PGNSP PGUID b f f 1114 1114 16 2064 2065 timestamp_lt scalarltsel scalarltjoinsel )); -DESCR("less than"); -DATA(insert OID = 2063 ( "<=" PGNSP PGUID b f f 1114 1114 16 2065 2064 timestamp_le scalarlesel scalarlejoinsel )); -DESCR("less than or equal"); -DATA(insert OID = 2064 ( ">" PGNSP PGUID b f f 1114 1114 16 2062 2063 timestamp_gt scalargtsel scalargtjoinsel )); -DESCR("greater than"); -DATA(insert OID = 2065 ( ">=" PGNSP PGUID b f f 1114 1114 16 2063 2062 timestamp_ge scalargesel scalargejoinsel )); -DESCR("greater than or equal"); -DATA(insert OID = 2066 ( "+" PGNSP PGUID b f f 1114 1186 1114 2553 0 timestamp_pl_interval - - )); -DESCR("add"); -DATA(insert OID = 2067 ( "-" PGNSP PGUID b f f 1114 1114 1186 0 0 timestamp_mi - - )); -DESCR("subtract"); -DATA(insert OID = 2068 ( "-" PGNSP PGUID b f f 1114 1186 1114 0 0 timestamp_mi_interval - - )); -DESCR("subtract"); - -/* character-by-character (not collation order) comparison operators for character types */ - -DATA(insert OID = 2314 ( "~<~" PGNSP PGUID b f f 25 25 16 2318 2317 text_pattern_lt scalarltsel scalarltjoinsel )); -DESCR("less than"); -DATA(insert OID = 2315 ( "~<=~" PGNSP PGUID b f f 25 25 16 2317 2318 text_pattern_le scalarlesel scalarlejoinsel )); -DESCR("less than or equal"); -DATA(insert OID = 2317 ( "~>=~" PGNSP PGUID b f f 25 25 16 2315 2314 text_pattern_ge scalargesel scalargejoinsel )); -DESCR("greater than or equal"); -DATA(insert OID = 2318 ( "~>~" PGNSP PGUID b f f 25 25 16 2314 2315 text_pattern_gt scalargtsel scalargtjoinsel )); -DESCR("greater than"); - -DATA(insert OID = 2326 ( "~<~" PGNSP PGUID b f f 1042 1042 16 2330 2329 bpchar_pattern_lt scalarltsel scalarltjoinsel )); -DESCR("less than"); -DATA(insert OID = 2327 ( "~<=~" PGNSP PGUID b f f 1042 1042 16 2329 2330 bpchar_pattern_le scalarlesel scalarlejoinsel )); -DESCR("less than or equal"); -DATA(insert OID = 2329 ( "~>=~" PGNSP PGUID b f f 1042 1042 16 2327 2326 bpchar_pattern_ge scalargesel scalargejoinsel )); -DESCR("greater than or equal"); -DATA(insert OID = 2330 ( "~>~" PGNSP PGUID b f f 1042 1042 16 2326 2327 bpchar_pattern_gt scalargtsel scalargtjoinsel )); -DESCR("greater than"); - -/* crosstype operations for date vs. timestamp and timestamptz */ - -DATA(insert OID = 2345 ( "<" PGNSP PGUID b f f 1082 1114 16 2375 2348 date_lt_timestamp scalarltsel scalarltjoinsel )); -DESCR("less than"); -DATA(insert OID = 2346 ( "<=" PGNSP PGUID b f f 1082 1114 16 2374 2349 date_le_timestamp scalarlesel scalarlejoinsel )); -DESCR("less than or equal"); -DATA(insert OID = 2347 ( "=" PGNSP PGUID b t f 1082 1114 16 2373 2350 date_eq_timestamp eqsel eqjoinsel )); -DESCR("equal"); -DATA(insert OID = 2348 ( ">=" PGNSP PGUID b f f 1082 1114 16 2372 2345 date_ge_timestamp scalargesel scalargejoinsel )); -DESCR("greater than or equal"); -DATA(insert OID = 2349 ( ">" PGNSP PGUID b f f 1082 1114 16 2371 2346 date_gt_timestamp scalargtsel scalargtjoinsel )); -DESCR("greater than"); -DATA(insert OID = 2350 ( "<>" PGNSP PGUID b f f 1082 1114 16 2376 2347 date_ne_timestamp neqsel neqjoinsel )); -DESCR("not equal"); - -DATA(insert OID = 2358 ( "<" PGNSP PGUID b f f 1082 1184 16 2388 2361 date_lt_timestamptz scalarltsel scalarltjoinsel )); -DESCR("less than"); -DATA(insert OID = 2359 ( "<=" PGNSP PGUID b f f 1082 1184 16 2387 2362 date_le_timestamptz scalarlesel scalarlejoinsel )); -DESCR("less than or equal"); -DATA(insert OID = 2360 ( "=" PGNSP PGUID b t f 1082 1184 16 2386 2363 date_eq_timestamptz eqsel eqjoinsel )); -DESCR("equal"); -DATA(insert OID = 2361 ( ">=" PGNSP PGUID b f f 1082 1184 16 2385 2358 date_ge_timestamptz scalargesel scalargejoinsel )); -DESCR("greater than or equal"); -DATA(insert OID = 2362 ( ">" PGNSP PGUID b f f 1082 1184 16 2384 2359 date_gt_timestamptz scalargtsel scalargtjoinsel )); -DESCR("greater than"); -DATA(insert OID = 2363 ( "<>" PGNSP PGUID b f f 1082 1184 16 2389 2360 date_ne_timestamptz neqsel neqjoinsel )); -DESCR("not equal"); - -DATA(insert OID = 2371 ( "<" PGNSP PGUID b f f 1114 1082 16 2349 2374 timestamp_lt_date scalarltsel scalarltjoinsel )); -DESCR("less than"); -DATA(insert OID = 2372 ( "<=" PGNSP PGUID b f f 1114 1082 16 2348 2375 timestamp_le_date scalarlesel scalarlejoinsel )); -DESCR("less than or equal"); -DATA(insert OID = 2373 ( "=" PGNSP PGUID b t f 1114 1082 16 2347 2376 timestamp_eq_date eqsel eqjoinsel )); -DESCR("equal"); -DATA(insert OID = 2374 ( ">=" PGNSP PGUID b f f 1114 1082 16 2346 2371 timestamp_ge_date scalargesel scalargejoinsel )); -DESCR("greater than or equal"); -DATA(insert OID = 2375 ( ">" PGNSP PGUID b f f 1114 1082 16 2345 2372 timestamp_gt_date scalargtsel scalargtjoinsel )); -DESCR("greater than"); -DATA(insert OID = 2376 ( "<>" PGNSP PGUID b f f 1114 1082 16 2350 2373 timestamp_ne_date neqsel neqjoinsel )); -DESCR("not equal"); - -DATA(insert OID = 2384 ( "<" PGNSP PGUID b f f 1184 1082 16 2362 2387 timestamptz_lt_date scalarltsel scalarltjoinsel )); -DESCR("less than"); -DATA(insert OID = 2385 ( "<=" PGNSP PGUID b f f 1184 1082 16 2361 2388 timestamptz_le_date scalarlesel scalarlejoinsel )); -DESCR("less than or equal"); -DATA(insert OID = 2386 ( "=" PGNSP PGUID b t f 1184 1082 16 2360 2389 timestamptz_eq_date eqsel eqjoinsel )); -DESCR("equal"); -DATA(insert OID = 2387 ( ">=" PGNSP PGUID b f f 1184 1082 16 2359 2384 timestamptz_ge_date scalargesel scalargejoinsel )); -DESCR("greater than or equal"); -DATA(insert OID = 2388 ( ">" PGNSP PGUID b f f 1184 1082 16 2358 2385 timestamptz_gt_date scalargtsel scalargtjoinsel )); -DESCR("greater than"); -DATA(insert OID = 2389 ( "<>" PGNSP PGUID b f f 1184 1082 16 2363 2386 timestamptz_ne_date neqsel neqjoinsel )); -DESCR("not equal"); - -/* crosstype operations for timestamp vs. timestamptz */ - -DATA(insert OID = 2534 ( "<" PGNSP PGUID b f f 1114 1184 16 2544 2537 timestamp_lt_timestamptz scalarltsel scalarltjoinsel )); -DESCR("less than"); -DATA(insert OID = 2535 ( "<=" PGNSP PGUID b f f 1114 1184 16 2543 2538 timestamp_le_timestamptz scalarlesel scalarlejoinsel )); -DESCR("less than or equal"); -DATA(insert OID = 2536 ( "=" PGNSP PGUID b t f 1114 1184 16 2542 2539 timestamp_eq_timestamptz eqsel eqjoinsel )); -DESCR("equal"); -DATA(insert OID = 2537 ( ">=" PGNSP PGUID b f f 1114 1184 16 2541 2534 timestamp_ge_timestamptz scalargesel scalargejoinsel )); -DESCR("greater than or equal"); -DATA(insert OID = 2538 ( ">" PGNSP PGUID b f f 1114 1184 16 2540 2535 timestamp_gt_timestamptz scalargtsel scalargtjoinsel )); -DESCR("greater than"); -DATA(insert OID = 2539 ( "<>" PGNSP PGUID b f f 1114 1184 16 2545 2536 timestamp_ne_timestamptz neqsel neqjoinsel )); -DESCR("not equal"); - -DATA(insert OID = 2540 ( "<" PGNSP PGUID b f f 1184 1114 16 2538 2543 timestamptz_lt_timestamp scalarltsel scalarltjoinsel )); -DESCR("less than"); -DATA(insert OID = 2541 ( "<=" PGNSP PGUID b f f 1184 1114 16 2537 2544 timestamptz_le_timestamp scalarlesel scalarlejoinsel )); -DESCR("less than or equal"); -DATA(insert OID = 2542 ( "=" PGNSP PGUID b t f 1184 1114 16 2536 2545 timestamptz_eq_timestamp eqsel eqjoinsel )); -DESCR("equal"); -DATA(insert OID = 2543 ( ">=" PGNSP PGUID b f f 1184 1114 16 2535 2540 timestamptz_ge_timestamp scalargesel scalargejoinsel )); -DESCR("greater than or equal"); -DATA(insert OID = 2544 ( ">" PGNSP PGUID b f f 1184 1114 16 2534 2541 timestamptz_gt_timestamp scalargtsel scalargtjoinsel )); -DESCR("greater than"); -DATA(insert OID = 2545 ( "<>" PGNSP PGUID b f f 1184 1114 16 2539 2542 timestamptz_ne_timestamp neqsel neqjoinsel )); -DESCR("not equal"); - -/* formerly-missing interval + datetime operators */ -DATA(insert OID = 2551 ( "+" PGNSP PGUID b f f 1186 1082 1114 1076 0 interval_pl_date - - )); -DESCR("add"); -DATA(insert OID = 2552 ( "+" PGNSP PGUID b f f 1186 1266 1266 1802 0 interval_pl_timetz - - )); -DESCR("add"); -DATA(insert OID = 2553 ( "+" PGNSP PGUID b f f 1186 1114 1114 2066 0 interval_pl_timestamp - - )); -DESCR("add"); -DATA(insert OID = 2554 ( "+" PGNSP PGUID b f f 1186 1184 1184 1327 0 interval_pl_timestamptz - - )); -DESCR("add"); -DATA(insert OID = 2555 ( "+" PGNSP PGUID b f f 23 1082 1082 1100 0 integer_pl_date - - )); -DESCR("add"); - -/* new operators for Y-direction rtree opfamilies */ -DATA(insert OID = 2570 ( "<<|" PGNSP PGUID b f f 603 603 16 0 0 box_below positionsel positionjoinsel )); -DESCR("is below"); -DATA(insert OID = 2571 ( "&<|" PGNSP PGUID b f f 603 603 16 0 0 box_overbelow positionsel positionjoinsel )); -DESCR("overlaps or is below"); -DATA(insert OID = 2572 ( "|&>" PGNSP PGUID b f f 603 603 16 0 0 box_overabove positionsel positionjoinsel )); -DESCR("overlaps or is above"); -DATA(insert OID = 2573 ( "|>>" PGNSP PGUID b f f 603 603 16 0 0 box_above positionsel positionjoinsel )); -DESCR("is above"); -DATA(insert OID = 2574 ( "<<|" PGNSP PGUID b f f 604 604 16 0 0 poly_below positionsel positionjoinsel )); -DESCR("is below"); -DATA(insert OID = 2575 ( "&<|" PGNSP PGUID b f f 604 604 16 0 0 poly_overbelow positionsel positionjoinsel )); -DESCR("overlaps or is below"); -DATA(insert OID = 2576 ( "|&>" PGNSP PGUID b f f 604 604 16 0 0 poly_overabove positionsel positionjoinsel )); -DESCR("overlaps or is above"); -DATA(insert OID = 2577 ( "|>>" PGNSP PGUID b f f 604 604 16 0 0 poly_above positionsel positionjoinsel )); -DESCR("is above"); -DATA(insert OID = 2589 ( "&<|" PGNSP PGUID b f f 718 718 16 0 0 circle_overbelow positionsel positionjoinsel )); -DESCR("overlaps or is below"); -DATA(insert OID = 2590 ( "|&>" PGNSP PGUID b f f 718 718 16 0 0 circle_overabove positionsel positionjoinsel )); -DESCR("overlaps or is above"); - -/* overlap/contains/contained for arrays */ -DATA(insert OID = 2750 ( "&&" PGNSP PGUID b f f 2277 2277 16 2750 0 arrayoverlap arraycontsel arraycontjoinsel )); -DESCR("overlaps"); -#define OID_ARRAY_OVERLAP_OP 2750 -DATA(insert OID = 2751 ( "@>" PGNSP PGUID b f f 2277 2277 16 2752 0 arraycontains arraycontsel arraycontjoinsel )); -DESCR("contains"); -#define OID_ARRAY_CONTAINS_OP 2751 -DATA(insert OID = 2752 ( "<@" PGNSP PGUID b f f 2277 2277 16 2751 0 arraycontained arraycontsel arraycontjoinsel )); -DESCR("is contained by"); -#define OID_ARRAY_CONTAINED_OP 2752 - -/* capturing operators to preserve pre-8.3 behavior of text concatenation */ -DATA(insert OID = 2779 ( "||" PGNSP PGUID b f f 25 2776 25 0 0 textanycat - - )); -DESCR("concatenate"); -DATA(insert OID = 2780 ( "||" PGNSP PGUID b f f 2776 25 25 0 0 anytextcat - - )); -DESCR("concatenate"); - -/* obsolete names for contains/contained-by operators; remove these someday */ -DATA(insert OID = 2860 ( "@" PGNSP PGUID b f f 604 604 16 2861 0 poly_contained contsel contjoinsel )); -DESCR("deprecated, use <@ instead"); -DATA(insert OID = 2861 ( "~" PGNSP PGUID b f f 604 604 16 2860 0 poly_contain contsel contjoinsel )); -DESCR("deprecated, use @> instead"); -DATA(insert OID = 2862 ( "@" PGNSP PGUID b f f 603 603 16 2863 0 box_contained contsel contjoinsel )); -DESCR("deprecated, use <@ instead"); -DATA(insert OID = 2863 ( "~" PGNSP PGUID b f f 603 603 16 2862 0 box_contain contsel contjoinsel )); -DESCR("deprecated, use @> instead"); -DATA(insert OID = 2864 ( "@" PGNSP PGUID b f f 718 718 16 2865 0 circle_contained contsel contjoinsel )); -DESCR("deprecated, use <@ instead"); -DATA(insert OID = 2865 ( "~" PGNSP PGUID b f f 718 718 16 2864 0 circle_contain contsel contjoinsel )); -DESCR("deprecated, use @> instead"); -DATA(insert OID = 2866 ( "@" PGNSP PGUID b f f 600 603 16 0 0 on_pb - - )); -DESCR("deprecated, use <@ instead"); -DATA(insert OID = 2867 ( "@" PGNSP PGUID b f f 600 602 16 2868 0 on_ppath - - )); -DESCR("deprecated, use <@ instead"); -DATA(insert OID = 2868 ( "~" PGNSP PGUID b f f 602 600 16 2867 0 path_contain_pt - - )); -DESCR("deprecated, use @> instead"); -DATA(insert OID = 2869 ( "@" PGNSP PGUID b f f 600 604 16 2870 0 pt_contained_poly - - )); -DESCR("deprecated, use <@ instead"); -DATA(insert OID = 2870 ( "~" PGNSP PGUID b f f 604 600 16 2869 0 poly_contain_pt - - )); -DESCR("deprecated, use @> instead"); -DATA(insert OID = 2871 ( "@" PGNSP PGUID b f f 600 718 16 2872 0 pt_contained_circle - - )); -DESCR("deprecated, use <@ instead"); -DATA(insert OID = 2872 ( "~" PGNSP PGUID b f f 718 600 16 2871 0 circle_contain_pt - - )); -DESCR("deprecated, use @> instead"); -DATA(insert OID = 2873 ( "@" PGNSP PGUID b f f 600 628 16 0 0 on_pl - - )); -DESCR("deprecated, use <@ instead"); -DATA(insert OID = 2874 ( "@" PGNSP PGUID b f f 600 601 16 0 0 on_ps - - )); -DESCR("deprecated, use <@ instead"); -DATA(insert OID = 2875 ( "@" PGNSP PGUID b f f 601 628 16 0 0 on_sl - - )); -DESCR("deprecated, use <@ instead"); -DATA(insert OID = 2876 ( "@" PGNSP PGUID b f f 601 603 16 0 0 on_sb - - )); -DESCR("deprecated, use <@ instead"); -DATA(insert OID = 2877 ( "~" PGNSP PGUID b f f 1034 1033 16 0 0 aclcontains - - )); -DESCR("deprecated, use @> instead"); - -/* uuid operators */ -DATA(insert OID = 2972 ( "=" PGNSP PGUID b t t 2950 2950 16 2972 2973 uuid_eq eqsel eqjoinsel )); -DESCR("equal"); -DATA(insert OID = 2973 ( "<>" PGNSP PGUID b f f 2950 2950 16 2973 2972 uuid_ne neqsel neqjoinsel )); -DESCR("not equal"); -DATA(insert OID = 2974 ( "<" PGNSP PGUID b f f 2950 2950 16 2975 2977 uuid_lt scalarltsel scalarltjoinsel )); -DESCR("less than"); -DATA(insert OID = 2975 ( ">" PGNSP PGUID b f f 2950 2950 16 2974 2976 uuid_gt scalargtsel scalargtjoinsel )); -DESCR("greater than"); -DATA(insert OID = 2976 ( "<=" PGNSP PGUID b f f 2950 2950 16 2977 2975 uuid_le scalarlesel scalarlejoinsel )); -DESCR("less than or equal"); -DATA(insert OID = 2977 ( ">=" PGNSP PGUID b f f 2950 2950 16 2976 2974 uuid_ge scalargesel scalargejoinsel )); -DESCR("greater than or equal"); - -/* pg_lsn operators */ -DATA(insert OID = 3222 ( "=" PGNSP PGUID b t t 3220 3220 16 3222 3223 pg_lsn_eq eqsel eqjoinsel )); -DESCR("equal"); -DATA(insert OID = 3223 ( "<>" PGNSP PGUID b f f 3220 3220 16 3223 3222 pg_lsn_ne neqsel neqjoinsel )); -DESCR("not equal"); -DATA(insert OID = 3224 ( "<" PGNSP PGUID b f f 3220 3220 16 3225 3227 pg_lsn_lt scalarltsel scalarltjoinsel )); -DESCR("less than"); -DATA(insert OID = 3225 ( ">" PGNSP PGUID b f f 3220 3220 16 3224 3226 pg_lsn_gt scalargtsel scalargtjoinsel )); -DESCR("greater than"); -DATA(insert OID = 3226 ( "<=" PGNSP PGUID b f f 3220 3220 16 3227 3225 pg_lsn_le scalarlesel scalarlejoinsel )); -DESCR("less than or equal"); -DATA(insert OID = 3227 ( ">=" PGNSP PGUID b f f 3220 3220 16 3226 3224 pg_lsn_ge scalargesel scalargejoinsel )); -DESCR("greater than or equal"); -DATA(insert OID = 3228 ( "-" PGNSP PGUID b f f 3220 3220 1700 0 0 pg_lsn_mi - - )); -DESCR("minus"); - -/* enum operators */ -DATA(insert OID = 3516 ( "=" PGNSP PGUID b t t 3500 3500 16 3516 3517 enum_eq eqsel eqjoinsel )); -DESCR("equal"); -DATA(insert OID = 3517 ( "<>" PGNSP PGUID b f f 3500 3500 16 3517 3516 enum_ne neqsel neqjoinsel )); -DESCR("not equal"); -DATA(insert OID = 3518 ( "<" PGNSP PGUID b f f 3500 3500 16 3519 3521 enum_lt scalarltsel scalarltjoinsel )); -DESCR("less than"); -DATA(insert OID = 3519 ( ">" PGNSP PGUID b f f 3500 3500 16 3518 3520 enum_gt scalargtsel scalargtjoinsel )); -DESCR("greater than"); -DATA(insert OID = 3520 ( "<=" PGNSP PGUID b f f 3500 3500 16 3521 3519 enum_le scalarlesel scalarlejoinsel )); -DESCR("less than or equal"); -DATA(insert OID = 3521 ( ">=" PGNSP PGUID b f f 3500 3500 16 3520 3518 enum_ge scalargesel scalargejoinsel )); -DESCR("greater than or equal"); - -/* - * tsearch operations - */ -DATA(insert OID = 3627 ( "<" PGNSP PGUID b f f 3614 3614 16 3632 3631 tsvector_lt scalarltsel scalarltjoinsel )); -DESCR("less than"); -DATA(insert OID = 3628 ( "<=" PGNSP PGUID b f f 3614 3614 16 3631 3632 tsvector_le scalarlesel scalarlejoinsel )); -DESCR("less than or equal"); -DATA(insert OID = 3629 ( "=" PGNSP PGUID b t f 3614 3614 16 3629 3630 tsvector_eq eqsel eqjoinsel )); -DESCR("equal"); -DATA(insert OID = 3630 ( "<>" PGNSP PGUID b f f 3614 3614 16 3630 3629 tsvector_ne neqsel neqjoinsel )); -DESCR("not equal"); -DATA(insert OID = 3631 ( ">=" PGNSP PGUID b f f 3614 3614 16 3628 3627 tsvector_ge scalargesel scalargejoinsel )); -DESCR("greater than or equal"); -DATA(insert OID = 3632 ( ">" PGNSP PGUID b f f 3614 3614 16 3627 3628 tsvector_gt scalargtsel scalargtjoinsel )); -DESCR("greater than"); -DATA(insert OID = 3633 ( "||" PGNSP PGUID b f f 3614 3614 3614 0 0 tsvector_concat - - )); -DESCR("concatenate"); -DATA(insert OID = 3636 ( "@@" PGNSP PGUID b f f 3614 3615 16 3637 0 ts_match_vq tsmatchsel tsmatchjoinsel )); -DESCR("text search match"); -DATA(insert OID = 3637 ( "@@" PGNSP PGUID b f f 3615 3614 16 3636 0 ts_match_qv tsmatchsel tsmatchjoinsel )); -DESCR("text search match"); -DATA(insert OID = 3660 ( "@@@" PGNSP PGUID b f f 3614 3615 16 3661 0 ts_match_vq tsmatchsel tsmatchjoinsel )); -DESCR("deprecated, use @@ instead"); -DATA(insert OID = 3661 ( "@@@" PGNSP PGUID b f f 3615 3614 16 3660 0 ts_match_qv tsmatchsel tsmatchjoinsel )); -DESCR("deprecated, use @@ instead"); -DATA(insert OID = 3674 ( "<" PGNSP PGUID b f f 3615 3615 16 3679 3678 tsquery_lt scalarltsel scalarltjoinsel )); -DESCR("less than"); -DATA(insert OID = 3675 ( "<=" PGNSP PGUID b f f 3615 3615 16 3678 3679 tsquery_le scalarlesel scalarlejoinsel )); -DESCR("less than or equal"); -DATA(insert OID = 3676 ( "=" PGNSP PGUID b t f 3615 3615 16 3676 3677 tsquery_eq eqsel eqjoinsel )); -DESCR("equal"); -DATA(insert OID = 3677 ( "<>" PGNSP PGUID b f f 3615 3615 16 3677 3676 tsquery_ne neqsel neqjoinsel )); -DESCR("not equal"); -DATA(insert OID = 3678 ( ">=" PGNSP PGUID b f f 3615 3615 16 3675 3674 tsquery_ge scalargesel scalargejoinsel )); -DESCR("greater than or equal"); -DATA(insert OID = 3679 ( ">" PGNSP PGUID b f f 3615 3615 16 3674 3675 tsquery_gt scalargtsel scalargtjoinsel )); -DESCR("greater than"); -DATA(insert OID = 3680 ( "&&" PGNSP PGUID b f f 3615 3615 3615 0 0 tsquery_and - - )); -DESCR("AND-concatenate"); -DATA(insert OID = 3681 ( "||" PGNSP PGUID b f f 3615 3615 3615 0 0 tsquery_or - - )); -DESCR("OR-concatenate"); -/* <-> operation calls tsquery_phrase, but function is polymorphic. So, point to OID of the tsquery_phrase */ -DATA(insert OID = 5005 ( "<->" PGNSP PGUID b f f 3615 3615 3615 0 0 5003 - - )); -DESCR("phrase-concatenate"); -DATA(insert OID = 3682 ( "!!" PGNSP PGUID l f f 0 3615 3615 0 0 tsquery_not - - )); -DESCR("NOT tsquery"); -DATA(insert OID = 3693 ( "@>" PGNSP PGUID b f f 3615 3615 16 3694 0 tsq_mcontains contsel contjoinsel )); -DESCR("contains"); -DATA(insert OID = 3694 ( "<@" PGNSP PGUID b f f 3615 3615 16 3693 0 tsq_mcontained contsel contjoinsel )); -DESCR("is contained by"); -DATA(insert OID = 3762 ( "@@" PGNSP PGUID b f f 25 25 16 0 0 ts_match_tt contsel contjoinsel )); -DESCR("text search match"); -DATA(insert OID = 3763 ( "@@" PGNSP PGUID b f f 25 3615 16 0 0 ts_match_tq contsel contjoinsel )); -DESCR("text search match"); - -/* generic record comparison operators */ -DATA(insert OID = 2988 ( "=" PGNSP PGUID b t f 2249 2249 16 2988 2989 record_eq eqsel eqjoinsel )); -DESCR("equal"); -#define RECORD_EQ_OP 2988 -DATA(insert OID = 2989 ( "<>" PGNSP PGUID b f f 2249 2249 16 2989 2988 record_ne neqsel neqjoinsel )); -DESCR("not equal"); -DATA(insert OID = 2990 ( "<" PGNSP PGUID b f f 2249 2249 16 2991 2993 record_lt scalarltsel scalarltjoinsel )); -DESCR("less than"); -#define RECORD_LT_OP 2990 -DATA(insert OID = 2991 ( ">" PGNSP PGUID b f f 2249 2249 16 2990 2992 record_gt scalargtsel scalargtjoinsel )); -DESCR("greater than"); -#define RECORD_GT_OP 2991 -DATA(insert OID = 2992 ( "<=" PGNSP PGUID b f f 2249 2249 16 2993 2991 record_le scalarlesel scalarlejoinsel )); -DESCR("less than or equal"); -DATA(insert OID = 2993 ( ">=" PGNSP PGUID b f f 2249 2249 16 2992 2990 record_ge scalargesel scalargejoinsel )); -DESCR("greater than or equal"); - -/* byte-oriented tests for identical rows and fast sorting */ -DATA(insert OID = 3188 ( "*=" PGNSP PGUID b t f 2249 2249 16 3188 3189 record_image_eq eqsel eqjoinsel )); -DESCR("identical"); -DATA(insert OID = 3189 ( "*<>" PGNSP PGUID b f f 2249 2249 16 3189 3188 record_image_ne neqsel neqjoinsel )); -DESCR("not identical"); -DATA(insert OID = 3190 ( "*<" PGNSP PGUID b f f 2249 2249 16 3191 3193 record_image_lt scalarltsel scalarltjoinsel )); -DESCR("less than"); -DATA(insert OID = 3191 ( "*>" PGNSP PGUID b f f 2249 2249 16 3190 3192 record_image_gt scalargtsel scalargtjoinsel )); -DESCR("greater than"); -DATA(insert OID = 3192 ( "*<=" PGNSP PGUID b f f 2249 2249 16 3193 3191 record_image_le scalarlesel scalarlejoinsel )); -DESCR("less than or equal"); -DATA(insert OID = 3193 ( "*>=" PGNSP PGUID b f f 2249 2249 16 3192 3190 record_image_ge scalargesel scalargejoinsel )); -DESCR("greater than or equal"); - -/* generic range type operators */ -DATA(insert OID = 3882 ( "=" PGNSP PGUID b t t 3831 3831 16 3882 3883 range_eq eqsel eqjoinsel )); -DESCR("equal"); -DATA(insert OID = 3883 ( "<>" PGNSP PGUID b f f 3831 3831 16 3883 3882 range_ne neqsel neqjoinsel )); -DESCR("not equal"); -DATA(insert OID = 3884 ( "<" PGNSP PGUID b f f 3831 3831 16 3887 3886 range_lt rangesel scalarltjoinsel )); -DESCR("less than"); -#define OID_RANGE_LESS_OP 3884 -DATA(insert OID = 3885 ( "<=" PGNSP PGUID b f f 3831 3831 16 3886 3887 range_le rangesel scalarlejoinsel )); -DESCR("less than or equal"); -#define OID_RANGE_LESS_EQUAL_OP 3885 -DATA(insert OID = 3886 ( ">=" PGNSP PGUID b f f 3831 3831 16 3885 3884 range_ge rangesel scalargejoinsel )); -DESCR("greater than or equal"); -#define OID_RANGE_GREATER_EQUAL_OP 3886 -DATA(insert OID = 3887 ( ">" PGNSP PGUID b f f 3831 3831 16 3884 3885 range_gt rangesel scalargtjoinsel )); -DESCR("greater than"); -#define OID_RANGE_GREATER_OP 3887 -DATA(insert OID = 3888 ( "&&" PGNSP PGUID b f f 3831 3831 16 3888 0 range_overlaps rangesel areajoinsel )); -DESCR("overlaps"); -#define OID_RANGE_OVERLAP_OP 3888 -DATA(insert OID = 3889 ( "@>" PGNSP PGUID b f f 3831 2283 16 3891 0 range_contains_elem rangesel contjoinsel )); -DESCR("contains"); -#define OID_RANGE_CONTAINS_ELEM_OP 3889 -DATA(insert OID = 3890 ( "@>" PGNSP PGUID b f f 3831 3831 16 3892 0 range_contains rangesel contjoinsel )); -DESCR("contains"); -#define OID_RANGE_CONTAINS_OP 3890 -DATA(insert OID = 3891 ( "<@" PGNSP PGUID b f f 2283 3831 16 3889 0 elem_contained_by_range rangesel contjoinsel )); -DESCR("is contained by"); -#define OID_RANGE_ELEM_CONTAINED_OP 3891 -DATA(insert OID = 3892 ( "<@" PGNSP PGUID b f f 3831 3831 16 3890 0 range_contained_by rangesel contjoinsel )); -DESCR("is contained by"); -#define OID_RANGE_CONTAINED_OP 3892 -DATA(insert OID = 3893 ( "<<" PGNSP PGUID b f f 3831 3831 16 3894 0 range_before rangesel scalarltjoinsel )); -DESCR("is left of"); -#define OID_RANGE_LEFT_OP 3893 -DATA(insert OID = 3894 ( ">>" PGNSP PGUID b f f 3831 3831 16 3893 0 range_after rangesel scalargtjoinsel )); -DESCR("is right of"); -#define OID_RANGE_RIGHT_OP 3894 -DATA(insert OID = 3895 ( "&<" PGNSP PGUID b f f 3831 3831 16 0 0 range_overleft rangesel scalarltjoinsel )); -DESCR("overlaps or is left of"); -#define OID_RANGE_OVERLAPS_LEFT_OP 3895 -DATA(insert OID = 3896 ( "&>" PGNSP PGUID b f f 3831 3831 16 0 0 range_overright rangesel scalargtjoinsel )); -DESCR("overlaps or is right of"); -#define OID_RANGE_OVERLAPS_RIGHT_OP 3896 -DATA(insert OID = 3897 ( "-|-" PGNSP PGUID b f f 3831 3831 16 3897 0 range_adjacent contsel contjoinsel )); -DESCR("is adjacent to"); -DATA(insert OID = 3898 ( "+" PGNSP PGUID b f f 3831 3831 3831 3898 0 range_union - - )); -DESCR("range union"); -DATA(insert OID = 3899 ( "-" PGNSP PGUID b f f 3831 3831 3831 0 0 range_minus - - )); -DESCR("range difference"); -DATA(insert OID = 3900 ( "*" PGNSP PGUID b f f 3831 3831 3831 3900 0 range_intersect - - )); -DESCR("range intersection"); -DATA(insert OID = 3962 ( "->" PGNSP PGUID b f f 114 25 114 0 0 json_object_field - - )); -DESCR("get json object field"); -DATA(insert OID = 3963 ( "->>" PGNSP PGUID b f f 114 25 25 0 0 json_object_field_text - - )); -DESCR("get json object field as text"); -DATA(insert OID = 3964 ( "->" PGNSP PGUID b f f 114 23 114 0 0 json_array_element - - )); -DESCR("get json array element"); -DATA(insert OID = 3965 ( "->>" PGNSP PGUID b f f 114 23 25 0 0 json_array_element_text - - )); -DESCR("get json array element as text"); -DATA(insert OID = 3966 ( "#>" PGNSP PGUID b f f 114 1009 114 0 0 json_extract_path - - )); -DESCR("get value from json with path elements"); -DATA(insert OID = 3967 ( "#>>" PGNSP PGUID b f f 114 1009 25 0 0 json_extract_path_text - - )); -DESCR("get value from json as text with path elements"); -DATA(insert OID = 3211 ( "->" PGNSP PGUID b f f 3802 25 3802 0 0 jsonb_object_field - - )); -DESCR("get jsonb object field"); -DATA(insert OID = 3477 ( "->>" PGNSP PGUID b f f 3802 25 25 0 0 jsonb_object_field_text - - )); -DESCR("get jsonb object field as text"); -DATA(insert OID = 3212 ( "->" PGNSP PGUID b f f 3802 23 3802 0 0 jsonb_array_element - - )); -DESCR("get jsonb array element"); -DATA(insert OID = 3481 ( "->>" PGNSP PGUID b f f 3802 23 25 0 0 jsonb_array_element_text - - )); -DESCR("get jsonb array element as text"); -DATA(insert OID = 3213 ( "#>" PGNSP PGUID b f f 3802 1009 3802 0 0 jsonb_extract_path - - )); -DESCR("get value from jsonb with path elements"); -DATA(insert OID = 3206 ( "#>>" PGNSP PGUID b f f 3802 1009 25 0 0 jsonb_extract_path_text - - )); -DESCR("get value from jsonb as text with path elements"); -DATA(insert OID = 3240 ( "=" PGNSP PGUID b t t 3802 3802 16 3240 3241 jsonb_eq eqsel eqjoinsel )); -DESCR("equal"); -DATA(insert OID = 3241 ( "<>" PGNSP PGUID b f f 3802 3802 16 3241 3240 jsonb_ne neqsel neqjoinsel )); -DESCR("not equal"); -DATA(insert OID = 3242 ( "<" PGNSP PGUID b f f 3802 3802 16 3243 3245 jsonb_lt scalarltsel scalarltjoinsel )); -DESCR("less than"); -DATA(insert OID = 3243 ( ">" PGNSP PGUID b f f 3802 3802 16 3242 3244 jsonb_gt scalargtsel scalargtjoinsel )); -DESCR("greater than"); -DATA(insert OID = 3244 ( "<=" PGNSP PGUID b f f 3802 3802 16 3245 3243 jsonb_le scalarlesel scalarlejoinsel )); -DESCR("less than or equal"); -DATA(insert OID = 3245 ( ">=" PGNSP PGUID b f f 3802 3802 16 3244 3242 jsonb_ge scalargesel scalargejoinsel )); -DESCR("greater than or equal"); -DATA(insert OID = 3246 ( "@>" PGNSP PGUID b f f 3802 3802 16 3250 0 jsonb_contains contsel contjoinsel )); -DESCR("contains"); -DATA(insert OID = 3247 ( "?" PGNSP PGUID b f f 3802 25 16 0 0 jsonb_exists contsel contjoinsel )); -DESCR("key exists"); -DATA(insert OID = 3248 ( "?|" PGNSP PGUID b f f 3802 1009 16 0 0 jsonb_exists_any contsel contjoinsel )); -DESCR("any key exists"); -DATA(insert OID = 3249 ( "?&" PGNSP PGUID b f f 3802 1009 16 0 0 jsonb_exists_all contsel contjoinsel )); -DESCR("all keys exist"); -DATA(insert OID = 3250 ( "<@" PGNSP PGUID b f f 3802 3802 16 3246 0 jsonb_contained contsel contjoinsel )); -DESCR("is contained by"); -DATA(insert OID = 3284 ( "||" PGNSP PGUID b f f 3802 3802 3802 0 0 jsonb_concat - - )); -DESCR("concatenate"); -DATA(insert OID = 3285 ( "-" PGNSP PGUID b f f 3802 25 3802 0 0 3302 - - )); -DESCR("delete object field"); -DATA(insert OID = 3398 ( "-" PGNSP PGUID b f f 3802 1009 3802 0 0 3343 - -)); -DESCR("delete object fields"); -DATA(insert OID = 3286 ( "-" PGNSP PGUID b f f 3802 23 3802 0 0 3303 - - )); -DESCR("delete array element"); -DATA(insert OID = 3287 ( "#-" PGNSP PGUID b f f 3802 1009 3802 0 0 jsonb_delete_path - - )); -DESCR("delete path"); - #endif /* PG_OPERATOR_H */ diff --git a/src/include/catalog/pg_opfamily.dat b/src/include/catalog/pg_opfamily.dat new file mode 100644 index 0000000000..72d71ee5b2 --- /dev/null +++ b/src/include/catalog/pg_opfamily.dat @@ -0,0 +1,248 @@ +#---------------------------------------------------------------------- +# +# pg_opfamily.dat +# Initial contents of the pg_opfamily system relation. +# +# Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group +# Portions Copyright (c) 1994, Regents of the University of California +# +# src/include/catalog/pg_opfamily.dat +# +#---------------------------------------------------------------------- + +[ + +{ oid => '421', + opfmethod => 'btree', opfname => 'abstime_ops' }, +{ oid => '397', + opfmethod => 'btree', opfname => 'array_ops' }, +{ oid => '627', + opfmethod => 'hash', opfname => 'array_ops' }, +{ oid => '423', + opfmethod => 'btree', opfname => 'bit_ops' }, +{ oid => '424', oid_symbol => 'BOOL_BTREE_FAM_OID', + opfmethod => 'btree', opfname => 'bool_ops' }, +{ oid => '426', oid_symbol => 'BPCHAR_BTREE_FAM_OID', + opfmethod => 'btree', opfname => 'bpchar_ops' }, +{ oid => '427', + opfmethod => 'hash', opfname => 'bpchar_ops' }, +{ oid => '428', oid_symbol => 'BYTEA_BTREE_FAM_OID', + opfmethod => 'btree', opfname => 'bytea_ops' }, +{ oid => '429', + opfmethod => 'btree', opfname => 'char_ops' }, +{ oid => '431', + opfmethod => 'hash', opfname => 'char_ops' }, +{ oid => '434', + opfmethod => 'btree', opfname => 'datetime_ops' }, +{ oid => '435', + opfmethod => 'hash', opfname => 'date_ops' }, +{ oid => '1970', + opfmethod => 'btree', opfname => 'float_ops' }, +{ oid => '1971', + opfmethod => 'hash', opfname => 'float_ops' }, +{ oid => '1974', oid_symbol => 'NETWORK_BTREE_FAM_OID', + opfmethod => 'btree', opfname => 'network_ops' }, +{ oid => '1975', + opfmethod => 'hash', opfname => 'network_ops' }, +{ oid => '3550', + opfmethod => 'gist', opfname => 'network_ops' }, +{ oid => '3794', + opfmethod => 'spgist', opfname => 'network_ops' }, +{ oid => '1976', oid_symbol => 'INTEGER_BTREE_FAM_OID', + opfmethod => 'btree', opfname => 'integer_ops' }, +{ oid => '1977', + opfmethod => 'hash', opfname => 'integer_ops' }, +{ oid => '1982', + opfmethod => 'btree', opfname => 'interval_ops' }, +{ oid => '1983', + opfmethod => 'hash', opfname => 'interval_ops' }, +{ oid => '1984', + opfmethod => 'btree', opfname => 'macaddr_ops' }, +{ oid => '1985', + opfmethod => 'hash', opfname => 'macaddr_ops' }, +{ oid => '3371', + opfmethod => 'btree', opfname => 'macaddr8_ops' }, +{ oid => '3372', + opfmethod => 'hash', opfname => 'macaddr8_ops' }, +{ oid => '1986', oid_symbol => 'NAME_BTREE_FAM_OID', + opfmethod => 'btree', opfname => 'name_ops' }, +{ oid => '1987', + opfmethod => 'hash', opfname => 'name_ops' }, +{ oid => '1988', + opfmethod => 'btree', opfname => 'numeric_ops' }, +{ oid => '1998', + opfmethod => 'hash', opfname => 'numeric_ops' }, +{ oid => '1989', oid_symbol => 'OID_BTREE_FAM_OID', + opfmethod => 'btree', opfname => 'oid_ops' }, +{ oid => '1990', + opfmethod => 'hash', opfname => 'oid_ops' }, +{ oid => '1991', + opfmethod => 'btree', opfname => 'oidvector_ops' }, +{ oid => '1992', + opfmethod => 'hash', opfname => 'oidvector_ops' }, +{ oid => '2994', + opfmethod => 'btree', opfname => 'record_ops' }, +{ oid => '3194', + opfmethod => 'btree', opfname => 'record_image_ops' }, +{ oid => '1994', oid_symbol => 'TEXT_BTREE_FAM_OID', + opfmethod => 'btree', opfname => 'text_ops' }, +{ oid => '1995', + opfmethod => 'hash', opfname => 'text_ops' }, +{ oid => '1996', + opfmethod => 'btree', opfname => 'time_ops' }, +{ oid => '1997', + opfmethod => 'hash', opfname => 'time_ops' }, +{ oid => '1999', + opfmethod => 'hash', opfname => 'timestamptz_ops' }, +{ oid => '2000', + opfmethod => 'btree', opfname => 'timetz_ops' }, +{ oid => '2001', + opfmethod => 'hash', opfname => 'timetz_ops' }, +{ oid => '2002', + opfmethod => 'btree', opfname => 'varbit_ops' }, +{ oid => '2040', + opfmethod => 'hash', opfname => 'timestamp_ops' }, +{ oid => '2095', oid_symbol => 'TEXT_PATTERN_BTREE_FAM_OID', + opfmethod => 'btree', opfname => 'text_pattern_ops' }, +{ oid => '2097', oid_symbol => 'BPCHAR_PATTERN_BTREE_FAM_OID', + opfmethod => 'btree', opfname => 'bpchar_pattern_ops' }, +{ oid => '2099', + opfmethod => 'btree', opfname => 'money_ops' }, +{ oid => '2222', oid_symbol => 'BOOL_HASH_FAM_OID', + opfmethod => 'hash', opfname => 'bool_ops' }, +{ oid => '2223', + opfmethod => 'hash', opfname => 'bytea_ops' }, +{ oid => '2789', + opfmethod => 'btree', opfname => 'tid_ops' }, +{ oid => '2225', + opfmethod => 'hash', opfname => 'xid_ops' }, +{ oid => '2226', + opfmethod => 'hash', opfname => 'cid_ops' }, +{ oid => '2227', + opfmethod => 'hash', opfname => 'abstime_ops' }, +{ oid => '2228', + opfmethod => 'hash', opfname => 'reltime_ops' }, +{ oid => '2229', + opfmethod => 'hash', opfname => 'text_pattern_ops' }, +{ oid => '2231', + opfmethod => 'hash', opfname => 'bpchar_pattern_ops' }, +{ oid => '2233', + opfmethod => 'btree', opfname => 'reltime_ops' }, +{ oid => '2234', + opfmethod => 'btree', opfname => 'tinterval_ops' }, +{ oid => '2235', + opfmethod => 'hash', opfname => 'aclitem_ops' }, +{ oid => '2593', + opfmethod => 'gist', opfname => 'box_ops' }, +{ oid => '2594', + opfmethod => 'gist', opfname => 'poly_ops' }, +{ oid => '2595', + opfmethod => 'gist', opfname => 'circle_ops' }, +{ oid => '1029', + opfmethod => 'gist', opfname => 'point_ops' }, +{ oid => '2745', + opfmethod => 'gin', opfname => 'array_ops' }, +{ oid => '2968', + opfmethod => 'btree', opfname => 'uuid_ops' }, +{ oid => '2969', + opfmethod => 'hash', opfname => 'uuid_ops' }, +{ oid => '3253', + opfmethod => 'btree', opfname => 'pg_lsn_ops' }, +{ oid => '3254', + opfmethod => 'hash', opfname => 'pg_lsn_ops' }, +{ oid => '3522', + opfmethod => 'btree', opfname => 'enum_ops' }, +{ oid => '3523', + opfmethod => 'hash', opfname => 'enum_ops' }, +{ oid => '3626', + opfmethod => 'btree', opfname => 'tsvector_ops' }, +{ oid => '3655', + opfmethod => 'gist', opfname => 'tsvector_ops' }, +{ oid => '3659', + opfmethod => 'gin', opfname => 'tsvector_ops' }, +{ oid => '3683', + opfmethod => 'btree', opfname => 'tsquery_ops' }, +{ oid => '3702', + opfmethod => 'gist', opfname => 'tsquery_ops' }, +{ oid => '3901', + opfmethod => 'btree', opfname => 'range_ops' }, +{ oid => '3903', + opfmethod => 'hash', opfname => 'range_ops' }, +{ oid => '3919', + opfmethod => 'gist', opfname => 'range_ops' }, +{ oid => '3474', + opfmethod => 'spgist', opfname => 'range_ops' }, +{ oid => '4015', + opfmethod => 'spgist', opfname => 'quad_point_ops' }, +{ oid => '4016', + opfmethod => 'spgist', opfname => 'kd_point_ops' }, +{ oid => '4017', oid_symbol => 'TEXT_SPGIST_FAM_OID', + opfmethod => 'spgist', opfname => 'text_ops' }, +{ oid => '4033', + opfmethod => 'btree', opfname => 'jsonb_ops' }, +{ oid => '4034', + opfmethod => 'hash', opfname => 'jsonb_ops' }, +{ oid => '4035', + opfmethod => 'gist', opfname => 'jsonb_ops' }, +{ oid => '4036', + opfmethod => 'gin', opfname => 'jsonb_ops' }, +{ oid => '4037', + opfmethod => 'gin', opfname => 'jsonb_path_ops' }, +{ oid => '4054', + opfmethod => 'brin', opfname => 'integer_minmax_ops' }, +{ oid => '4055', + opfmethod => 'brin', opfname => 'numeric_minmax_ops' }, +{ oid => '4056', + opfmethod => 'brin', opfname => 'text_minmax_ops' }, +{ oid => '4058', + opfmethod => 'brin', opfname => 'timetz_minmax_ops' }, +{ oid => '4059', + opfmethod => 'brin', opfname => 'datetime_minmax_ops' }, +{ oid => '4062', + opfmethod => 'brin', opfname => 'char_minmax_ops' }, +{ oid => '4064', + opfmethod => 'brin', opfname => 'bytea_minmax_ops' }, +{ oid => '4065', + opfmethod => 'brin', opfname => 'name_minmax_ops' }, +{ oid => '4068', + opfmethod => 'brin', opfname => 'oid_minmax_ops' }, +{ oid => '4069', + opfmethod => 'brin', opfname => 'tid_minmax_ops' }, +{ oid => '4070', + opfmethod => 'brin', opfname => 'float_minmax_ops' }, +{ oid => '4072', + opfmethod => 'brin', opfname => 'abstime_minmax_ops' }, +{ oid => '4073', + opfmethod => 'brin', opfname => 'reltime_minmax_ops' }, +{ oid => '4074', + opfmethod => 'brin', opfname => 'macaddr_minmax_ops' }, +{ oid => '4109', + opfmethod => 'brin', opfname => 'macaddr8_minmax_ops' }, +{ oid => '4075', + opfmethod => 'brin', opfname => 'network_minmax_ops' }, +{ oid => '4102', + opfmethod => 'brin', opfname => 'network_inclusion_ops' }, +{ oid => '4076', + opfmethod => 'brin', opfname => 'bpchar_minmax_ops' }, +{ oid => '4077', + opfmethod => 'brin', opfname => 'time_minmax_ops' }, +{ oid => '4078', + opfmethod => 'brin', opfname => 'interval_minmax_ops' }, +{ oid => '4079', + opfmethod => 'brin', opfname => 'bit_minmax_ops' }, +{ oid => '4080', + opfmethod => 'brin', opfname => 'varbit_minmax_ops' }, +{ oid => '4081', + opfmethod => 'brin', opfname => 'uuid_minmax_ops' }, +{ oid => '4103', + opfmethod => 'brin', opfname => 'range_inclusion_ops' }, +{ oid => '4082', + opfmethod => 'brin', opfname => 'pg_lsn_minmax_ops' }, +{ oid => '4104', + opfmethod => 'brin', opfname => 'box_inclusion_ops' }, +{ oid => '5000', + opfmethod => 'spgist', opfname => 'box_ops' }, +{ oid => '5008', + opfmethod => 'spgist', opfname => 'poly_ops' }, + +] diff --git a/src/include/catalog/pg_opfamily.h b/src/include/catalog/pg_opfamily.h index 5b20dd77a1..ddb0641228 100644 --- a/src/include/catalog/pg_opfamily.h +++ b/src/include/catalog/pg_opfamily.h @@ -2,7 +2,6 @@ * * pg_opfamily.h * definition of the system "opfamily" relation (pg_opfamily) - * along with the relation's initial contents. * * * Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group @@ -11,8 +10,8 @@ * src/include/catalog/pg_opfamily.h * * NOTES - * the genbki.pl script reads this file and generates .bki - * information from the DATA() statements. + * The Catalog.pm module reads this file and derives schema + * information. * *------------------------------------------------------------------------- */ @@ -20,20 +19,26 @@ #define PG_OPFAMILY_H #include "catalog/genbki.h" +#include "catalog/pg_opfamily_d.h" /* ---------------- * pg_opfamily definition. cpp turns this into * typedef struct FormData_pg_opfamily * ---------------- */ -#define OperatorFamilyRelationId 2753 - -CATALOG(pg_opfamily,2753) +CATALOG(pg_opfamily,2753,OperatorFamilyRelationId) { - Oid opfmethod; /* index access method opfamily is for */ - NameData opfname; /* name of this opfamily */ - Oid opfnamespace; /* namespace of this opfamily */ - Oid opfowner; /* opfamily owner */ + /* index access method opfamily is for */ + Oid opfmethod BKI_LOOKUP(pg_am); + + /* name of this opfamily */ + NameData opfname; + + /* namespace of this opfamily */ + Oid opfnamespace BKI_DEFAULT(PGNSP); + + /* opfamily owner */ + Oid opfowner BKI_DEFAULT(PGUID); } FormData_pg_opfamily; /* ---------------- @@ -43,152 +48,11 @@ CATALOG(pg_opfamily,2753) */ typedef FormData_pg_opfamily *Form_pg_opfamily; -/* ---------------- - * compiler constants for pg_opfamily - * ---------------- - */ -#define Natts_pg_opfamily 4 -#define Anum_pg_opfamily_opfmethod 1 -#define Anum_pg_opfamily_opfname 2 -#define Anum_pg_opfamily_opfnamespace 3 -#define Anum_pg_opfamily_opfowner 4 +#ifdef EXPOSE_TO_CLIENT_CODE #define IsBooleanOpfamily(opfamily) \ ((opfamily) == BOOL_BTREE_FAM_OID || (opfamily) == BOOL_HASH_FAM_OID) -/* ---------------- - * initial contents of pg_opfamily - * ---------------- - */ - -DATA(insert OID = 421 ( 403 abstime_ops PGNSP PGUID )); -DATA(insert OID = 397 ( 403 array_ops PGNSP PGUID )); -DATA(insert OID = 627 ( 405 array_ops PGNSP PGUID )); -DATA(insert OID = 423 ( 403 bit_ops PGNSP PGUID )); -DATA(insert OID = 424 ( 403 bool_ops PGNSP PGUID )); -#define BOOL_BTREE_FAM_OID 424 -DATA(insert OID = 426 ( 403 bpchar_ops PGNSP PGUID )); -#define BPCHAR_BTREE_FAM_OID 426 -DATA(insert OID = 427 ( 405 bpchar_ops PGNSP PGUID )); -DATA(insert OID = 428 ( 403 bytea_ops PGNSP PGUID )); -#define BYTEA_BTREE_FAM_OID 428 -DATA(insert OID = 429 ( 403 char_ops PGNSP PGUID )); -DATA(insert OID = 431 ( 405 char_ops PGNSP PGUID )); -DATA(insert OID = 434 ( 403 datetime_ops PGNSP PGUID )); -DATA(insert OID = 435 ( 405 date_ops PGNSP PGUID )); -DATA(insert OID = 1970 ( 403 float_ops PGNSP PGUID )); -DATA(insert OID = 1971 ( 405 float_ops PGNSP PGUID )); -DATA(insert OID = 1974 ( 403 network_ops PGNSP PGUID )); -#define NETWORK_BTREE_FAM_OID 1974 -DATA(insert OID = 1975 ( 405 network_ops PGNSP PGUID )); -DATA(insert OID = 3550 ( 783 network_ops PGNSP PGUID )); -DATA(insert OID = 3794 ( 4000 network_ops PGNSP PGUID )); -DATA(insert OID = 1976 ( 403 integer_ops PGNSP PGUID )); -#define INTEGER_BTREE_FAM_OID 1976 -DATA(insert OID = 1977 ( 405 integer_ops PGNSP PGUID )); -DATA(insert OID = 1982 ( 403 interval_ops PGNSP PGUID )); -DATA(insert OID = 1983 ( 405 interval_ops PGNSP PGUID )); -DATA(insert OID = 1984 ( 403 macaddr_ops PGNSP PGUID )); -DATA(insert OID = 1985 ( 405 macaddr_ops PGNSP PGUID )); -DATA(insert OID = 3371 ( 403 macaddr8_ops PGNSP PGUID )); -DATA(insert OID = 3372 ( 405 macaddr8_ops PGNSP PGUID )); -DATA(insert OID = 1986 ( 403 name_ops PGNSP PGUID )); -#define NAME_BTREE_FAM_OID 1986 -DATA(insert OID = 1987 ( 405 name_ops PGNSP PGUID )); -DATA(insert OID = 1988 ( 403 numeric_ops PGNSP PGUID )); -DATA(insert OID = 1998 ( 405 numeric_ops PGNSP PGUID )); -DATA(insert OID = 1989 ( 403 oid_ops PGNSP PGUID )); -#define OID_BTREE_FAM_OID 1989 -DATA(insert OID = 1990 ( 405 oid_ops PGNSP PGUID )); -DATA(insert OID = 1991 ( 403 oidvector_ops PGNSP PGUID )); -DATA(insert OID = 1992 ( 405 oidvector_ops PGNSP PGUID )); -DATA(insert OID = 2994 ( 403 record_ops PGNSP PGUID )); -DATA(insert OID = 3194 ( 403 record_image_ops PGNSP PGUID )); -DATA(insert OID = 1994 ( 403 text_ops PGNSP PGUID )); -#define TEXT_BTREE_FAM_OID 1994 -DATA(insert OID = 1995 ( 405 text_ops PGNSP PGUID )); -DATA(insert OID = 1996 ( 403 time_ops PGNSP PGUID )); -DATA(insert OID = 1997 ( 405 time_ops PGNSP PGUID )); -DATA(insert OID = 1999 ( 405 timestamptz_ops PGNSP PGUID )); -DATA(insert OID = 2000 ( 403 timetz_ops PGNSP PGUID )); -DATA(insert OID = 2001 ( 405 timetz_ops PGNSP PGUID )); -DATA(insert OID = 2002 ( 403 varbit_ops PGNSP PGUID )); -DATA(insert OID = 2040 ( 405 timestamp_ops PGNSP PGUID )); -DATA(insert OID = 2095 ( 403 text_pattern_ops PGNSP PGUID )); -#define TEXT_PATTERN_BTREE_FAM_OID 2095 -DATA(insert OID = 2097 ( 403 bpchar_pattern_ops PGNSP PGUID )); -#define BPCHAR_PATTERN_BTREE_FAM_OID 2097 -DATA(insert OID = 2099 ( 403 money_ops PGNSP PGUID )); -DATA(insert OID = 2222 ( 405 bool_ops PGNSP PGUID )); -#define BOOL_HASH_FAM_OID 2222 -DATA(insert OID = 2223 ( 405 bytea_ops PGNSP PGUID )); -DATA(insert OID = 2789 ( 403 tid_ops PGNSP PGUID )); -DATA(insert OID = 2225 ( 405 xid_ops PGNSP PGUID )); -DATA(insert OID = 2226 ( 405 cid_ops PGNSP PGUID )); -DATA(insert OID = 2227 ( 405 abstime_ops PGNSP PGUID )); -DATA(insert OID = 2228 ( 405 reltime_ops PGNSP PGUID )); -DATA(insert OID = 2229 ( 405 text_pattern_ops PGNSP PGUID )); -DATA(insert OID = 2231 ( 405 bpchar_pattern_ops PGNSP PGUID )); -DATA(insert OID = 2233 ( 403 reltime_ops PGNSP PGUID )); -DATA(insert OID = 2234 ( 403 tinterval_ops PGNSP PGUID )); -DATA(insert OID = 2235 ( 405 aclitem_ops PGNSP PGUID )); -DATA(insert OID = 2593 ( 783 box_ops PGNSP PGUID )); -DATA(insert OID = 2594 ( 783 poly_ops PGNSP PGUID )); -DATA(insert OID = 2595 ( 783 circle_ops PGNSP PGUID )); -DATA(insert OID = 1029 ( 783 point_ops PGNSP PGUID )); -DATA(insert OID = 2745 ( 2742 array_ops PGNSP PGUID )); -DATA(insert OID = 2968 ( 403 uuid_ops PGNSP PGUID )); -DATA(insert OID = 2969 ( 405 uuid_ops PGNSP PGUID )); -DATA(insert OID = 3253 ( 403 pg_lsn_ops PGNSP PGUID )); -DATA(insert OID = 3254 ( 405 pg_lsn_ops PGNSP PGUID )); -DATA(insert OID = 3522 ( 403 enum_ops PGNSP PGUID )); -DATA(insert OID = 3523 ( 405 enum_ops PGNSP PGUID )); -DATA(insert OID = 3626 ( 403 tsvector_ops PGNSP PGUID )); -DATA(insert OID = 3655 ( 783 tsvector_ops PGNSP PGUID )); -DATA(insert OID = 3659 ( 2742 tsvector_ops PGNSP PGUID )); -DATA(insert OID = 3683 ( 403 tsquery_ops PGNSP PGUID )); -DATA(insert OID = 3702 ( 783 tsquery_ops PGNSP PGUID )); -DATA(insert OID = 3901 ( 403 range_ops PGNSP PGUID )); -DATA(insert OID = 3903 ( 405 range_ops PGNSP PGUID )); -DATA(insert OID = 3919 ( 783 range_ops PGNSP PGUID )); -DATA(insert OID = 3474 ( 4000 range_ops PGNSP PGUID )); -DATA(insert OID = 4015 ( 4000 quad_point_ops PGNSP PGUID )); -DATA(insert OID = 4016 ( 4000 kd_point_ops PGNSP PGUID )); -DATA(insert OID = 4017 ( 4000 text_ops PGNSP PGUID )); -#define TEXT_SPGIST_FAM_OID 4017 -DATA(insert OID = 4033 ( 403 jsonb_ops PGNSP PGUID )); -DATA(insert OID = 4034 ( 405 jsonb_ops PGNSP PGUID )); -DATA(insert OID = 4035 ( 783 jsonb_ops PGNSP PGUID )); -DATA(insert OID = 4036 ( 2742 jsonb_ops PGNSP PGUID )); -DATA(insert OID = 4037 ( 2742 jsonb_path_ops PGNSP PGUID )); - -DATA(insert OID = 4054 ( 3580 integer_minmax_ops PGNSP PGUID )); -DATA(insert OID = 4055 ( 3580 numeric_minmax_ops PGNSP PGUID )); -DATA(insert OID = 4056 ( 3580 text_minmax_ops PGNSP PGUID )); -DATA(insert OID = 4058 ( 3580 timetz_minmax_ops PGNSP PGUID )); -DATA(insert OID = 4059 ( 3580 datetime_minmax_ops PGNSP PGUID )); -DATA(insert OID = 4062 ( 3580 char_minmax_ops PGNSP PGUID )); -DATA(insert OID = 4064 ( 3580 bytea_minmax_ops PGNSP PGUID )); -DATA(insert OID = 4065 ( 3580 name_minmax_ops PGNSP PGUID )); -DATA(insert OID = 4068 ( 3580 oid_minmax_ops PGNSP PGUID )); -DATA(insert OID = 4069 ( 3580 tid_minmax_ops PGNSP PGUID )); -DATA(insert OID = 4070 ( 3580 float_minmax_ops PGNSP PGUID )); -DATA(insert OID = 4072 ( 3580 abstime_minmax_ops PGNSP PGUID )); -DATA(insert OID = 4073 ( 3580 reltime_minmax_ops PGNSP PGUID )); -DATA(insert OID = 4074 ( 3580 macaddr_minmax_ops PGNSP PGUID )); -DATA(insert OID = 4109 ( 3580 macaddr8_minmax_ops PGNSP PGUID )); -DATA(insert OID = 4075 ( 3580 network_minmax_ops PGNSP PGUID )); -DATA(insert OID = 4102 ( 3580 network_inclusion_ops PGNSP PGUID )); -DATA(insert OID = 4076 ( 3580 bpchar_minmax_ops PGNSP PGUID )); -DATA(insert OID = 4077 ( 3580 time_minmax_ops PGNSP PGUID )); -DATA(insert OID = 4078 ( 3580 interval_minmax_ops PGNSP PGUID )); -DATA(insert OID = 4079 ( 3580 bit_minmax_ops PGNSP PGUID )); -DATA(insert OID = 4080 ( 3580 varbit_minmax_ops PGNSP PGUID )); -DATA(insert OID = 4081 ( 3580 uuid_minmax_ops PGNSP PGUID )); -DATA(insert OID = 4103 ( 3580 range_inclusion_ops PGNSP PGUID )); -DATA(insert OID = 4082 ( 3580 pg_lsn_minmax_ops PGNSP PGUID )); -DATA(insert OID = 4104 ( 3580 box_inclusion_ops PGNSP PGUID )); -DATA(insert OID = 5000 ( 4000 box_ops PGNSP PGUID )); -DATA(insert OID = 5008 ( 4000 poly_ops PGNSP PGUID )); +#endif /* EXPOSE_TO_CLIENT_CODE */ #endif /* PG_OPFAMILY_H */ diff --git a/src/include/catalog/pg_partitioned_table.h b/src/include/catalog/pg_partitioned_table.h index 9dc66f4954..676532ae3f 100644 --- a/src/include/catalog/pg_partitioned_table.h +++ b/src/include/catalog/pg_partitioned_table.h @@ -2,7 +2,6 @@ * * pg_partitioned_table.h * definition of the system "partitioned table" relation - * along with the relation's initial contents. * * * Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group @@ -10,8 +9,8 @@ * src/include/catalog/pg_partitioned_table.h * * NOTES - * the genbki.pl script reads this file and generates .bki - * information from the DATA() statements. + * The Catalog.pm module reads this file and derives schema + * information. * *------------------------------------------------------------------------- */ @@ -19,15 +18,14 @@ #define PG_PARTITIONED_TABLE_H #include "catalog/genbki.h" +#include "catalog/pg_partitioned_table_d.h" /* ---------------- * pg_partitioned_table definition. cpp turns this into * typedef struct FormData_pg_partitioned_table * ---------------- */ -#define PartitionedRelationId 3350 - -CATALOG(pg_partitioned_table,3350) BKI_WITHOUT_OIDS +CATALOG(pg_partitioned_table,3350,PartitionedRelationId) BKI_WITHOUT_OIDS { Oid partrelid; /* partitioned table oid */ char partstrat; /* partitioning strategy */ @@ -60,18 +58,4 @@ CATALOG(pg_partitioned_table,3350) BKI_WITHOUT_OIDS */ typedef FormData_pg_partitioned_table *Form_pg_partitioned_table; -/* ---------------- - * compiler constants for pg_partitioned_table - * ---------------- - */ -#define Natts_pg_partitioned_table 8 -#define Anum_pg_partitioned_table_partrelid 1 -#define Anum_pg_partitioned_table_partstrat 2 -#define Anum_pg_partitioned_table_partnatts 3 -#define Anum_pg_partitioned_table_partdefid 4 -#define Anum_pg_partitioned_table_partattrs 5 -#define Anum_pg_partitioned_table_partclass 6 -#define Anum_pg_partitioned_table_partcollation 7 -#define Anum_pg_partitioned_table_partexprs 8 - #endif /* PG_PARTITIONED_TABLE_H */ diff --git a/src/include/catalog/pg_pltemplate.dat b/src/include/catalog/pg_pltemplate.dat new file mode 100644 index 0000000000..2d8bfabbe0 --- /dev/null +++ b/src/include/catalog/pg_pltemplate.dat @@ -0,0 +1,51 @@ +#---------------------------------------------------------------------- +# +# pg_pltemplate.dat +# Initial contents of the pg_pltemplate system relation. +# +# Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group +# Portions Copyright (c) 1994, Regents of the University of California +# +# src/include/catalog/pg_pltemplate.dat +# +#---------------------------------------------------------------------- + +[ + +{ tmplname => 'plpgsql', tmpltrusted => 't', tmpldbacreate => 't', + tmplhandler => 'plpgsql_call_handler', tmplinline => 'plpgsql_inline_handler', + tmplvalidator => 'plpgsql_validator', tmpllibrary => '$libdir/plpgsql', + tmplacl => '_null_' }, +{ tmplname => 'pltcl', tmpltrusted => 't', tmpldbacreate => 't', + tmplhandler => 'pltcl_call_handler', tmplinline => '_null_', + tmplvalidator => '_null_', tmpllibrary => '$libdir/pltcl', + tmplacl => '_null_' }, +{ tmplname => 'pltclu', tmpltrusted => 'f', tmpldbacreate => 'f', + tmplhandler => 'pltclu_call_handler', tmplinline => '_null_', + tmplvalidator => '_null_', tmpllibrary => '$libdir/pltcl', + tmplacl => '_null_' }, +{ tmplname => 'plperl', tmpltrusted => 't', tmpldbacreate => 't', + tmplhandler => 'plperl_call_handler', tmplinline => 'plperl_inline_handler', + tmplvalidator => 'plperl_validator', tmpllibrary => '$libdir/plperl', + tmplacl => '_null_' }, +{ tmplname => 'plperlu', tmpltrusted => 'f', tmpldbacreate => 'f', + tmplhandler => 'plperlu_call_handler', tmplinline => 'plperlu_inline_handler', + tmplvalidator => 'plperlu_validator', tmpllibrary => '$libdir/plperl', + tmplacl => '_null_' }, +{ tmplname => 'plpythonu', tmpltrusted => 'f', tmpldbacreate => 'f', + tmplhandler => 'plpython_call_handler', + tmplinline => 'plpython_inline_handler', + tmplvalidator => 'plpython_validator', tmpllibrary => '$libdir/plpython2', + tmplacl => '_null_' }, +{ tmplname => 'plpython2u', tmpltrusted => 'f', tmpldbacreate => 'f', + tmplhandler => 'plpython2_call_handler', + tmplinline => 'plpython2_inline_handler', + tmplvalidator => 'plpython2_validator', tmpllibrary => '$libdir/plpython2', + tmplacl => '_null_' }, +{ tmplname => 'plpython3u', tmpltrusted => 'f', tmpldbacreate => 'f', + tmplhandler => 'plpython3_call_handler', + tmplinline => 'plpython3_inline_handler', + tmplvalidator => 'plpython3_validator', tmpllibrary => '$libdir/plpython3', + tmplacl => '_null_' }, + +] diff --git a/src/include/catalog/pg_pltemplate.h b/src/include/catalog/pg_pltemplate.h index d28d1883f6..d84c86b08d 100644 --- a/src/include/catalog/pg_pltemplate.h +++ b/src/include/catalog/pg_pltemplate.h @@ -2,7 +2,6 @@ * * pg_pltemplate.h * definition of the system "PL template" relation (pg_pltemplate) - * along with the relation's initial contents. * * * Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group @@ -11,8 +10,8 @@ * src/include/catalog/pg_pltemplate.h * * NOTES - * the genbki.pl script reads this file and generates .bki - * information from the DATA() statements. + * The Catalog.pm module reads this file and derives schema + * information. * *------------------------------------------------------------------------- */ @@ -20,15 +19,14 @@ #define PG_PLTEMPLATE_H #include "catalog/genbki.h" +#include "catalog/pg_pltemplate_d.h" /* ---------------- * pg_pltemplate definition. cpp turns this into * typedef struct FormData_pg_pltemplate * ---------------- */ -#define PLTemplateRelationId 1136 - -CATALOG(pg_pltemplate,1136) BKI_SHARED_RELATION BKI_WITHOUT_OIDS +CATALOG(pg_pltemplate,1136,PLTemplateRelationId) BKI_SHARED_RELATION BKI_WITHOUT_OIDS { NameData tmplname; /* name of PL */ bool tmpltrusted; /* PL is trusted? */ @@ -51,33 +49,4 @@ CATALOG(pg_pltemplate,1136) BKI_SHARED_RELATION BKI_WITHOUT_OIDS */ typedef FormData_pg_pltemplate *Form_pg_pltemplate; -/* ---------------- - * compiler constants for pg_pltemplate - * ---------------- - */ -#define Natts_pg_pltemplate 8 -#define Anum_pg_pltemplate_tmplname 1 -#define Anum_pg_pltemplate_tmpltrusted 2 -#define Anum_pg_pltemplate_tmpldbacreate 3 -#define Anum_pg_pltemplate_tmplhandler 4 -#define Anum_pg_pltemplate_tmplinline 5 -#define Anum_pg_pltemplate_tmplvalidator 6 -#define Anum_pg_pltemplate_tmpllibrary 7 -#define Anum_pg_pltemplate_tmplacl 8 - - -/* ---------------- - * initial contents of pg_pltemplate - * ---------------- - */ - -DATA(insert ( plpgsql t t plpgsql_call_handler plpgsql_inline_handler plpgsql_validator "$libdir/plpgsql" _null_ )); -DATA(insert ( pltcl t t pltcl_call_handler _null_ _null_ "$libdir/pltcl" _null_ )); -DATA(insert ( pltclu f f pltclu_call_handler _null_ _null_ "$libdir/pltcl" _null_ )); -DATA(insert ( plperl t t plperl_call_handler plperl_inline_handler plperl_validator "$libdir/plperl" _null_ )); -DATA(insert ( plperlu f f plperlu_call_handler plperlu_inline_handler plperlu_validator "$libdir/plperl" _null_ )); -DATA(insert ( plpythonu f f plpython_call_handler plpython_inline_handler plpython_validator "$libdir/plpython2" _null_ )); -DATA(insert ( plpython2u f f plpython2_call_handler plpython2_inline_handler plpython2_validator "$libdir/plpython2" _null_ )); -DATA(insert ( plpython3u f f plpython3_call_handler plpython3_inline_handler plpython3_validator "$libdir/plpython3" _null_ )); - #endif /* PG_PLTEMPLATE_H */ diff --git a/src/include/catalog/pg_policy.h b/src/include/catalog/pg_policy.h index 0d94f1ad72..45fdc285f7 100644 --- a/src/include/catalog/pg_policy.h +++ b/src/include/catalog/pg_policy.h @@ -1,24 +1,32 @@ -/* +/*------------------------------------------------------------------------- + * * pg_policy.h * definition of the system "policy" relation (pg_policy) * + * * Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * + * src/include/catalog/pg_policy.h + * + * NOTES + * The Catalog.pm module reads this file and derives schema + * information. + * + *------------------------------------------------------------------------- */ #ifndef PG_POLICY_H #define PG_POLICY_H #include "catalog/genbki.h" +#include "catalog/pg_policy_d.h" /* ---------------- * pg_policy definition. cpp turns this into * typedef struct FormData_pg_policy * ---------------- */ -#define PolicyRelationId 3256 - -CATALOG(pg_policy,3256) +CATALOG(pg_policy,3256,PolicyRelationId) { NameData polname; /* Policy name. */ Oid polrelid; /* Oid of the relation with policy. */ @@ -39,17 +47,4 @@ CATALOG(pg_policy,3256) */ typedef FormData_pg_policy *Form_pg_policy; -/* ---------------- - * compiler constants for pg_policy - * ---------------- - */ -#define Natts_pg_policy 7 -#define Anum_pg_policy_polname 1 -#define Anum_pg_policy_polrelid 2 -#define Anum_pg_policy_polcmd 3 -#define Anum_pg_policy_polpermissive 4 -#define Anum_pg_policy_polroles 5 -#define Anum_pg_policy_polqual 6 -#define Anum_pg_policy_polwithcheck 7 - #endif /* PG_POLICY_H */ diff --git a/src/include/catalog/pg_proc.dat b/src/include/catalog/pg_proc.dat new file mode 100644 index 0000000000..ad685f7dce --- /dev/null +++ b/src/include/catalog/pg_proc.dat @@ -0,0 +1,10210 @@ +#---------------------------------------------------------------------- +# +# pg_proc.dat +# Initial contents of the pg_proc system relation. +# +# Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group +# Portions Copyright (c) 1994, Regents of the University of California +# +# src/include/catalog/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 +# they are reasonably useful in their own right +# "aggregate final function" for aggfinalfn functions (likewise) +# "convert srctypename to desttypename" for cast functions +# "less-equal-greater" for B-tree comparison functions + +# Once upon a time these entries were ordered by OID. Lately it's often +# been the custom to insert new entries adjacent to related older entries. +# Try to do one or the other though, don't just insert entries at random. + +# OIDS 1 - 99 + +{ oid => '1242', descr => 'I/O', + proname => 'boolin', prorettype => 'bool', proargtypes => 'cstring', + prosrc => 'boolin' }, +{ oid => '1243', descr => 'I/O', + proname => 'boolout', prorettype => 'cstring', proargtypes => 'bool', + prosrc => 'boolout' }, +{ oid => '1244', descr => 'I/O', + proname => 'byteain', prorettype => 'bytea', proargtypes => 'cstring', + prosrc => 'byteain' }, +{ oid => '31', descr => 'I/O', + proname => 'byteaout', prorettype => 'cstring', proargtypes => 'bytea', + prosrc => 'byteaout' }, +{ oid => '1245', descr => 'I/O', + proname => 'charin', prorettype => 'char', proargtypes => 'cstring', + prosrc => 'charin' }, +{ oid => '33', descr => 'I/O', + proname => 'charout', prorettype => 'cstring', proargtypes => 'char', + prosrc => 'charout' }, +{ oid => '34', descr => 'I/O', + proname => 'namein', prorettype => 'name', proargtypes => 'cstring', + prosrc => 'namein' }, +{ oid => '35', descr => 'I/O', + proname => 'nameout', prorettype => 'cstring', proargtypes => 'name', + prosrc => 'nameout' }, +{ oid => '38', descr => 'I/O', + proname => 'int2in', prorettype => 'int2', proargtypes => 'cstring', + prosrc => 'int2in' }, +{ oid => '39', descr => 'I/O', + proname => 'int2out', prorettype => 'cstring', proargtypes => 'int2', + prosrc => 'int2out' }, +{ oid => '40', descr => 'I/O', + proname => 'int2vectorin', prorettype => 'int2vector', + proargtypes => 'cstring', prosrc => 'int2vectorin' }, +{ oid => '41', descr => 'I/O', + proname => 'int2vectorout', prorettype => 'cstring', + proargtypes => 'int2vector', prosrc => 'int2vectorout' }, +{ oid => '42', descr => 'I/O', + proname => 'int4in', prorettype => 'int4', proargtypes => 'cstring', + prosrc => 'int4in' }, +{ oid => '43', descr => 'I/O', + proname => 'int4out', prorettype => 'cstring', proargtypes => 'int4', + prosrc => 'int4out' }, +{ oid => '44', descr => 'I/O', + proname => 'regprocin', provolatile => 's', prorettype => 'regproc', + proargtypes => 'cstring', prosrc => 'regprocin' }, +{ oid => '45', descr => 'I/O', + proname => 'regprocout', provolatile => 's', prorettype => 'cstring', + proargtypes => 'regproc', prosrc => 'regprocout' }, +{ oid => '3494', descr => 'convert proname to regproc', + proname => 'to_regproc', provolatile => 's', prorettype => 'regproc', + proargtypes => 'text', prosrc => 'to_regproc' }, +{ oid => '3479', descr => 'convert proname to regprocedure', + proname => 'to_regprocedure', provolatile => 's', + prorettype => 'regprocedure', proargtypes => 'text', + prosrc => 'to_regprocedure' }, +{ oid => '46', descr => 'I/O', + proname => 'textin', prorettype => 'text', proargtypes => 'cstring', + prosrc => 'textin' }, +{ oid => '47', descr => 'I/O', + proname => 'textout', prorettype => 'cstring', proargtypes => 'text', + prosrc => 'textout' }, +{ oid => '48', descr => 'I/O', + proname => 'tidin', prorettype => 'tid', proargtypes => 'cstring', + prosrc => 'tidin' }, +{ oid => '49', descr => 'I/O', + proname => 'tidout', prorettype => 'cstring', proargtypes => 'tid', + prosrc => 'tidout' }, +{ oid => '50', descr => 'I/O', + proname => 'xidin', prorettype => 'xid', proargtypes => 'cstring', + prosrc => 'xidin' }, +{ oid => '51', descr => 'I/O', + proname => 'xidout', prorettype => 'cstring', proargtypes => 'xid', + prosrc => 'xidout' }, +{ oid => '52', descr => 'I/O', + proname => 'cidin', prorettype => 'cid', proargtypes => 'cstring', + prosrc => 'cidin' }, +{ oid => '53', descr => 'I/O', + proname => 'cidout', prorettype => 'cstring', proargtypes => 'cid', + prosrc => 'cidout' }, +{ oid => '54', descr => 'I/O', + proname => 'oidvectorin', prorettype => 'oidvector', proargtypes => 'cstring', + prosrc => 'oidvectorin' }, +{ oid => '55', descr => 'I/O', + proname => 'oidvectorout', prorettype => 'cstring', + proargtypes => 'oidvector', prosrc => 'oidvectorout' }, +{ oid => '56', + proname => 'boollt', proleakproof => 't', prorettype => 'bool', + proargtypes => 'bool bool', prosrc => 'boollt' }, +{ oid => '57', + proname => 'boolgt', proleakproof => 't', prorettype => 'bool', + proargtypes => 'bool bool', prosrc => 'boolgt' }, +{ oid => '60', + proname => 'booleq', proleakproof => 't', prorettype => 'bool', + proargtypes => 'bool bool', prosrc => 'booleq' }, +{ oid => '61', + proname => 'chareq', proleakproof => 't', prorettype => 'bool', + proargtypes => 'char char', prosrc => 'chareq' }, +{ oid => '62', + proname => 'nameeq', proleakproof => 't', prorettype => 'bool', + proargtypes => 'name name', prosrc => 'nameeq' }, +{ oid => '63', + proname => 'int2eq', proleakproof => 't', prorettype => 'bool', + proargtypes => 'int2 int2', prosrc => 'int2eq' }, +{ oid => '64', + proname => 'int2lt', proleakproof => 't', prorettype => 'bool', + proargtypes => 'int2 int2', prosrc => 'int2lt' }, +{ oid => '65', + proname => 'int4eq', proleakproof => 't', prorettype => 'bool', + proargtypes => 'int4 int4', prosrc => 'int4eq' }, +{ oid => '66', + proname => 'int4lt', proleakproof => 't', prorettype => 'bool', + proargtypes => 'int4 int4', prosrc => 'int4lt' }, +{ oid => '67', + proname => 'texteq', proleakproof => 't', prorettype => 'bool', + proargtypes => 'text text', prosrc => 'texteq' }, +{ oid => '3696', + proname => 'starts_with', proleakproof => 't', prorettype => 'bool', + proargtypes => 'text text', prosrc => 'text_starts_with' }, +{ oid => '68', + proname => 'xideq', proleakproof => 't', prorettype => 'bool', + proargtypes => 'xid xid', prosrc => 'xideq' }, +{ oid => '3308', + proname => 'xidneq', proleakproof => 't', prorettype => 'bool', + proargtypes => 'xid xid', prosrc => 'xidneq' }, +{ oid => '69', + proname => 'cideq', proleakproof => 't', prorettype => 'bool', + proargtypes => 'cid cid', prosrc => 'cideq' }, +{ oid => '70', + proname => 'charne', proleakproof => 't', prorettype => 'bool', + proargtypes => 'char char', prosrc => 'charne' }, +{ oid => '1246', + proname => 'charlt', proleakproof => 't', prorettype => 'bool', + proargtypes => 'char char', prosrc => 'charlt' }, +{ oid => '72', + proname => 'charle', proleakproof => 't', prorettype => 'bool', + proargtypes => 'char char', prosrc => 'charle' }, +{ oid => '73', + proname => 'chargt', proleakproof => 't', prorettype => 'bool', + proargtypes => 'char char', prosrc => 'chargt' }, +{ oid => '74', + proname => 'charge', proleakproof => 't', prorettype => 'bool', + proargtypes => 'char char', prosrc => 'charge' }, +{ oid => '77', descr => 'convert char to int4', + proname => 'int4', prorettype => 'int4', proargtypes => 'char', + prosrc => 'chartoi4' }, +{ oid => '78', descr => 'convert int4 to char', + proname => 'char', prorettype => 'char', proargtypes => 'int4', + prosrc => 'i4tochar' }, + +{ oid => '79', + proname => 'nameregexeq', prorettype => 'bool', proargtypes => 'name text', + prosrc => 'nameregexeq' }, +{ oid => '1252', + proname => 'nameregexne', prorettype => 'bool', proargtypes => 'name text', + prosrc => 'nameregexne' }, +{ oid => '1254', + proname => 'textregexeq', prorettype => 'bool', proargtypes => 'text text', + prosrc => 'textregexeq' }, +{ oid => '1256', + proname => 'textregexne', prorettype => 'bool', proargtypes => 'text text', + prosrc => 'textregexne' }, +{ oid => '1257', descr => 'length', + proname => 'textlen', prorettype => 'int4', proargtypes => 'text', + prosrc => 'textlen' }, +{ oid => '1258', + proname => 'textcat', prorettype => 'text', proargtypes => 'text text', + prosrc => 'textcat' }, + +{ oid => '84', + proname => 'boolne', proleakproof => 't', prorettype => 'bool', + proargtypes => 'bool bool', prosrc => 'boolne' }, +{ oid => '89', descr => 'PostgreSQL version string', + proname => 'version', provolatile => 's', prorettype => 'text', + proargtypes => '', prosrc => 'pgsql_version' }, + +{ oid => '86', descr => 'I/O', + proname => 'pg_ddl_command_in', prorettype => 'pg_ddl_command', + proargtypes => 'cstring', prosrc => 'pg_ddl_command_in' }, +{ oid => '87', descr => 'I/O', + proname => 'pg_ddl_command_out', prorettype => 'cstring', + proargtypes => 'pg_ddl_command', prosrc => 'pg_ddl_command_out' }, +{ oid => '88', descr => 'I/O', + proname => 'pg_ddl_command_recv', prorettype => 'pg_ddl_command', + proargtypes => 'internal', prosrc => 'pg_ddl_command_recv' }, +{ oid => '90', descr => 'I/O', + proname => 'pg_ddl_command_send', prorettype => 'bytea', + proargtypes => 'pg_ddl_command', prosrc => 'pg_ddl_command_send' }, + +# OIDS 100 - 199 + +{ oid => '101', descr => 'restriction selectivity of = and related operators', + proname => 'eqsel', provolatile => 's', prorettype => 'float8', + proargtypes => 'internal oid internal int4', prosrc => 'eqsel' }, +{ oid => '102', + descr => 'restriction selectivity of <> and related operators', + proname => 'neqsel', provolatile => 's', prorettype => 'float8', + proargtypes => 'internal oid internal int4', prosrc => 'neqsel' }, +{ oid => '103', + descr => 'restriction selectivity of < and related operators on scalar datatypes', + proname => 'scalarltsel', provolatile => 's', prorettype => 'float8', + proargtypes => 'internal oid internal int4', prosrc => 'scalarltsel' }, +{ oid => '104', + descr => 'restriction selectivity of > and related operators on scalar datatypes', + proname => 'scalargtsel', provolatile => 's', prorettype => 'float8', + proargtypes => 'internal oid internal int4', prosrc => 'scalargtsel' }, +{ oid => '105', descr => 'join selectivity of = and related operators', + proname => 'eqjoinsel', provolatile => 's', prorettype => 'float8', + proargtypes => 'internal oid internal int2 internal', prosrc => 'eqjoinsel' }, +{ oid => '106', descr => 'join selectivity of <> and related operators', + proname => 'neqjoinsel', provolatile => 's', prorettype => 'float8', + proargtypes => 'internal oid internal int2 internal', + prosrc => 'neqjoinsel' }, +{ oid => '107', + descr => 'join selectivity of < and related operators on scalar datatypes', + proname => 'scalarltjoinsel', provolatile => 's', prorettype => 'float8', + proargtypes => 'internal oid internal int2 internal', + prosrc => 'scalarltjoinsel' }, +{ oid => '108', + descr => 'join selectivity of > and related operators on scalar datatypes', + proname => 'scalargtjoinsel', provolatile => 's', prorettype => 'float8', + proargtypes => 'internal oid internal int2 internal', + prosrc => 'scalargtjoinsel' }, + +{ oid => '336', + descr => 'restriction selectivity of <= and related operators on scalar datatypes', + proname => 'scalarlesel', provolatile => 's', prorettype => 'float8', + proargtypes => 'internal oid internal int4', prosrc => 'scalarlesel' }, +{ oid => '337', + descr => 'restriction selectivity of >= and related operators on scalar datatypes', + proname => 'scalargesel', provolatile => 's', prorettype => 'float8', + proargtypes => 'internal oid internal int4', prosrc => 'scalargesel' }, +{ oid => '386', + descr => 'join selectivity of <= and related operators on scalar datatypes', + proname => 'scalarlejoinsel', provolatile => 's', prorettype => 'float8', + proargtypes => 'internal oid internal int2 internal', + prosrc => 'scalarlejoinsel' }, +{ oid => '398', + descr => 'join selectivity of >= and related operators on scalar datatypes', + proname => 'scalargejoinsel', provolatile => 's', prorettype => 'float8', + proargtypes => 'internal oid internal int2 internal', + prosrc => 'scalargejoinsel' }, + +{ oid => '109', descr => 'I/O', + proname => 'unknownin', prorettype => 'unknown', proargtypes => 'cstring', + prosrc => 'unknownin' }, +{ oid => '110', descr => 'I/O', + proname => 'unknownout', prorettype => 'cstring', proargtypes => 'unknown', + prosrc => 'unknownout' }, +{ oid => '111', + proname => 'numeric_fac', prorettype => 'numeric', proargtypes => 'int8', + prosrc => 'numeric_fac' }, + +{ oid => '115', + proname => 'box_above_eq', prorettype => 'bool', proargtypes => 'box box', + prosrc => 'box_above_eq' }, +{ oid => '116', + proname => 'box_below_eq', prorettype => 'bool', proargtypes => 'box box', + prosrc => 'box_below_eq' }, + +{ oid => '117', descr => 'I/O', + proname => 'point_in', prorettype => 'point', proargtypes => 'cstring', + prosrc => 'point_in' }, +{ oid => '118', descr => 'I/O', + proname => 'point_out', prorettype => 'cstring', proargtypes => 'point', + prosrc => 'point_out' }, +{ oid => '119', descr => 'I/O', + proname => 'lseg_in', prorettype => 'lseg', proargtypes => 'cstring', + prosrc => 'lseg_in' }, +{ oid => '120', descr => 'I/O', + proname => 'lseg_out', prorettype => 'cstring', proargtypes => 'lseg', + prosrc => 'lseg_out' }, +{ oid => '121', descr => 'I/O', + proname => 'path_in', prorettype => 'path', proargtypes => 'cstring', + prosrc => 'path_in' }, +{ oid => '122', descr => 'I/O', + proname => 'path_out', prorettype => 'cstring', proargtypes => 'path', + prosrc => 'path_out' }, +{ oid => '123', descr => 'I/O', + proname => 'box_in', prorettype => 'box', proargtypes => 'cstring', + prosrc => 'box_in' }, +{ oid => '124', descr => 'I/O', + proname => 'box_out', prorettype => 'cstring', proargtypes => 'box', + prosrc => 'box_out' }, +{ oid => '125', + proname => 'box_overlap', prorettype => 'bool', proargtypes => 'box box', + prosrc => 'box_overlap' }, +{ oid => '126', + proname => 'box_ge', prorettype => 'bool', proargtypes => 'box box', + prosrc => 'box_ge' }, +{ oid => '127', + proname => 'box_gt', prorettype => 'bool', proargtypes => 'box box', + prosrc => 'box_gt' }, +{ oid => '128', + proname => 'box_eq', prorettype => 'bool', proargtypes => 'box box', + prosrc => 'box_eq' }, +{ oid => '129', + proname => 'box_lt', prorettype => 'bool', proargtypes => 'box box', + prosrc => 'box_lt' }, +{ oid => '130', + proname => 'box_le', prorettype => 'bool', proargtypes => 'box box', + prosrc => 'box_le' }, +{ oid => '131', + proname => 'point_above', prorettype => 'bool', proargtypes => 'point point', + prosrc => 'point_above' }, +{ oid => '132', + proname => 'point_left', prorettype => 'bool', proargtypes => 'point point', + prosrc => 'point_left' }, +{ oid => '133', + proname => 'point_right', prorettype => 'bool', proargtypes => 'point point', + prosrc => 'point_right' }, +{ oid => '134', + proname => 'point_below', prorettype => 'bool', proargtypes => 'point point', + prosrc => 'point_below' }, +{ oid => '135', + proname => 'point_eq', prorettype => 'bool', proargtypes => 'point point', + prosrc => 'point_eq' }, +{ oid => '136', + proname => 'on_pb', prorettype => 'bool', proargtypes => 'point box', + prosrc => 'on_pb' }, +{ oid => '137', + proname => 'on_ppath', prorettype => 'bool', proargtypes => 'point path', + prosrc => 'on_ppath' }, +{ oid => '138', + proname => 'box_center', prorettype => 'point', proargtypes => 'box', + prosrc => 'box_center' }, +{ oid => '139', + descr => 'restriction selectivity for area-comparison operators', + proname => 'areasel', provolatile => 's', prorettype => 'float8', + proargtypes => 'internal oid internal int4', prosrc => 'areasel' }, +{ oid => '140', descr => 'join selectivity for area-comparison operators', + proname => 'areajoinsel', provolatile => 's', prorettype => 'float8', + proargtypes => 'internal oid internal int2 internal', + prosrc => 'areajoinsel' }, +{ oid => '141', + proname => 'int4mul', prorettype => 'int4', proargtypes => 'int4 int4', + prosrc => 'int4mul' }, +{ oid => '144', + proname => 'int4ne', proleakproof => 't', prorettype => 'bool', + proargtypes => 'int4 int4', prosrc => 'int4ne' }, +{ oid => '145', + proname => 'int2ne', proleakproof => 't', prorettype => 'bool', + proargtypes => 'int2 int2', prosrc => 'int2ne' }, +{ oid => '146', + proname => 'int2gt', proleakproof => 't', prorettype => 'bool', + proargtypes => 'int2 int2', prosrc => 'int2gt' }, +{ oid => '147', + proname => 'int4gt', proleakproof => 't', prorettype => 'bool', + proargtypes => 'int4 int4', prosrc => 'int4gt' }, +{ oid => '148', + proname => 'int2le', proleakproof => 't', prorettype => 'bool', + proargtypes => 'int2 int2', prosrc => 'int2le' }, +{ oid => '149', + proname => 'int4le', proleakproof => 't', prorettype => 'bool', + proargtypes => 'int4 int4', prosrc => 'int4le' }, +{ oid => '150', + proname => 'int4ge', proleakproof => 't', prorettype => 'bool', + proargtypes => 'int4 int4', prosrc => 'int4ge' }, +{ oid => '151', + proname => 'int2ge', proleakproof => 't', prorettype => 'bool', + proargtypes => 'int2 int2', prosrc => 'int2ge' }, +{ oid => '152', + proname => 'int2mul', prorettype => 'int2', proargtypes => 'int2 int2', + prosrc => 'int2mul' }, +{ oid => '153', + proname => 'int2div', prorettype => 'int2', proargtypes => 'int2 int2', + prosrc => 'int2div' }, +{ oid => '154', + proname => 'int4div', prorettype => 'int4', proargtypes => 'int4 int4', + prosrc => 'int4div' }, +{ oid => '155', + proname => 'int2mod', prorettype => 'int2', proargtypes => 'int2 int2', + prosrc => 'int2mod' }, +{ oid => '156', + proname => 'int4mod', prorettype => 'int4', proargtypes => 'int4 int4', + prosrc => 'int4mod' }, +{ oid => '157', + proname => 'textne', proleakproof => 't', prorettype => 'bool', + proargtypes => 'text text', prosrc => 'textne' }, +{ oid => '158', + proname => 'int24eq', proleakproof => 't', prorettype => 'bool', + proargtypes => 'int2 int4', prosrc => 'int24eq' }, +{ oid => '159', + proname => 'int42eq', proleakproof => 't', prorettype => 'bool', + proargtypes => 'int4 int2', prosrc => 'int42eq' }, +{ oid => '160', + proname => 'int24lt', proleakproof => 't', prorettype => 'bool', + proargtypes => 'int2 int4', prosrc => 'int24lt' }, +{ oid => '161', + proname => 'int42lt', proleakproof => 't', prorettype => 'bool', + proargtypes => 'int4 int2', prosrc => 'int42lt' }, +{ oid => '162', + proname => 'int24gt', proleakproof => 't', prorettype => 'bool', + proargtypes => 'int2 int4', prosrc => 'int24gt' }, +{ oid => '163', + proname => 'int42gt', proleakproof => 't', prorettype => 'bool', + proargtypes => 'int4 int2', prosrc => 'int42gt' }, +{ oid => '164', + proname => 'int24ne', proleakproof => 't', prorettype => 'bool', + proargtypes => 'int2 int4', prosrc => 'int24ne' }, +{ oid => '165', + proname => 'int42ne', proleakproof => 't', prorettype => 'bool', + proargtypes => 'int4 int2', prosrc => 'int42ne' }, +{ oid => '166', + proname => 'int24le', proleakproof => 't', prorettype => 'bool', + proargtypes => 'int2 int4', prosrc => 'int24le' }, +{ oid => '167', + proname => 'int42le', proleakproof => 't', prorettype => 'bool', + proargtypes => 'int4 int2', prosrc => 'int42le' }, +{ oid => '168', + proname => 'int24ge', proleakproof => 't', prorettype => 'bool', + proargtypes => 'int2 int4', prosrc => 'int24ge' }, +{ oid => '169', + proname => 'int42ge', proleakproof => 't', prorettype => 'bool', + proargtypes => 'int4 int2', prosrc => 'int42ge' }, +{ oid => '170', + proname => 'int24mul', prorettype => 'int4', proargtypes => 'int2 int4', + prosrc => 'int24mul' }, +{ oid => '171', + proname => 'int42mul', prorettype => 'int4', proargtypes => 'int4 int2', + prosrc => 'int42mul' }, +{ oid => '172', + proname => 'int24div', prorettype => 'int4', proargtypes => 'int2 int4', + prosrc => 'int24div' }, +{ oid => '173', + proname => 'int42div', prorettype => 'int4', proargtypes => 'int4 int2', + prosrc => 'int42div' }, +{ oid => '176', + proname => 'int2pl', prorettype => 'int2', proargtypes => 'int2 int2', + prosrc => 'int2pl' }, +{ oid => '177', + proname => 'int4pl', prorettype => 'int4', proargtypes => 'int4 int4', + prosrc => 'int4pl' }, +{ oid => '178', + proname => 'int24pl', prorettype => 'int4', proargtypes => 'int2 int4', + prosrc => 'int24pl' }, +{ oid => '179', + proname => 'int42pl', prorettype => 'int4', proargtypes => 'int4 int2', + prosrc => 'int42pl' }, +{ oid => '180', + proname => 'int2mi', prorettype => 'int2', proargtypes => 'int2 int2', + prosrc => 'int2mi' }, +{ oid => '181', + proname => 'int4mi', prorettype => 'int4', proargtypes => 'int4 int4', + prosrc => 'int4mi' }, +{ oid => '182', + proname => 'int24mi', prorettype => 'int4', proargtypes => 'int2 int4', + prosrc => 'int24mi' }, +{ oid => '183', + proname => 'int42mi', prorettype => 'int4', proargtypes => 'int4 int2', + prosrc => 'int42mi' }, +{ oid => '184', + proname => 'oideq', proleakproof => 't', prorettype => 'bool', + proargtypes => 'oid oid', prosrc => 'oideq' }, +{ oid => '185', + proname => 'oidne', proleakproof => 't', prorettype => 'bool', + proargtypes => 'oid oid', prosrc => 'oidne' }, +{ oid => '186', + proname => 'box_same', prorettype => 'bool', proargtypes => 'box box', + prosrc => 'box_same' }, +{ oid => '187', + proname => 'box_contain', prorettype => 'bool', proargtypes => 'box box', + prosrc => 'box_contain' }, +{ oid => '188', + proname => 'box_left', prorettype => 'bool', proargtypes => 'box box', + prosrc => 'box_left' }, +{ oid => '189', + proname => 'box_overleft', prorettype => 'bool', proargtypes => 'box box', + prosrc => 'box_overleft' }, +{ oid => '190', + proname => 'box_overright', prorettype => 'bool', proargtypes => 'box box', + prosrc => 'box_overright' }, +{ oid => '191', + proname => 'box_right', prorettype => 'bool', proargtypes => 'box box', + prosrc => 'box_right' }, +{ oid => '192', + proname => 'box_contained', prorettype => 'bool', proargtypes => 'box box', + prosrc => 'box_contained' }, +{ oid => '193', + proname => 'box_contain_pt', prorettype => 'bool', proargtypes => 'box point', + prosrc => 'box_contain_pt' }, + +{ oid => '195', descr => 'I/O', + proname => 'pg_node_tree_in', prorettype => 'pg_node_tree', + proargtypes => 'cstring', prosrc => 'pg_node_tree_in' }, +{ oid => '196', descr => 'I/O', + proname => 'pg_node_tree_out', prorettype => 'cstring', + proargtypes => 'pg_node_tree', prosrc => 'pg_node_tree_out' }, +{ oid => '197', descr => 'I/O', + proname => 'pg_node_tree_recv', provolatile => 's', + prorettype => 'pg_node_tree', proargtypes => 'internal', + prosrc => 'pg_node_tree_recv' }, +{ oid => '198', descr => 'I/O', + proname => 'pg_node_tree_send', provolatile => 's', prorettype => 'bytea', + proargtypes => 'pg_node_tree', prosrc => 'pg_node_tree_send' }, + +# OIDS 200 - 299 + +{ oid => '200', descr => 'I/O', + proname => 'float4in', prorettype => 'float4', proargtypes => 'cstring', + prosrc => 'float4in' }, +{ oid => '201', descr => 'I/O', + proname => 'float4out', prorettype => 'cstring', proargtypes => 'float4', + prosrc => 'float4out' }, +{ oid => '202', + proname => 'float4mul', prorettype => 'float4', + proargtypes => 'float4 float4', prosrc => 'float4mul' }, +{ oid => '203', + proname => 'float4div', prorettype => 'float4', + proargtypes => 'float4 float4', prosrc => 'float4div' }, +{ oid => '204', + proname => 'float4pl', prorettype => 'float4', proargtypes => 'float4 float4', + prosrc => 'float4pl' }, +{ oid => '205', + proname => 'float4mi', prorettype => 'float4', proargtypes => 'float4 float4', + prosrc => 'float4mi' }, +{ oid => '206', + proname => 'float4um', prorettype => 'float4', proargtypes => 'float4', + prosrc => 'float4um' }, +{ oid => '207', + proname => 'float4abs', prorettype => 'float4', proargtypes => 'float4', + prosrc => 'float4abs' }, +{ oid => '208', descr => 'aggregate transition function', + proname => 'float4_accum', prorettype => '_float8', + proargtypes => '_float8 float4', prosrc => 'float4_accum' }, +{ oid => '209', descr => 'larger of two', + proname => 'float4larger', prorettype => 'float4', + proargtypes => 'float4 float4', prosrc => 'float4larger' }, +{ oid => '211', descr => 'smaller of two', + proname => 'float4smaller', prorettype => 'float4', + proargtypes => 'float4 float4', prosrc => 'float4smaller' }, + +{ oid => '212', + proname => 'int4um', prorettype => 'int4', proargtypes => 'int4', + prosrc => 'int4um' }, +{ oid => '213', + proname => 'int2um', prorettype => 'int2', proargtypes => 'int2', + prosrc => 'int2um' }, + +{ oid => '214', descr => 'I/O', + proname => 'float8in', prorettype => 'float8', proargtypes => 'cstring', + prosrc => 'float8in' }, +{ oid => '215', descr => 'I/O', + proname => 'float8out', prorettype => 'cstring', proargtypes => 'float8', + prosrc => 'float8out' }, +{ oid => '216', + proname => 'float8mul', prorettype => 'float8', + proargtypes => 'float8 float8', prosrc => 'float8mul' }, +{ oid => '217', + proname => 'float8div', prorettype => 'float8', + proargtypes => 'float8 float8', prosrc => 'float8div' }, +{ oid => '218', + proname => 'float8pl', prorettype => 'float8', proargtypes => 'float8 float8', + prosrc => 'float8pl' }, +{ oid => '219', + proname => 'float8mi', prorettype => 'float8', proargtypes => 'float8 float8', + prosrc => 'float8mi' }, +{ oid => '220', + proname => 'float8um', prorettype => 'float8', proargtypes => 'float8', + prosrc => 'float8um' }, +{ oid => '221', + proname => 'float8abs', prorettype => 'float8', proargtypes => 'float8', + prosrc => 'float8abs' }, +{ oid => '222', descr => 'aggregate transition function', + proname => 'float8_accum', prorettype => '_float8', + proargtypes => '_float8 float8', prosrc => 'float8_accum' }, +{ oid => '276', descr => 'aggregate combine function', + proname => 'float8_combine', prorettype => '_float8', + proargtypes => '_float8 _float8', prosrc => 'float8_combine' }, +{ oid => '223', descr => 'larger of two', + proname => 'float8larger', prorettype => 'float8', + proargtypes => 'float8 float8', prosrc => 'float8larger' }, +{ oid => '224', descr => 'smaller of two', + proname => 'float8smaller', prorettype => 'float8', + proargtypes => 'float8 float8', prosrc => 'float8smaller' }, + +{ oid => '225', + proname => 'lseg_center', prorettype => 'point', proargtypes => 'lseg', + prosrc => 'lseg_center' }, +{ oid => '226', + proname => 'path_center', prorettype => 'point', proargtypes => 'path', + prosrc => 'path_center' }, +{ oid => '227', + proname => 'poly_center', prorettype => 'point', proargtypes => 'polygon', + prosrc => 'poly_center' }, + +{ oid => '228', descr => 'round to nearest integer', + proname => 'dround', prorettype => 'float8', proargtypes => 'float8', + prosrc => 'dround' }, +{ oid => '229', descr => 'truncate to integer', + proname => 'dtrunc', prorettype => 'float8', proargtypes => 'float8', + prosrc => 'dtrunc' }, +{ oid => '2308', descr => 'nearest integer >= value', + proname => 'ceil', prorettype => 'float8', proargtypes => 'float8', + prosrc => 'dceil' }, +{ oid => '2320', descr => 'nearest integer >= value', + proname => 'ceiling', prorettype => 'float8', proargtypes => 'float8', + prosrc => 'dceil' }, +{ oid => '2309', descr => 'nearest integer <= value', + proname => 'floor', prorettype => 'float8', proargtypes => 'float8', + prosrc => 'dfloor' }, +{ oid => '2310', descr => 'sign of value', + proname => 'sign', prorettype => 'float8', proargtypes => 'float8', + prosrc => 'dsign' }, +{ oid => '230', + proname => 'dsqrt', prorettype => 'float8', proargtypes => 'float8', + prosrc => 'dsqrt' }, +{ oid => '231', + proname => 'dcbrt', prorettype => 'float8', proargtypes => 'float8', + prosrc => 'dcbrt' }, +{ oid => '232', + proname => 'dpow', prorettype => 'float8', proargtypes => 'float8 float8', + prosrc => 'dpow' }, +{ oid => '233', descr => 'natural exponential (e^x)', + proname => 'dexp', prorettype => 'float8', proargtypes => 'float8', + prosrc => 'dexp' }, +{ oid => '234', descr => 'natural logarithm', + proname => 'dlog1', prorettype => 'float8', proargtypes => 'float8', + prosrc => 'dlog1' }, +{ oid => '235', descr => 'convert int2 to float8', + proname => 'float8', prorettype => 'float8', proargtypes => 'int2', + prosrc => 'i2tod' }, +{ oid => '236', descr => 'convert int2 to float4', + proname => 'float4', prorettype => 'float4', proargtypes => 'int2', + prosrc => 'i2tof' }, +{ oid => '237', descr => 'convert float8 to int2', + proname => 'int2', prorettype => 'int2', proargtypes => 'float8', + prosrc => 'dtoi2' }, +{ oid => '238', descr => 'convert float4 to int2', + proname => 'int2', prorettype => 'int2', proargtypes => 'float4', + prosrc => 'ftoi2' }, +{ oid => '239', + proname => 'line_distance', prorettype => 'float8', + proargtypes => 'line line', prosrc => 'line_distance' }, + +{ oid => '240', descr => 'I/O', + proname => 'abstimein', provolatile => 's', prorettype => 'abstime', + proargtypes => 'cstring', prosrc => 'abstimein' }, +{ oid => '241', descr => 'I/O', + proname => 'abstimeout', provolatile => 's', prorettype => 'cstring', + proargtypes => 'abstime', prosrc => 'abstimeout' }, +{ oid => '242', descr => 'I/O', + proname => 'reltimein', provolatile => 's', prorettype => 'reltime', + proargtypes => 'cstring', prosrc => 'reltimein' }, +{ oid => '243', descr => 'I/O', + proname => 'reltimeout', provolatile => 's', prorettype => 'cstring', + proargtypes => 'reltime', prosrc => 'reltimeout' }, +{ oid => '244', + proname => 'timepl', prorettype => 'abstime', + proargtypes => 'abstime reltime', prosrc => 'timepl' }, +{ oid => '245', + proname => 'timemi', prorettype => 'abstime', + proargtypes => 'abstime reltime', prosrc => 'timemi' }, +{ oid => '246', descr => 'I/O', + proname => 'tintervalin', provolatile => 's', prorettype => 'tinterval', + proargtypes => 'cstring', prosrc => 'tintervalin' }, +{ oid => '247', descr => 'I/O', + proname => 'tintervalout', provolatile => 's', prorettype => 'cstring', + proargtypes => 'tinterval', prosrc => 'tintervalout' }, +{ oid => '248', + proname => 'intinterval', prorettype => 'bool', + proargtypes => 'abstime tinterval', prosrc => 'intinterval' }, +{ oid => '249', descr => 'tinterval to reltime', + proname => 'tintervalrel', prorettype => 'reltime', + proargtypes => 'tinterval', prosrc => 'tintervalrel' }, +{ oid => '250', descr => 'current date and time (abstime)', + proname => 'timenow', provolatile => 's', prorettype => 'abstime', + proargtypes => '', prosrc => 'timenow' }, +{ oid => '251', + proname => 'abstimeeq', proleakproof => 't', prorettype => 'bool', + proargtypes => 'abstime abstime', prosrc => 'abstimeeq' }, +{ oid => '252', + proname => 'abstimene', proleakproof => 't', prorettype => 'bool', + proargtypes => 'abstime abstime', prosrc => 'abstimene' }, +{ oid => '253', + proname => 'abstimelt', proleakproof => 't', prorettype => 'bool', + proargtypes => 'abstime abstime', prosrc => 'abstimelt' }, +{ oid => '254', + proname => 'abstimegt', proleakproof => 't', prorettype => 'bool', + proargtypes => 'abstime abstime', prosrc => 'abstimegt' }, +{ oid => '255', + proname => 'abstimele', proleakproof => 't', prorettype => 'bool', + proargtypes => 'abstime abstime', prosrc => 'abstimele' }, +{ oid => '256', + proname => 'abstimege', proleakproof => 't', prorettype => 'bool', + proargtypes => 'abstime abstime', prosrc => 'abstimege' }, +{ oid => '257', + proname => 'reltimeeq', proleakproof => 't', prorettype => 'bool', + proargtypes => 'reltime reltime', prosrc => 'reltimeeq' }, +{ oid => '258', + proname => 'reltimene', proleakproof => 't', prorettype => 'bool', + proargtypes => 'reltime reltime', prosrc => 'reltimene' }, +{ oid => '259', + proname => 'reltimelt', proleakproof => 't', prorettype => 'bool', + proargtypes => 'reltime reltime', prosrc => 'reltimelt' }, +{ oid => '260', + proname => 'reltimegt', proleakproof => 't', prorettype => 'bool', + proargtypes => 'reltime reltime', prosrc => 'reltimegt' }, +{ oid => '261', + proname => 'reltimele', proleakproof => 't', prorettype => 'bool', + proargtypes => 'reltime reltime', prosrc => 'reltimele' }, +{ oid => '262', + proname => 'reltimege', proleakproof => 't', prorettype => 'bool', + proargtypes => 'reltime reltime', prosrc => 'reltimege' }, +{ oid => '263', + proname => 'tintervalsame', prorettype => 'bool', + proargtypes => 'tinterval tinterval', prosrc => 'tintervalsame' }, +{ oid => '264', + proname => 'tintervalct', prorettype => 'bool', + proargtypes => 'tinterval tinterval', prosrc => 'tintervalct' }, +{ oid => '265', + proname => 'tintervalov', prorettype => 'bool', + proargtypes => 'tinterval tinterval', prosrc => 'tintervalov' }, +{ oid => '266', + proname => 'tintervalleneq', proleakproof => 't', prorettype => 'bool', + proargtypes => 'tinterval reltime', prosrc => 'tintervalleneq' }, +{ oid => '267', + proname => 'tintervallenne', proleakproof => 't', prorettype => 'bool', + proargtypes => 'tinterval reltime', prosrc => 'tintervallenne' }, +{ oid => '268', + proname => 'tintervallenlt', proleakproof => 't', prorettype => 'bool', + proargtypes => 'tinterval reltime', prosrc => 'tintervallenlt' }, +{ oid => '269', + proname => 'tintervallengt', proleakproof => 't', prorettype => 'bool', + proargtypes => 'tinterval reltime', prosrc => 'tintervallengt' }, +{ oid => '270', + proname => 'tintervallenle', proleakproof => 't', prorettype => 'bool', + proargtypes => 'tinterval reltime', prosrc => 'tintervallenle' }, +{ oid => '271', + proname => 'tintervallenge', proleakproof => 't', prorettype => 'bool', + proargtypes => 'tinterval reltime', prosrc => 'tintervallenge' }, +{ oid => '272', + proname => 'tintervalstart', prorettype => 'abstime', + proargtypes => 'tinterval', prosrc => 'tintervalstart' }, +{ oid => '273', descr => 'end of interval', + proname => 'tintervalend', prorettype => 'abstime', + proargtypes => 'tinterval', prosrc => 'tintervalend' }, +{ oid => '274', + descr => 'current date and time - increments during transactions', + proname => 'timeofday', provolatile => 'v', prorettype => 'text', + proargtypes => '', prosrc => 'timeofday' }, +{ oid => '275', descr => 'finite abstime?', + proname => 'isfinite', prorettype => 'bool', proargtypes => 'abstime', + prosrc => 'abstime_finite' }, + +{ oid => '277', + proname => 'inter_sl', prorettype => 'bool', proargtypes => 'lseg line', + prosrc => 'inter_sl' }, +{ oid => '278', + proname => 'inter_lb', prorettype => 'bool', proargtypes => 'line box', + prosrc => 'inter_lb' }, + +{ oid => '279', + proname => 'float48mul', prorettype => 'float8', + proargtypes => 'float4 float8', prosrc => 'float48mul' }, +{ oid => '280', + proname => 'float48div', prorettype => 'float8', + proargtypes => 'float4 float8', prosrc => 'float48div' }, +{ oid => '281', + proname => 'float48pl', prorettype => 'float8', + proargtypes => 'float4 float8', prosrc => 'float48pl' }, +{ oid => '282', + proname => 'float48mi', prorettype => 'float8', + proargtypes => 'float4 float8', prosrc => 'float48mi' }, +{ oid => '283', + proname => 'float84mul', prorettype => 'float8', + proargtypes => 'float8 float4', prosrc => 'float84mul' }, +{ oid => '284', + proname => 'float84div', prorettype => 'float8', + proargtypes => 'float8 float4', prosrc => 'float84div' }, +{ oid => '285', + proname => 'float84pl', prorettype => 'float8', + proargtypes => 'float8 float4', prosrc => 'float84pl' }, +{ oid => '286', + proname => 'float84mi', prorettype => 'float8', + proargtypes => 'float8 float4', prosrc => 'float84mi' }, + +{ oid => '287', + proname => 'float4eq', proleakproof => 't', prorettype => 'bool', + proargtypes => 'float4 float4', prosrc => 'float4eq' }, +{ oid => '288', + proname => 'float4ne', proleakproof => 't', prorettype => 'bool', + proargtypes => 'float4 float4', prosrc => 'float4ne' }, +{ oid => '289', + proname => 'float4lt', proleakproof => 't', prorettype => 'bool', + proargtypes => 'float4 float4', prosrc => 'float4lt' }, +{ oid => '290', + proname => 'float4le', proleakproof => 't', prorettype => 'bool', + proargtypes => 'float4 float4', prosrc => 'float4le' }, +{ oid => '291', + proname => 'float4gt', proleakproof => 't', prorettype => 'bool', + proargtypes => 'float4 float4', prosrc => 'float4gt' }, +{ oid => '292', + proname => 'float4ge', proleakproof => 't', prorettype => 'bool', + proargtypes => 'float4 float4', prosrc => 'float4ge' }, + +{ oid => '293', + proname => 'float8eq', proleakproof => 't', prorettype => 'bool', + proargtypes => 'float8 float8', prosrc => 'float8eq' }, +{ oid => '294', + proname => 'float8ne', proleakproof => 't', prorettype => 'bool', + proargtypes => 'float8 float8', prosrc => 'float8ne' }, +{ oid => '295', + proname => 'float8lt', proleakproof => 't', prorettype => 'bool', + proargtypes => 'float8 float8', prosrc => 'float8lt' }, +{ oid => '296', + proname => 'float8le', proleakproof => 't', prorettype => 'bool', + proargtypes => 'float8 float8', prosrc => 'float8le' }, +{ oid => '297', + proname => 'float8gt', proleakproof => 't', prorettype => 'bool', + proargtypes => 'float8 float8', prosrc => 'float8gt' }, +{ oid => '298', + proname => 'float8ge', proleakproof => 't', prorettype => 'bool', + proargtypes => 'float8 float8', prosrc => 'float8ge' }, + +{ oid => '299', + proname => 'float48eq', proleakproof => 't', prorettype => 'bool', + proargtypes => 'float4 float8', prosrc => 'float48eq' }, + +# OIDS 300 - 399 + +{ oid => '300', + proname => 'float48ne', proleakproof => 't', prorettype => 'bool', + proargtypes => 'float4 float8', prosrc => 'float48ne' }, +{ oid => '301', + proname => 'float48lt', proleakproof => 't', prorettype => 'bool', + proargtypes => 'float4 float8', prosrc => 'float48lt' }, +{ oid => '302', + proname => 'float48le', proleakproof => 't', prorettype => 'bool', + proargtypes => 'float4 float8', prosrc => 'float48le' }, +{ oid => '303', + proname => 'float48gt', proleakproof => 't', prorettype => 'bool', + proargtypes => 'float4 float8', prosrc => 'float48gt' }, +{ oid => '304', + proname => 'float48ge', proleakproof => 't', prorettype => 'bool', + proargtypes => 'float4 float8', prosrc => 'float48ge' }, +{ oid => '305', + proname => 'float84eq', proleakproof => 't', prorettype => 'bool', + proargtypes => 'float8 float4', prosrc => 'float84eq' }, +{ oid => '306', + proname => 'float84ne', proleakproof => 't', prorettype => 'bool', + proargtypes => 'float8 float4', prosrc => 'float84ne' }, +{ oid => '307', + proname => 'float84lt', proleakproof => 't', prorettype => 'bool', + proargtypes => 'float8 float4', prosrc => 'float84lt' }, +{ oid => '308', + proname => 'float84le', proleakproof => 't', prorettype => 'bool', + proargtypes => 'float8 float4', prosrc => 'float84le' }, +{ oid => '309', + proname => 'float84gt', proleakproof => 't', prorettype => 'bool', + proargtypes => 'float8 float4', prosrc => 'float84gt' }, +{ oid => '310', + proname => 'float84ge', proleakproof => 't', prorettype => 'bool', + proargtypes => 'float8 float4', prosrc => 'float84ge' }, +{ oid => '320', descr => 'bucket number of operand in equal-width histogram', + proname => 'width_bucket', prorettype => 'int4', + proargtypes => 'float8 float8 float8 int4', prosrc => 'width_bucket_float8' }, + +{ oid => '311', descr => 'convert float4 to float8', + proname => 'float8', prorettype => 'float8', proargtypes => 'float4', + prosrc => 'ftod' }, +{ oid => '312', descr => 'convert float8 to float4', + proname => 'float4', prorettype => 'float4', proargtypes => 'float8', + prosrc => 'dtof' }, +{ oid => '313', descr => 'convert int2 to int4', + proname => 'int4', prorettype => 'int4', proargtypes => 'int2', + prosrc => 'i2toi4' }, +{ oid => '314', descr => 'convert int4 to int2', + proname => 'int2', prorettype => 'int2', proargtypes => 'int4', + prosrc => 'i4toi2' }, +{ oid => '316', descr => 'convert int4 to float8', + proname => 'float8', prorettype => 'float8', proargtypes => 'int4', + prosrc => 'i4tod' }, +{ oid => '317', descr => 'convert float8 to int4', + proname => 'int4', prorettype => 'int4', proargtypes => 'float8', + prosrc => 'dtoi4' }, +{ oid => '318', descr => 'convert int4 to float4', + proname => 'float4', prorettype => 'float4', proargtypes => 'int4', + prosrc => 'i4tof' }, +{ oid => '319', descr => 'convert float4 to int4', + proname => 'int4', prorettype => 'int4', proargtypes => 'float4', + prosrc => 'ftoi4' }, + +# Index access method handlers +{ oid => '330', descr => 'btree index access method handler', + proname => 'bthandler', provolatile => 'v', prorettype => 'index_am_handler', + proargtypes => 'internal', prosrc => 'bthandler' }, +{ oid => '331', descr => 'hash index access method handler', + proname => 'hashhandler', provolatile => 'v', + prorettype => 'index_am_handler', proargtypes => 'internal', + prosrc => 'hashhandler' }, +{ oid => '332', descr => 'gist index access method handler', + proname => 'gisthandler', provolatile => 'v', + prorettype => 'index_am_handler', proargtypes => 'internal', + prosrc => 'gisthandler' }, +{ oid => '333', descr => 'gin index access method handler', + proname => 'ginhandler', provolatile => 'v', prorettype => 'index_am_handler', + proargtypes => 'internal', prosrc => 'ginhandler' }, +{ oid => '334', descr => 'spgist index access method handler', + proname => 'spghandler', provolatile => 'v', prorettype => 'index_am_handler', + proargtypes => 'internal', prosrc => 'spghandler' }, +{ oid => '335', descr => 'brin index access method handler', + proname => 'brinhandler', provolatile => 'v', + prorettype => 'index_am_handler', proargtypes => 'internal', + prosrc => 'brinhandler' }, +{ oid => '3952', descr => 'brin: standalone scan new table pages', + proname => 'brin_summarize_new_values', provolatile => 'v', + proparallel => 'u', prorettype => 'int4', proargtypes => 'regclass', + prosrc => 'brin_summarize_new_values' }, +{ oid => '3999', descr => 'brin: standalone scan new table pages', + proname => 'brin_summarize_range', provolatile => 'v', proparallel => 'u', + prorettype => 'int4', proargtypes => 'regclass int8', + prosrc => 'brin_summarize_range' }, +{ oid => '4014', descr => 'brin: desummarize page range', + proname => 'brin_desummarize_range', provolatile => 'v', proparallel => 'u', + prorettype => 'void', proargtypes => 'regclass int8', + prosrc => 'brin_desummarize_range' }, + +{ oid => '338', descr => 'validate an operator class', + proname => 'amvalidate', provolatile => 'v', prorettype => 'bool', + proargtypes => 'oid', prosrc => 'amvalidate' }, + +{ oid => '636', descr => 'test property of an index access method', + proname => 'pg_indexam_has_property', provolatile => 's', + prorettype => 'bool', proargtypes => 'oid text', + prosrc => 'pg_indexam_has_property' }, +{ oid => '637', descr => 'test property of an index', + proname => 'pg_index_has_property', provolatile => 's', prorettype => 'bool', + proargtypes => 'regclass text', prosrc => 'pg_index_has_property' }, +{ oid => '638', descr => 'test property of an index column', + proname => 'pg_index_column_has_property', provolatile => 's', + prorettype => 'bool', proargtypes => 'regclass int4 text', + prosrc => 'pg_index_column_has_property' }, + +{ oid => '339', + proname => 'poly_same', prorettype => 'bool', + proargtypes => 'polygon polygon', prosrc => 'poly_same' }, +{ oid => '340', + proname => 'poly_contain', prorettype => 'bool', + proargtypes => 'polygon polygon', prosrc => 'poly_contain' }, +{ oid => '341', + proname => 'poly_left', prorettype => 'bool', + proargtypes => 'polygon polygon', prosrc => 'poly_left' }, +{ oid => '342', + proname => 'poly_overleft', prorettype => 'bool', + proargtypes => 'polygon polygon', prosrc => 'poly_overleft' }, +{ oid => '343', + proname => 'poly_overright', prorettype => 'bool', + proargtypes => 'polygon polygon', prosrc => 'poly_overright' }, +{ oid => '344', + proname => 'poly_right', prorettype => 'bool', + proargtypes => 'polygon polygon', prosrc => 'poly_right' }, +{ oid => '345', + proname => 'poly_contained', prorettype => 'bool', + proargtypes => 'polygon polygon', prosrc => 'poly_contained' }, +{ oid => '346', + proname => 'poly_overlap', prorettype => 'bool', + proargtypes => 'polygon polygon', prosrc => 'poly_overlap' }, +{ oid => '347', descr => 'I/O', + proname => 'poly_in', prorettype => 'polygon', proargtypes => 'cstring', + prosrc => 'poly_in' }, +{ oid => '348', descr => 'I/O', + proname => 'poly_out', prorettype => 'cstring', proargtypes => 'polygon', + prosrc => 'poly_out' }, + +{ oid => '350', descr => 'less-equal-greater', + proname => 'btint2cmp', prorettype => 'int4', proargtypes => 'int2 int2', + prosrc => 'btint2cmp' }, +{ oid => '3129', descr => 'sort support', + proname => 'btint2sortsupport', prorettype => 'void', + proargtypes => 'internal', prosrc => 'btint2sortsupport' }, +{ oid => '351', descr => 'less-equal-greater', + proname => 'btint4cmp', prorettype => 'int4', proargtypes => 'int4 int4', + prosrc => 'btint4cmp' }, +{ oid => '3130', descr => 'sort support', + proname => 'btint4sortsupport', prorettype => 'void', + proargtypes => 'internal', prosrc => 'btint4sortsupport' }, +{ oid => '842', descr => 'less-equal-greater', + proname => 'btint8cmp', prorettype => 'int4', proargtypes => 'int8 int8', + prosrc => 'btint8cmp' }, +{ oid => '3131', descr => 'sort support', + proname => 'btint8sortsupport', prorettype => 'void', + proargtypes => 'internal', prosrc => 'btint8sortsupport' }, +{ oid => '354', descr => 'less-equal-greater', + proname => 'btfloat4cmp', prorettype => 'int4', + proargtypes => 'float4 float4', prosrc => 'btfloat4cmp' }, +{ oid => '3132', descr => 'sort support', + proname => 'btfloat4sortsupport', prorettype => 'void', + proargtypes => 'internal', prosrc => 'btfloat4sortsupport' }, +{ oid => '355', descr => 'less-equal-greater', + proname => 'btfloat8cmp', prorettype => 'int4', + proargtypes => 'float8 float8', prosrc => 'btfloat8cmp' }, +{ oid => '3133', descr => 'sort support', + proname => 'btfloat8sortsupport', prorettype => 'void', + proargtypes => 'internal', prosrc => 'btfloat8sortsupport' }, +{ oid => '356', descr => 'less-equal-greater', + proname => 'btoidcmp', prorettype => 'int4', proargtypes => 'oid oid', + prosrc => 'btoidcmp' }, +{ oid => '3134', descr => 'sort support', + proname => 'btoidsortsupport', prorettype => 'void', + proargtypes => 'internal', prosrc => 'btoidsortsupport' }, +{ oid => '404', descr => 'less-equal-greater', + proname => 'btoidvectorcmp', prorettype => 'int4', + proargtypes => 'oidvector oidvector', prosrc => 'btoidvectorcmp' }, +{ oid => '357', descr => 'less-equal-greater', + proname => 'btabstimecmp', prorettype => 'int4', + proargtypes => 'abstime abstime', prosrc => 'btabstimecmp' }, +{ oid => '358', descr => 'less-equal-greater', + proname => 'btcharcmp', prorettype => 'int4', proargtypes => 'char char', + prosrc => 'btcharcmp' }, +{ oid => '359', descr => 'less-equal-greater', + proname => 'btnamecmp', prorettype => 'int4', proargtypes => 'name name', + prosrc => 'btnamecmp' }, +{ oid => '3135', descr => 'sort support', + proname => 'btnamesortsupport', prorettype => 'void', + proargtypes => 'internal', prosrc => 'btnamesortsupport' }, +{ oid => '360', descr => 'less-equal-greater', + proname => 'bttextcmp', prorettype => 'int4', proargtypes => 'text text', + prosrc => 'bttextcmp' }, +{ oid => '3255', descr => 'sort support', + proname => 'bttextsortsupport', prorettype => 'void', + proargtypes => 'internal', prosrc => 'bttextsortsupport' }, +{ oid => '377', descr => 'less-equal-greater', + proname => 'cash_cmp', prorettype => 'int4', proargtypes => 'money money', + prosrc => 'cash_cmp' }, +{ oid => '380', descr => 'less-equal-greater', + proname => 'btreltimecmp', prorettype => 'int4', + proargtypes => 'reltime reltime', prosrc => 'btreltimecmp' }, +{ oid => '381', descr => 'less-equal-greater', + proname => 'bttintervalcmp', prorettype => 'int4', + proargtypes => 'tinterval tinterval', prosrc => 'bttintervalcmp' }, +{ oid => '382', descr => 'less-equal-greater', + proname => 'btarraycmp', prorettype => 'int4', + proargtypes => 'anyarray anyarray', prosrc => 'btarraycmp' }, +{ oid => '4126', descr => 'window RANGE support', + proname => 'in_range', prorettype => 'bool', + proargtypes => 'int8 int8 int8 bool bool', prosrc => 'in_range_int8_int8' }, +{ oid => '4127', descr => 'window RANGE support', + proname => 'in_range', prorettype => 'bool', + proargtypes => 'int4 int4 int8 bool bool', prosrc => 'in_range_int4_int8' }, +{ oid => '4128', descr => 'window RANGE support', + proname => 'in_range', prorettype => 'bool', + proargtypes => 'int4 int4 int4 bool bool', prosrc => 'in_range_int4_int4' }, +{ oid => '4129', descr => 'window RANGE support', + proname => 'in_range', prorettype => 'bool', + proargtypes => 'int4 int4 int2 bool bool', prosrc => 'in_range_int4_int2' }, +{ oid => '4130', descr => 'window RANGE support', + proname => 'in_range', prorettype => 'bool', + proargtypes => 'int2 int2 int8 bool bool', prosrc => 'in_range_int2_int8' }, +{ oid => '4131', descr => 'window RANGE support', + proname => 'in_range', prorettype => 'bool', + proargtypes => 'int2 int2 int4 bool bool', prosrc => 'in_range_int2_int4' }, +{ oid => '4132', descr => 'window RANGE support', + proname => 'in_range', prorettype => 'bool', + proargtypes => 'int2 int2 int2 bool bool', prosrc => 'in_range_int2_int2' }, +{ oid => '4139', descr => 'window RANGE support', + proname => 'in_range', prorettype => 'bool', + proargtypes => 'float8 float8 float8 bool bool', + prosrc => 'in_range_float8_float8' }, +{ oid => '4140', descr => 'window RANGE support', + proname => 'in_range', prorettype => 'bool', + proargtypes => 'float4 float4 float8 bool bool', + prosrc => 'in_range_float4_float8' }, +{ oid => '4141', descr => 'window RANGE support', + proname => 'in_range', prorettype => 'bool', + proargtypes => 'numeric numeric numeric bool bool', + prosrc => 'in_range_numeric_numeric' }, + +{ oid => '361', + proname => 'lseg_distance', prorettype => 'float8', + proargtypes => 'lseg lseg', prosrc => 'lseg_distance' }, +{ oid => '362', + proname => 'lseg_interpt', prorettype => 'point', proargtypes => 'lseg lseg', + prosrc => 'lseg_interpt' }, +{ oid => '363', + proname => 'dist_ps', prorettype => 'float8', proargtypes => 'point lseg', + prosrc => 'dist_ps' }, +{ oid => '364', + proname => 'dist_pb', prorettype => 'float8', proargtypes => 'point box', + prosrc => 'dist_pb' }, +{ oid => '365', + proname => 'dist_sb', prorettype => 'float8', proargtypes => 'lseg box', + prosrc => 'dist_sb' }, +{ oid => '366', + proname => 'close_ps', prorettype => 'point', proargtypes => 'point lseg', + prosrc => 'close_ps' }, +{ oid => '367', + proname => 'close_pb', prorettype => 'point', proargtypes => 'point box', + prosrc => 'close_pb' }, +{ oid => '368', + proname => 'close_sb', prorettype => 'point', proargtypes => 'lseg box', + prosrc => 'close_sb' }, +{ oid => '369', + proname => 'on_ps', prorettype => 'bool', proargtypes => 'point lseg', + prosrc => 'on_ps' }, +{ oid => '370', + proname => 'path_distance', prorettype => 'float8', + proargtypes => 'path path', prosrc => 'path_distance' }, +{ oid => '371', + proname => 'dist_ppath', prorettype => 'float8', proargtypes => 'point path', + prosrc => 'dist_ppath' }, +{ oid => '372', + proname => 'on_sb', prorettype => 'bool', proargtypes => 'lseg box', + prosrc => 'on_sb' }, +{ oid => '373', + proname => 'inter_sb', prorettype => 'bool', proargtypes => 'lseg box', + prosrc => 'inter_sb' }, + +# OIDS 400 - 499 + +{ oid => '401', descr => 'convert char(n) to text', + proname => 'text', prorettype => 'text', proargtypes => 'bpchar', + prosrc => 'rtrim1' }, +{ oid => '406', descr => 'convert name to text', + proname => 'text', prorettype => 'text', proargtypes => 'name', + prosrc => 'name_text' }, +{ oid => '407', descr => 'convert text to name', + proname => 'name', prorettype => 'name', proargtypes => 'text', + prosrc => 'text_name' }, +{ oid => '408', descr => 'convert name to char(n)', + proname => 'bpchar', prorettype => 'bpchar', proargtypes => 'name', + prosrc => 'name_bpchar' }, +{ oid => '409', descr => 'convert char(n) to name', + proname => 'name', prorettype => 'name', proargtypes => 'bpchar', + prosrc => 'bpchar_name' }, + +{ oid => '449', descr => 'hash', + proname => 'hashint2', prorettype => 'int4', proargtypes => 'int2', + prosrc => 'hashint2' }, +{ oid => '441', descr => 'hash', + proname => 'hashint2extended', prorettype => 'int8', + proargtypes => 'int2 int8', prosrc => 'hashint2extended' }, +{ oid => '450', descr => 'hash', + proname => 'hashint4', prorettype => 'int4', proargtypes => 'int4', + prosrc => 'hashint4' }, +{ oid => '425', descr => 'hash', + proname => 'hashint4extended', prorettype => 'int8', + proargtypes => 'int4 int8', prosrc => 'hashint4extended' }, +{ oid => '949', descr => 'hash', + proname => 'hashint8', prorettype => 'int4', proargtypes => 'int8', + prosrc => 'hashint8' }, +{ oid => '442', descr => 'hash', + proname => 'hashint8extended', prorettype => 'int8', + proargtypes => 'int8 int8', prosrc => 'hashint8extended' }, +{ oid => '451', descr => 'hash', + proname => 'hashfloat4', prorettype => 'int4', proargtypes => 'float4', + prosrc => 'hashfloat4' }, +{ oid => '443', descr => 'hash', + proname => 'hashfloat4extended', prorettype => 'int8', + proargtypes => 'float4 int8', prosrc => 'hashfloat4extended' }, +{ oid => '452', descr => 'hash', + proname => 'hashfloat8', prorettype => 'int4', proargtypes => 'float8', + prosrc => 'hashfloat8' }, +{ oid => '444', descr => 'hash', + proname => 'hashfloat8extended', prorettype => 'int8', + proargtypes => 'float8 int8', prosrc => 'hashfloat8extended' }, +{ oid => '453', descr => 'hash', + proname => 'hashoid', prorettype => 'int4', proargtypes => 'oid', + prosrc => 'hashoid' }, +{ oid => '445', descr => 'hash', + proname => 'hashoidextended', prorettype => 'int8', proargtypes => 'oid int8', + prosrc => 'hashoidextended' }, +{ oid => '454', descr => 'hash', + proname => 'hashchar', prorettype => 'int4', proargtypes => 'char', + prosrc => 'hashchar' }, +{ oid => '446', descr => 'hash', + proname => 'hashcharextended', prorettype => 'int8', + proargtypes => 'char int8', prosrc => 'hashcharextended' }, +{ oid => '455', descr => 'hash', + proname => 'hashname', prorettype => 'int4', proargtypes => 'name', + prosrc => 'hashname' }, +{ oid => '447', descr => 'hash', + proname => 'hashnameextended', prorettype => 'int8', + proargtypes => 'name int8', prosrc => 'hashnameextended' }, +{ oid => '400', descr => 'hash', + proname => 'hashtext', prorettype => 'int4', proargtypes => 'text', + prosrc => 'hashtext' }, +{ oid => '448', descr => 'hash', + proname => 'hashtextextended', prorettype => 'int8', + proargtypes => 'text int8', prosrc => 'hashtextextended' }, +{ oid => '456', descr => 'hash', + proname => 'hashvarlena', prorettype => 'int4', proargtypes => 'internal', + prosrc => 'hashvarlena' }, +{ oid => '772', descr => 'hash', + proname => 'hashvarlenaextended', prorettype => 'int8', + proargtypes => 'internal int8', prosrc => 'hashvarlenaextended' }, +{ oid => '457', descr => 'hash', + proname => 'hashoidvector', prorettype => 'int4', proargtypes => 'oidvector', + prosrc => 'hashoidvector' }, +{ oid => '776', descr => 'hash', + proname => 'hashoidvectorextended', prorettype => 'int8', + proargtypes => 'oidvector int8', prosrc => 'hashoidvectorextended' }, +{ oid => '329', descr => 'hash', + proname => 'hash_aclitem', prorettype => 'int4', proargtypes => 'aclitem', + prosrc => 'hash_aclitem' }, +{ oid => '777', descr => 'hash', + proname => 'hash_aclitem_extended', prorettype => 'int8', + proargtypes => 'aclitem int8', prosrc => 'hash_aclitem_extended' }, +{ oid => '399', descr => 'hash', + proname => 'hashmacaddr', prorettype => 'int4', proargtypes => 'macaddr', + prosrc => 'hashmacaddr' }, +{ oid => '778', descr => 'hash', + proname => 'hashmacaddrextended', prorettype => 'int8', + proargtypes => 'macaddr int8', prosrc => 'hashmacaddrextended' }, +{ oid => '422', descr => 'hash', + proname => 'hashinet', prorettype => 'int4', proargtypes => 'inet', + prosrc => 'hashinet' }, +{ oid => '779', descr => 'hash', + proname => 'hashinetextended', prorettype => 'int8', + proargtypes => 'inet int8', prosrc => 'hashinetextended' }, +{ oid => '432', descr => 'hash', + proname => 'hash_numeric', prorettype => 'int4', proargtypes => 'numeric', + prosrc => 'hash_numeric' }, +{ oid => '780', descr => 'hash', + proname => 'hash_numeric_extended', prorettype => 'int8', + proargtypes => 'numeric int8', prosrc => 'hash_numeric_extended' }, +{ oid => '328', descr => 'hash', + proname => 'hashmacaddr8', prorettype => 'int4', proargtypes => 'macaddr8', + prosrc => 'hashmacaddr8' }, +{ oid => '781', descr => 'hash', + proname => 'hashmacaddr8extended', prorettype => 'int8', + proargtypes => 'macaddr8 int8', prosrc => 'hashmacaddr8extended' }, + +{ oid => '438', descr => 'count the number of NULL arguments', + proname => 'num_nulls', provariadic => 'any', proisstrict => 'f', + prorettype => 'int4', proargtypes => 'any', proallargtypes => '{any}', + proargmodes => '{v}', prosrc => 'pg_num_nulls' }, +{ oid => '440', descr => 'count the number of non-NULL arguments', + proname => 'num_nonnulls', provariadic => 'any', proisstrict => 'f', + prorettype => 'int4', proargtypes => 'any', proallargtypes => '{any}', + proargmodes => '{v}', prosrc => 'pg_num_nonnulls' }, + +{ oid => '458', descr => 'larger of two', + proname => 'text_larger', prorettype => 'text', proargtypes => 'text text', + prosrc => 'text_larger' }, +{ oid => '459', descr => 'smaller of two', + proname => 'text_smaller', prorettype => 'text', proargtypes => 'text text', + prosrc => 'text_smaller' }, + +{ oid => '460', descr => 'I/O', + proname => 'int8in', prorettype => 'int8', proargtypes => 'cstring', + prosrc => 'int8in' }, +{ oid => '461', descr => 'I/O', + proname => 'int8out', prorettype => 'cstring', proargtypes => 'int8', + prosrc => 'int8out' }, +{ oid => '462', + proname => 'int8um', prorettype => 'int8', proargtypes => 'int8', + prosrc => 'int8um' }, +{ oid => '463', + proname => 'int8pl', prorettype => 'int8', proargtypes => 'int8 int8', + prosrc => 'int8pl' }, +{ oid => '464', + proname => 'int8mi', prorettype => 'int8', proargtypes => 'int8 int8', + prosrc => 'int8mi' }, +{ oid => '465', + proname => 'int8mul', prorettype => 'int8', proargtypes => 'int8 int8', + prosrc => 'int8mul' }, +{ oid => '466', + proname => 'int8div', prorettype => 'int8', proargtypes => 'int8 int8', + prosrc => 'int8div' }, +{ oid => '467', + proname => 'int8eq', proleakproof => 't', prorettype => 'bool', + proargtypes => 'int8 int8', prosrc => 'int8eq' }, +{ oid => '468', + proname => 'int8ne', proleakproof => 't', prorettype => 'bool', + proargtypes => 'int8 int8', prosrc => 'int8ne' }, +{ oid => '469', + proname => 'int8lt', proleakproof => 't', prorettype => 'bool', + proargtypes => 'int8 int8', prosrc => 'int8lt' }, +{ oid => '470', + proname => 'int8gt', proleakproof => 't', prorettype => 'bool', + proargtypes => 'int8 int8', prosrc => 'int8gt' }, +{ oid => '471', + proname => 'int8le', proleakproof => 't', prorettype => 'bool', + proargtypes => 'int8 int8', prosrc => 'int8le' }, +{ oid => '472', + proname => 'int8ge', proleakproof => 't', prorettype => 'bool', + proargtypes => 'int8 int8', prosrc => 'int8ge' }, + +{ oid => '474', + proname => 'int84eq', proleakproof => 't', prorettype => 'bool', + proargtypes => 'int8 int4', prosrc => 'int84eq' }, +{ oid => '475', + proname => 'int84ne', proleakproof => 't', prorettype => 'bool', + proargtypes => 'int8 int4', prosrc => 'int84ne' }, +{ oid => '476', + proname => 'int84lt', proleakproof => 't', prorettype => 'bool', + proargtypes => 'int8 int4', prosrc => 'int84lt' }, +{ oid => '477', + proname => 'int84gt', proleakproof => 't', prorettype => 'bool', + proargtypes => 'int8 int4', prosrc => 'int84gt' }, +{ oid => '478', + proname => 'int84le', proleakproof => 't', prorettype => 'bool', + proargtypes => 'int8 int4', prosrc => 'int84le' }, +{ oid => '479', + proname => 'int84ge', proleakproof => 't', prorettype => 'bool', + proargtypes => 'int8 int4', prosrc => 'int84ge' }, + +{ oid => '480', descr => 'convert int8 to int4', + proname => 'int4', prorettype => 'int4', proargtypes => 'int8', + prosrc => 'int84' }, +{ oid => '481', descr => 'convert int4 to int8', + proname => 'int8', prorettype => 'int8', proargtypes => 'int4', + prosrc => 'int48' }, +{ oid => '482', descr => 'convert int8 to float8', + proname => 'float8', prorettype => 'float8', proargtypes => 'int8', + prosrc => 'i8tod' }, +{ oid => '483', descr => 'convert float8 to int8', + proname => 'int8', prorettype => 'int8', proargtypes => 'float8', + prosrc => 'dtoi8' }, + +# OIDS 500 - 599 + +# OIDS 600 - 699 + +{ oid => '626', descr => 'hash', + proname => 'hash_array', prorettype => 'int4', proargtypes => 'anyarray', + prosrc => 'hash_array' }, +{ oid => '782', descr => 'hash', + proname => 'hash_array_extended', prorettype => 'int8', + proargtypes => 'anyarray int8', prosrc => 'hash_array_extended' }, + +{ oid => '652', descr => 'convert int8 to float4', + proname => 'float4', prorettype => 'float4', proargtypes => 'int8', + prosrc => 'i8tof' }, +{ oid => '653', descr => 'convert float4 to int8', + proname => 'int8', prorettype => 'int8', proargtypes => 'float4', + prosrc => 'ftoi8' }, + +{ oid => '714', descr => 'convert int8 to int2', + proname => 'int2', prorettype => 'int2', proargtypes => 'int8', + prosrc => 'int82' }, +{ oid => '754', descr => 'convert int2 to int8', + proname => 'int8', prorettype => 'int8', proargtypes => 'int2', + prosrc => 'int28' }, + +{ oid => '655', + proname => 'namelt', proleakproof => 't', prorettype => 'bool', + proargtypes => 'name name', prosrc => 'namelt' }, +{ oid => '656', + proname => 'namele', proleakproof => 't', prorettype => 'bool', + proargtypes => 'name name', prosrc => 'namele' }, +{ oid => '657', + proname => 'namegt', proleakproof => 't', prorettype => 'bool', + proargtypes => 'name name', prosrc => 'namegt' }, +{ oid => '658', + proname => 'namege', proleakproof => 't', prorettype => 'bool', + proargtypes => 'name name', prosrc => 'namege' }, +{ oid => '659', + proname => 'namene', proleakproof => 't', prorettype => 'bool', + proargtypes => 'name name', prosrc => 'namene' }, + +{ oid => '668', descr => 'adjust char() to typmod length', + proname => 'bpchar', prorettype => 'bpchar', + proargtypes => 'bpchar int4 bool', prosrc => 'bpchar' }, +{ oid => '3097', descr => 'transform a varchar length coercion', + proname => 'varchar_transform', prorettype => 'internal', + proargtypes => 'internal', prosrc => 'varchar_transform' }, +{ oid => '669', descr => 'adjust varchar() to typmod length', + proname => 'varchar', protransform => 'varchar_transform', + prorettype => 'varchar', proargtypes => 'varchar int4 bool', + prosrc => 'varchar' }, + +{ oid => '676', + proname => 'mktinterval', prorettype => 'tinterval', + proargtypes => 'abstime abstime', prosrc => 'mktinterval' }, + +{ oid => '619', + proname => 'oidvectorne', prorettype => 'bool', + proargtypes => 'oidvector oidvector', prosrc => 'oidvectorne' }, +{ oid => '677', + proname => 'oidvectorlt', prorettype => 'bool', + proargtypes => 'oidvector oidvector', prosrc => 'oidvectorlt' }, +{ oid => '678', + proname => 'oidvectorle', prorettype => 'bool', + proargtypes => 'oidvector oidvector', prosrc => 'oidvectorle' }, +{ oid => '679', + proname => 'oidvectoreq', prorettype => 'bool', + proargtypes => 'oidvector oidvector', prosrc => 'oidvectoreq' }, +{ oid => '680', + proname => 'oidvectorge', prorettype => 'bool', + proargtypes => 'oidvector oidvector', prosrc => 'oidvectorge' }, +{ oid => '681', + proname => 'oidvectorgt', prorettype => 'bool', + proargtypes => 'oidvector oidvector', prosrc => 'oidvectorgt' }, + +# OIDS 700 - 799 +{ oid => '710', descr => 'deprecated, use current_user instead', + proname => 'getpgusername', provolatile => 's', prorettype => 'name', + proargtypes => '', prosrc => 'current_user' }, +{ oid => '716', + proname => 'oidlt', proleakproof => 't', prorettype => 'bool', + proargtypes => 'oid oid', prosrc => 'oidlt' }, +{ oid => '717', + proname => 'oidle', proleakproof => 't', prorettype => 'bool', + proargtypes => 'oid oid', prosrc => 'oidle' }, + +{ oid => '720', descr => 'octet length', + proname => 'octet_length', prorettype => 'int4', proargtypes => 'bytea', + prosrc => 'byteaoctetlen' }, +{ oid => '721', descr => 'get byte', + proname => 'get_byte', prorettype => 'int4', proargtypes => 'bytea int4', + prosrc => 'byteaGetByte' }, +{ oid => '722', descr => 'set byte', + proname => 'set_byte', prorettype => 'bytea', + proargtypes => 'bytea int4 int4', prosrc => 'byteaSetByte' }, +{ oid => '723', descr => 'get bit', + proname => 'get_bit', prorettype => 'int4', proargtypes => 'bytea int4', + prosrc => 'byteaGetBit' }, +{ oid => '724', descr => 'set bit', + proname => 'set_bit', prorettype => 'bytea', proargtypes => 'bytea int4 int4', + prosrc => 'byteaSetBit' }, +{ oid => '749', descr => 'substitute portion of string', + proname => 'overlay', prorettype => 'bytea', + proargtypes => 'bytea bytea int4 int4', prosrc => 'byteaoverlay' }, +{ oid => '752', descr => 'substitute portion of string', + proname => 'overlay', prorettype => 'bytea', + proargtypes => 'bytea bytea int4', prosrc => 'byteaoverlay_no_len' }, + +{ oid => '725', + proname => 'dist_pl', prorettype => 'float8', proargtypes => 'point line', + prosrc => 'dist_pl' }, +{ oid => '726', + proname => 'dist_lb', prorettype => 'float8', proargtypes => 'line box', + prosrc => 'dist_lb' }, +{ oid => '727', + proname => 'dist_sl', prorettype => 'float8', proargtypes => 'lseg line', + prosrc => 'dist_sl' }, +{ oid => '728', + proname => 'dist_cpoly', prorettype => 'float8', + proargtypes => 'circle polygon', prosrc => 'dist_cpoly' }, +{ oid => '729', + proname => 'poly_distance', prorettype => 'float8', + proargtypes => 'polygon polygon', prosrc => 'poly_distance' }, +{ oid => '3275', + proname => 'dist_ppoly', prorettype => 'float8', + proargtypes => 'point polygon', prosrc => 'dist_ppoly' }, +{ oid => '3292', + proname => 'dist_polyp', prorettype => 'float8', + proargtypes => 'polygon point', prosrc => 'dist_polyp' }, +{ oid => '3290', + proname => 'dist_cpoint', prorettype => 'float8', + proargtypes => 'circle point', prosrc => 'dist_cpoint' }, + +{ oid => '740', + proname => 'text_lt', prorettype => 'bool', proargtypes => 'text text', + prosrc => 'text_lt' }, +{ oid => '741', + proname => 'text_le', prorettype => 'bool', proargtypes => 'text text', + prosrc => 'text_le' }, +{ oid => '742', + proname => 'text_gt', prorettype => 'bool', proargtypes => 'text text', + prosrc => 'text_gt' }, +{ oid => '743', + proname => 'text_ge', prorettype => 'bool', proargtypes => 'text text', + prosrc => 'text_ge' }, + +{ oid => '745', descr => 'current user name', + proname => 'current_user', provolatile => 's', prorettype => 'name', + proargtypes => '', prosrc => 'current_user' }, +{ oid => '746', descr => 'session user name', + proname => 'session_user', provolatile => 's', prorettype => 'name', + proargtypes => '', prosrc => 'session_user' }, + +{ oid => '744', + proname => 'array_eq', prorettype => 'bool', + proargtypes => 'anyarray anyarray', prosrc => 'array_eq' }, +{ oid => '390', + proname => 'array_ne', prorettype => 'bool', + proargtypes => 'anyarray anyarray', prosrc => 'array_ne' }, +{ oid => '391', + proname => 'array_lt', prorettype => 'bool', + proargtypes => 'anyarray anyarray', prosrc => 'array_lt' }, +{ oid => '392', + proname => 'array_gt', prorettype => 'bool', + proargtypes => 'anyarray anyarray', prosrc => 'array_gt' }, +{ oid => '393', + proname => 'array_le', prorettype => 'bool', + proargtypes => 'anyarray anyarray', prosrc => 'array_le' }, +{ oid => '396', + proname => 'array_ge', prorettype => 'bool', + proargtypes => 'anyarray anyarray', prosrc => 'array_ge' }, +{ oid => '747', descr => 'array dimensions', + proname => 'array_dims', prorettype => 'text', proargtypes => 'anyarray', + prosrc => 'array_dims' }, +{ oid => '748', descr => 'number of array dimensions', + proname => 'array_ndims', prorettype => 'int4', proargtypes => 'anyarray', + prosrc => 'array_ndims' }, +{ oid => '750', descr => 'I/O', + proname => 'array_in', provolatile => 's', prorettype => 'anyarray', + proargtypes => 'cstring oid int4', prosrc => 'array_in' }, +{ oid => '751', descr => 'I/O', + proname => 'array_out', provolatile => 's', prorettype => 'cstring', + proargtypes => 'anyarray', prosrc => 'array_out' }, +{ oid => '2091', descr => 'array lower dimension', + proname => 'array_lower', prorettype => 'int4', + proargtypes => 'anyarray int4', prosrc => 'array_lower' }, +{ oid => '2092', descr => 'array upper dimension', + proname => 'array_upper', prorettype => 'int4', + proargtypes => 'anyarray int4', prosrc => 'array_upper' }, +{ oid => '2176', descr => 'array length', + proname => 'array_length', prorettype => 'int4', + proargtypes => 'anyarray int4', prosrc => 'array_length' }, +{ oid => '3179', descr => 'array cardinality', + proname => 'cardinality', prorettype => 'int4', proargtypes => 'anyarray', + prosrc => 'array_cardinality' }, +{ oid => '378', descr => 'append element onto end of array', + proname => 'array_append', proisstrict => 'f', prorettype => 'anyarray', + proargtypes => 'anyarray anyelement', prosrc => 'array_append' }, +{ oid => '379', descr => 'prepend element onto front of array', + proname => 'array_prepend', proisstrict => 'f', prorettype => 'anyarray', + proargtypes => 'anyelement anyarray', prosrc => 'array_prepend' }, +{ oid => '383', + proname => 'array_cat', proisstrict => 'f', prorettype => 'anyarray', + proargtypes => 'anyarray anyarray', prosrc => 'array_cat' }, +{ oid => '394', descr => 'split delimited text into text[]', + proname => 'string_to_array', proisstrict => 'f', prorettype => '_text', + proargtypes => 'text text', prosrc => 'text_to_array' }, +{ oid => '395', + descr => 'concatenate array elements, using delimiter, into text', + proname => 'array_to_string', provolatile => 's', prorettype => 'text', + proargtypes => 'anyarray text', prosrc => 'array_to_text' }, +{ oid => '376', descr => 'split delimited text into text[], with null string', + proname => 'string_to_array', proisstrict => 'f', prorettype => '_text', + proargtypes => 'text text text', prosrc => 'text_to_array_null' }, +{ oid => '384', + descr => 'concatenate array elements, using delimiter and null string, into text', + proname => 'array_to_string', proisstrict => 'f', provolatile => 's', + prorettype => 'text', proargtypes => 'anyarray text text', + prosrc => 'array_to_text_null' }, +{ oid => '515', descr => 'larger of two', + proname => 'array_larger', prorettype => 'anyarray', + proargtypes => 'anyarray anyarray', prosrc => 'array_larger' }, +{ oid => '516', descr => 'smaller of two', + proname => 'array_smaller', prorettype => 'anyarray', + proargtypes => 'anyarray anyarray', prosrc => 'array_smaller' }, +{ oid => '3277', descr => 'returns an offset of value in array', + proname => 'array_position', proisstrict => 'f', prorettype => 'int4', + proargtypes => 'anyarray anyelement', prosrc => 'array_position' }, +{ oid => '3278', + descr => 'returns an offset of value in array with start index', + proname => 'array_position', proisstrict => 'f', prorettype => 'int4', + proargtypes => 'anyarray anyelement int4', prosrc => 'array_position_start' }, +{ oid => '3279', + descr => 'returns an array of offsets of some value in array', + proname => 'array_positions', proisstrict => 'f', prorettype => '_int4', + proargtypes => 'anyarray anyelement', prosrc => 'array_positions' }, +{ oid => '1191', descr => 'array subscripts generator', + proname => 'generate_subscripts', prorows => '1000', proretset => 't', + prorettype => 'int4', proargtypes => 'anyarray int4 bool', + prosrc => 'generate_subscripts' }, +{ oid => '1192', descr => 'array subscripts generator', + proname => 'generate_subscripts', prorows => '1000', proretset => 't', + prorettype => 'int4', proargtypes => 'anyarray int4', + prosrc => 'generate_subscripts_nodir' }, +{ oid => '1193', descr => 'array constructor with value', + proname => 'array_fill', proisstrict => 'f', prorettype => 'anyarray', + proargtypes => 'anyelement _int4', prosrc => 'array_fill' }, +{ oid => '1286', descr => 'array constructor with value', + proname => 'array_fill', proisstrict => 'f', prorettype => 'anyarray', + proargtypes => 'anyelement _int4 _int4', + prosrc => 'array_fill_with_lower_bounds' }, +{ oid => '2331', descr => 'expand array to set of rows', + proname => 'unnest', prorows => '100', proretset => 't', + prorettype => 'anyelement', proargtypes => 'anyarray', + prosrc => 'array_unnest' }, +{ oid => '3167', + descr => 'remove any occurrences of an element from an array', + proname => 'array_remove', proisstrict => 'f', prorettype => 'anyarray', + proargtypes => 'anyarray anyelement', prosrc => 'array_remove' }, +{ oid => '3168', descr => 'replace any occurrences of an element in an array', + proname => 'array_replace', proisstrict => 'f', prorettype => 'anyarray', + proargtypes => 'anyarray anyelement anyelement', prosrc => 'array_replace' }, +{ oid => '2333', descr => 'aggregate transition function', + proname => 'array_agg_transfn', proisstrict => 'f', prorettype => 'internal', + proargtypes => 'internal anynonarray', prosrc => 'array_agg_transfn' }, +{ oid => '2334', descr => 'aggregate final function', + proname => 'array_agg_finalfn', proisstrict => 'f', prorettype => 'anyarray', + proargtypes => 'internal anynonarray', prosrc => 'array_agg_finalfn' }, +{ oid => '2335', descr => 'concatenate aggregate input into an array', + proname => 'array_agg', prokind => 'a', proisstrict => 'f', + prorettype => 'anyarray', proargtypes => 'anynonarray', + prosrc => 'aggregate_dummy' }, +{ oid => '4051', descr => 'aggregate transition function', + proname => 'array_agg_array_transfn', proisstrict => 'f', + prorettype => 'internal', proargtypes => 'internal anyarray', + prosrc => 'array_agg_array_transfn' }, +{ oid => '4052', descr => 'aggregate final function', + proname => 'array_agg_array_finalfn', proisstrict => 'f', + prorettype => 'anyarray', proargtypes => 'internal anyarray', + prosrc => 'array_agg_array_finalfn' }, +{ oid => '4053', descr => 'concatenate aggregate input into an array', + proname => 'array_agg', prokind => 'a', proisstrict => 'f', + prorettype => 'anyarray', proargtypes => 'anyarray', + prosrc => 'aggregate_dummy' }, +{ oid => '3218', + descr => 'bucket number of operand given a sorted array of bucket lower bounds', + proname => 'width_bucket', prorettype => 'int4', + proargtypes => 'anyelement anyarray', prosrc => 'width_bucket_array' }, +{ oid => '3816', descr => 'array typanalyze', + proname => 'array_typanalyze', provolatile => 's', prorettype => 'bool', + proargtypes => 'internal', prosrc => 'array_typanalyze' }, +{ oid => '3817', + descr => 'restriction selectivity for array-containment operators', + proname => 'arraycontsel', provolatile => 's', prorettype => 'float8', + proargtypes => 'internal oid internal int4', prosrc => 'arraycontsel' }, +{ oid => '3818', descr => 'join selectivity for array-containment operators', + proname => 'arraycontjoinsel', provolatile => 's', prorettype => 'float8', + proargtypes => 'internal oid internal int2 internal', + prosrc => 'arraycontjoinsel' }, + +{ oid => '760', descr => 'I/O', + proname => 'smgrin', provolatile => 's', prorettype => 'smgr', + proargtypes => 'cstring', prosrc => 'smgrin' }, +{ oid => '761', descr => 'I/O', + proname => 'smgrout', provolatile => 's', prorettype => 'cstring', + proargtypes => 'smgr', prosrc => 'smgrout' }, +{ oid => '762', descr => 'storage manager', + proname => 'smgreq', prorettype => 'bool', proargtypes => 'smgr smgr', + prosrc => 'smgreq' }, +{ oid => '763', descr => 'storage manager', + proname => 'smgrne', prorettype => 'bool', proargtypes => 'smgr smgr', + prosrc => 'smgrne' }, + +{ oid => '764', descr => 'large object import', + proname => 'lo_import', provolatile => 'v', proparallel => 'u', + prorettype => 'oid', proargtypes => 'text', prosrc => 'be_lo_import' }, +{ oid => '767', descr => 'large object import', + proname => 'lo_import', provolatile => 'v', proparallel => 'u', + prorettype => 'oid', proargtypes => 'text oid', + prosrc => 'be_lo_import_with_oid' }, +{ oid => '765', descr => 'large object export', + proname => 'lo_export', provolatile => 'v', proparallel => 'u', + prorettype => 'int4', proargtypes => 'oid text', prosrc => 'be_lo_export' }, + +{ oid => '766', descr => 'increment', + proname => 'int4inc', prorettype => 'int4', proargtypes => 'int4', + prosrc => 'int4inc' }, +{ oid => '768', descr => 'larger of two', + proname => 'int4larger', prorettype => 'int4', proargtypes => 'int4 int4', + prosrc => 'int4larger' }, +{ oid => '769', descr => 'smaller of two', + proname => 'int4smaller', prorettype => 'int4', proargtypes => 'int4 int4', + prosrc => 'int4smaller' }, +{ oid => '770', descr => 'larger of two', + proname => 'int2larger', prorettype => 'int2', proargtypes => 'int2 int2', + prosrc => 'int2larger' }, +{ oid => '771', descr => 'smaller of two', + proname => 'int2smaller', prorettype => 'int2', proargtypes => 'int2 int2', + prosrc => 'int2smaller' }, + +{ oid => '784', + proname => 'tintervaleq', proleakproof => 't', prorettype => 'bool', + proargtypes => 'tinterval tinterval', prosrc => 'tintervaleq' }, +{ oid => '785', + proname => 'tintervalne', proleakproof => 't', prorettype => 'bool', + proargtypes => 'tinterval tinterval', prosrc => 'tintervalne' }, +{ oid => '786', + proname => 'tintervallt', proleakproof => 't', prorettype => 'bool', + proargtypes => 'tinterval tinterval', prosrc => 'tintervallt' }, +{ oid => '787', + proname => 'tintervalgt', proleakproof => 't', prorettype => 'bool', + proargtypes => 'tinterval tinterval', prosrc => 'tintervalgt' }, +{ oid => '788', + proname => 'tintervalle', proleakproof => 't', prorettype => 'bool', + proargtypes => 'tinterval tinterval', prosrc => 'tintervalle' }, +{ oid => '789', + proname => 'tintervalge', proleakproof => 't', prorettype => 'bool', + proargtypes => 'tinterval tinterval', prosrc => 'tintervalge' }, + +# OIDS 800 - 899 + +{ oid => '846', + proname => 'cash_mul_flt4', prorettype => 'money', + proargtypes => 'money float4', prosrc => 'cash_mul_flt4' }, +{ oid => '847', + proname => 'cash_div_flt4', prorettype => 'money', + proargtypes => 'money float4', prosrc => 'cash_div_flt4' }, +{ oid => '848', + proname => 'flt4_mul_cash', prorettype => 'money', + proargtypes => 'float4 money', prosrc => 'flt4_mul_cash' }, + +{ oid => '849', descr => 'position of substring', + proname => 'position', prorettype => 'int4', proargtypes => 'text text', + prosrc => 'textpos' }, +{ oid => '850', + proname => 'textlike', prorettype => 'bool', proargtypes => 'text text', + prosrc => 'textlike' }, +{ oid => '851', + proname => 'textnlike', prorettype => 'bool', proargtypes => 'text text', + prosrc => 'textnlike' }, + +{ oid => '852', + proname => 'int48eq', proleakproof => 't', prorettype => 'bool', + proargtypes => 'int4 int8', prosrc => 'int48eq' }, +{ oid => '853', + proname => 'int48ne', proleakproof => 't', prorettype => 'bool', + proargtypes => 'int4 int8', prosrc => 'int48ne' }, +{ oid => '854', + proname => 'int48lt', proleakproof => 't', prorettype => 'bool', + proargtypes => 'int4 int8', prosrc => 'int48lt' }, +{ oid => '855', + proname => 'int48gt', proleakproof => 't', prorettype => 'bool', + proargtypes => 'int4 int8', prosrc => 'int48gt' }, +{ oid => '856', + proname => 'int48le', proleakproof => 't', prorettype => 'bool', + proargtypes => 'int4 int8', prosrc => 'int48le' }, +{ oid => '857', + proname => 'int48ge', proleakproof => 't', prorettype => 'bool', + proargtypes => 'int4 int8', prosrc => 'int48ge' }, + +{ oid => '858', + proname => 'namelike', prorettype => 'bool', proargtypes => 'name text', + prosrc => 'namelike' }, +{ oid => '859', + proname => 'namenlike', prorettype => 'bool', proargtypes => 'name text', + prosrc => 'namenlike' }, + +{ oid => '860', descr => 'convert char to char(n)', + proname => 'bpchar', prorettype => 'bpchar', proargtypes => 'char', + prosrc => 'char_bpchar' }, + +{ oid => '861', descr => 'name of the current database', + proname => 'current_database', provolatile => 's', prorettype => 'name', + proargtypes => '', prosrc => 'current_database' }, +{ oid => '817', descr => 'get the currently executing query', + proname => 'current_query', proisstrict => 'f', provolatile => 'v', + proparallel => 'r', prorettype => 'text', proargtypes => '', + prosrc => 'current_query' }, + +{ oid => '3399', + proname => 'int8_mul_cash', prorettype => 'money', + proargtypes => 'int8 money', prosrc => 'int8_mul_cash' }, +{ oid => '862', + proname => 'int4_mul_cash', prorettype => 'money', + proargtypes => 'int4 money', prosrc => 'int4_mul_cash' }, +{ oid => '863', + proname => 'int2_mul_cash', prorettype => 'money', + proargtypes => 'int2 money', prosrc => 'int2_mul_cash' }, +{ oid => '3344', + proname => 'cash_mul_int8', prorettype => 'money', + proargtypes => 'money int8', prosrc => 'cash_mul_int8' }, +{ oid => '3345', + proname => 'cash_div_int8', prorettype => 'money', + proargtypes => 'money int8', prosrc => 'cash_div_int8' }, +{ oid => '864', + proname => 'cash_mul_int4', prorettype => 'money', + proargtypes => 'money int4', prosrc => 'cash_mul_int4' }, +{ oid => '865', + proname => 'cash_div_int4', prorettype => 'money', + proargtypes => 'money int4', prosrc => 'cash_div_int4' }, +{ oid => '866', + proname => 'cash_mul_int2', prorettype => 'money', + proargtypes => 'money int2', prosrc => 'cash_mul_int2' }, +{ oid => '867', + proname => 'cash_div_int2', prorettype => 'money', + proargtypes => 'money int2', prosrc => 'cash_div_int2' }, + +{ oid => '886', descr => 'I/O', + proname => 'cash_in', provolatile => 's', prorettype => 'money', + proargtypes => 'cstring', prosrc => 'cash_in' }, +{ oid => '887', descr => 'I/O', + proname => 'cash_out', provolatile => 's', prorettype => 'cstring', + proargtypes => 'money', prosrc => 'cash_out' }, +{ oid => '888', + proname => 'cash_eq', proleakproof => 't', prorettype => 'bool', + proargtypes => 'money money', prosrc => 'cash_eq' }, +{ oid => '889', + proname => 'cash_ne', proleakproof => 't', prorettype => 'bool', + proargtypes => 'money money', prosrc => 'cash_ne' }, +{ oid => '890', + proname => 'cash_lt', proleakproof => 't', prorettype => 'bool', + proargtypes => 'money money', prosrc => 'cash_lt' }, +{ oid => '891', + proname => 'cash_le', proleakproof => 't', prorettype => 'bool', + proargtypes => 'money money', prosrc => 'cash_le' }, +{ oid => '892', + proname => 'cash_gt', proleakproof => 't', prorettype => 'bool', + proargtypes => 'money money', prosrc => 'cash_gt' }, +{ oid => '893', + proname => 'cash_ge', proleakproof => 't', prorettype => 'bool', + proargtypes => 'money money', prosrc => 'cash_ge' }, +{ oid => '894', + proname => 'cash_pl', prorettype => 'money', proargtypes => 'money money', + prosrc => 'cash_pl' }, +{ oid => '895', + proname => 'cash_mi', prorettype => 'money', proargtypes => 'money money', + prosrc => 'cash_mi' }, +{ oid => '896', + proname => 'cash_mul_flt8', prorettype => 'money', + proargtypes => 'money float8', prosrc => 'cash_mul_flt8' }, +{ oid => '897', + proname => 'cash_div_flt8', prorettype => 'money', + proargtypes => 'money float8', prosrc => 'cash_div_flt8' }, +{ oid => '898', descr => 'larger of two', + proname => 'cashlarger', prorettype => 'money', proargtypes => 'money money', + prosrc => 'cashlarger' }, +{ oid => '899', descr => 'smaller of two', + proname => 'cashsmaller', prorettype => 'money', proargtypes => 'money money', + prosrc => 'cashsmaller' }, +{ oid => '919', + proname => 'flt8_mul_cash', prorettype => 'money', + proargtypes => 'float8 money', prosrc => 'flt8_mul_cash' }, +{ oid => '935', descr => 'output money amount as words', + proname => 'cash_words', prorettype => 'text', proargtypes => 'money', + prosrc => 'cash_words' }, +{ oid => '3822', + proname => 'cash_div_cash', prorettype => 'float8', + proargtypes => 'money money', prosrc => 'cash_div_cash' }, +{ oid => '3823', descr => 'convert money to numeric', + proname => 'numeric', provolatile => 's', prorettype => 'numeric', + proargtypes => 'money', prosrc => 'cash_numeric' }, +{ oid => '3824', descr => 'convert numeric to money', + proname => 'money', provolatile => 's', prorettype => 'money', + proargtypes => 'numeric', prosrc => 'numeric_cash' }, +{ oid => '3811', descr => 'convert int4 to money', + proname => 'money', provolatile => 's', prorettype => 'money', + proargtypes => 'int4', prosrc => 'int4_cash' }, +{ oid => '3812', descr => 'convert int8 to money', + proname => 'money', provolatile => 's', prorettype => 'money', + proargtypes => 'int8', prosrc => 'int8_cash' }, + +# OIDS 900 - 999 + +{ oid => '940', descr => 'modulus', + proname => 'mod', prorettype => 'int2', proargtypes => 'int2 int2', + prosrc => 'int2mod' }, +{ oid => '941', descr => 'modulus', + proname => 'mod', prorettype => 'int4', proargtypes => 'int4 int4', + prosrc => 'int4mod' }, + +{ oid => '945', + proname => 'int8mod', prorettype => 'int8', proargtypes => 'int8 int8', + prosrc => 'int8mod' }, +{ oid => '947', descr => 'modulus', + proname => 'mod', prorettype => 'int8', proargtypes => 'int8 int8', + prosrc => 'int8mod' }, + +{ oid => '944', descr => 'convert text to char', + proname => 'char', prorettype => 'char', proargtypes => 'text', + prosrc => 'text_char' }, +{ oid => '946', descr => 'convert char to text', + proname => 'text', prorettype => 'text', proargtypes => 'char', + prosrc => 'char_text' }, + +{ oid => '952', descr => 'large object open', + proname => 'lo_open', provolatile => 'v', proparallel => 'u', + prorettype => 'int4', proargtypes => 'oid int4', prosrc => 'be_lo_open' }, +{ oid => '953', descr => 'large object close', + proname => 'lo_close', provolatile => 'v', proparallel => 'u', + prorettype => 'int4', proargtypes => 'int4', prosrc => 'be_lo_close' }, +{ oid => '954', descr => 'large object read', + proname => 'loread', provolatile => 'v', proparallel => 'u', + prorettype => 'bytea', proargtypes => 'int4 int4', prosrc => 'be_loread' }, +{ oid => '955', descr => 'large object write', + proname => 'lowrite', provolatile => 'v', proparallel => 'u', + prorettype => 'int4', proargtypes => 'int4 bytea', prosrc => 'be_lowrite' }, +{ oid => '956', descr => 'large object seek', + proname => 'lo_lseek', provolatile => 'v', proparallel => 'u', + prorettype => 'int4', proargtypes => 'int4 int4 int4', + prosrc => 'be_lo_lseek' }, +{ oid => '3170', descr => 'large object seek (64 bit)', + proname => 'lo_lseek64', provolatile => 'v', proparallel => 'u', + prorettype => 'int8', proargtypes => 'int4 int8 int4', + prosrc => 'be_lo_lseek64' }, +{ oid => '957', descr => 'large object create', + proname => 'lo_creat', provolatile => 'v', proparallel => 'u', + prorettype => 'oid', proargtypes => 'int4', prosrc => 'be_lo_creat' }, +{ oid => '715', descr => 'large object create', + proname => 'lo_create', provolatile => 'v', proparallel => 'u', + prorettype => 'oid', proargtypes => 'oid', prosrc => 'be_lo_create' }, +{ oid => '958', descr => 'large object position', + proname => 'lo_tell', provolatile => 'v', proparallel => 'u', + prorettype => 'int4', proargtypes => 'int4', prosrc => 'be_lo_tell' }, +{ oid => '3171', descr => 'large object position (64 bit)', + proname => 'lo_tell64', provolatile => 'v', proparallel => 'u', + prorettype => 'int8', proargtypes => 'int4', prosrc => 'be_lo_tell64' }, +{ oid => '1004', descr => 'truncate large object', + proname => 'lo_truncate', provolatile => 'v', proparallel => 'u', + prorettype => 'int4', proargtypes => 'int4 int4', + prosrc => 'be_lo_truncate' }, +{ oid => '3172', descr => 'truncate large object (64 bit)', + proname => 'lo_truncate64', provolatile => 'v', proparallel => 'u', + prorettype => 'int4', proargtypes => 'int4 int8', + prosrc => 'be_lo_truncate64' }, + +{ oid => '3457', descr => 'create new large object with given content', + proname => 'lo_from_bytea', provolatile => 'v', proparallel => 'u', + prorettype => 'oid', proargtypes => 'oid bytea', + prosrc => 'be_lo_from_bytea' }, +{ oid => '3458', descr => 'read entire large object', + proname => 'lo_get', provolatile => 'v', proparallel => 'u', + prorettype => 'bytea', proargtypes => 'oid', prosrc => 'be_lo_get' }, +{ oid => '3459', descr => 'read large object from offset for length', + proname => 'lo_get', provolatile => 'v', proparallel => 'u', + prorettype => 'bytea', proargtypes => 'oid int8 int4', + prosrc => 'be_lo_get_fragment' }, +{ oid => '3460', descr => 'write data at offset', + proname => 'lo_put', provolatile => 'v', proparallel => 'u', + prorettype => 'void', proargtypes => 'oid int8 bytea', + prosrc => 'be_lo_put' }, + +{ oid => '959', + proname => 'on_pl', prorettype => 'bool', proargtypes => 'point line', + prosrc => 'on_pl' }, +{ oid => '960', + proname => 'on_sl', prorettype => 'bool', proargtypes => 'lseg line', + prosrc => 'on_sl' }, +{ oid => '961', + proname => 'close_pl', prorettype => 'point', proargtypes => 'point line', + prosrc => 'close_pl' }, +{ oid => '962', + proname => 'close_sl', prorettype => 'point', proargtypes => 'lseg line', + prosrc => 'close_sl' }, +{ oid => '963', + proname => 'close_lb', prorettype => 'point', proargtypes => 'line box', + prosrc => 'close_lb' }, + +{ oid => '964', descr => 'large object unlink (delete)', + proname => 'lo_unlink', provolatile => 'v', proparallel => 'u', + prorettype => 'int4', proargtypes => 'oid', prosrc => 'be_lo_unlink' }, + +{ oid => '973', + proname => 'path_inter', prorettype => 'bool', proargtypes => 'path path', + prosrc => 'path_inter' }, +{ oid => '975', descr => 'box area', + proname => 'area', prorettype => 'float8', proargtypes => 'box', + prosrc => 'box_area' }, +{ oid => '976', descr => 'box width', + proname => 'width', prorettype => 'float8', proargtypes => 'box', + prosrc => 'box_width' }, +{ oid => '977', descr => 'box height', + proname => 'height', prorettype => 'float8', proargtypes => 'box', + prosrc => 'box_height' }, +{ oid => '978', + proname => 'box_distance', prorettype => 'float8', proargtypes => 'box box', + prosrc => 'box_distance' }, +{ oid => '979', descr => 'area of a closed path', + proname => 'area', prorettype => 'float8', proargtypes => 'path', + prosrc => 'path_area' }, +{ oid => '980', + proname => 'box_intersect', prorettype => 'box', proargtypes => 'box box', + prosrc => 'box_intersect' }, +{ oid => '4067', descr => 'bounding box of two boxes', + proname => 'bound_box', prorettype => 'box', proargtypes => 'box box', + prosrc => 'boxes_bound_box' }, +{ oid => '981', descr => 'box diagonal', + proname => 'diagonal', prorettype => 'lseg', proargtypes => 'box', + prosrc => 'box_diagonal' }, +{ oid => '982', + proname => 'path_n_lt', prorettype => 'bool', proargtypes => 'path path', + prosrc => 'path_n_lt' }, +{ oid => '983', + proname => 'path_n_gt', prorettype => 'bool', proargtypes => 'path path', + prosrc => 'path_n_gt' }, +{ oid => '984', + proname => 'path_n_eq', prorettype => 'bool', proargtypes => 'path path', + prosrc => 'path_n_eq' }, +{ oid => '985', + proname => 'path_n_le', prorettype => 'bool', proargtypes => 'path path', + prosrc => 'path_n_le' }, +{ oid => '986', + proname => 'path_n_ge', prorettype => 'bool', proargtypes => 'path path', + prosrc => 'path_n_ge' }, +{ oid => '987', + proname => 'path_length', prorettype => 'float8', proargtypes => 'path', + prosrc => 'path_length' }, +{ oid => '988', + proname => 'point_ne', prorettype => 'bool', proargtypes => 'point point', + prosrc => 'point_ne' }, +{ oid => '989', + proname => 'point_vert', prorettype => 'bool', proargtypes => 'point point', + prosrc => 'point_vert' }, +{ oid => '990', + proname => 'point_horiz', prorettype => 'bool', proargtypes => 'point point', + prosrc => 'point_horiz' }, +{ oid => '991', + proname => 'point_distance', prorettype => 'float8', + proargtypes => 'point point', prosrc => 'point_distance' }, +{ oid => '992', descr => 'slope between points', + proname => 'slope', prorettype => 'float8', proargtypes => 'point point', + prosrc => 'point_slope' }, +{ oid => '993', descr => 'convert points to line segment', + proname => 'lseg', prorettype => 'lseg', proargtypes => 'point point', + prosrc => 'lseg_construct' }, +{ oid => '994', + proname => 'lseg_intersect', prorettype => 'bool', proargtypes => 'lseg lseg', + prosrc => 'lseg_intersect' }, +{ oid => '995', + proname => 'lseg_parallel', prorettype => 'bool', proargtypes => 'lseg lseg', + prosrc => 'lseg_parallel' }, +{ oid => '996', + proname => 'lseg_perp', prorettype => 'bool', proargtypes => 'lseg lseg', + prosrc => 'lseg_perp' }, +{ oid => '997', + proname => 'lseg_vertical', prorettype => 'bool', proargtypes => 'lseg', + prosrc => 'lseg_vertical' }, +{ oid => '998', + proname => 'lseg_horizontal', prorettype => 'bool', proargtypes => 'lseg', + prosrc => 'lseg_horizontal' }, +{ oid => '999', + proname => 'lseg_eq', proleakproof => 't', prorettype => 'bool', + proargtypes => 'lseg lseg', prosrc => 'lseg_eq' }, + +# OIDS 1000 - 1999 + +{ oid => '3994', descr => 'transform a time zone adjustment', + proname => 'timestamp_izone_transform', prorettype => 'internal', + proargtypes => 'internal', prosrc => 'timestamp_izone_transform' }, +{ oid => '1026', descr => 'adjust timestamp to new time zone', + proname => 'timezone', protransform => 'timestamp_izone_transform', + prorettype => 'timestamp', proargtypes => 'interval timestamptz', + prosrc => 'timestamptz_izone' }, + +{ oid => '1031', descr => 'I/O', + proname => 'aclitemin', provolatile => 's', prorettype => 'aclitem', + proargtypes => 'cstring', prosrc => 'aclitemin' }, +{ oid => '1032', descr => 'I/O', + proname => 'aclitemout', provolatile => 's', prorettype => 'cstring', + proargtypes => 'aclitem', prosrc => 'aclitemout' }, +{ oid => '1035', descr => 'add/update ACL item', + proname => 'aclinsert', prorettype => '_aclitem', + proargtypes => '_aclitem aclitem', prosrc => 'aclinsert' }, +{ oid => '1036', descr => 'remove ACL item', + proname => 'aclremove', prorettype => '_aclitem', + proargtypes => '_aclitem aclitem', prosrc => 'aclremove' }, +{ oid => '1037', descr => 'contains', + proname => 'aclcontains', prorettype => 'bool', + proargtypes => '_aclitem aclitem', prosrc => 'aclcontains' }, +{ oid => '1062', + proname => 'aclitemeq', prorettype => 'bool', + proargtypes => 'aclitem aclitem', prosrc => 'aclitem_eq' }, +{ oid => '1365', descr => 'make ACL item', + proname => 'makeaclitem', prorettype => 'aclitem', + proargtypes => 'oid oid text bool', prosrc => 'makeaclitem' }, +{ oid => '3943', descr => 'TODO', + proname => 'acldefault', prorettype => '_aclitem', proargtypes => 'char oid', + prosrc => 'acldefault_sql' }, +{ oid => '1689', + descr => 'convert ACL item array to table, for use by information schema', + proname => 'aclexplode', prorows => '10', proretset => 't', + provolatile => 's', prorettype => 'record', proargtypes => '_aclitem', + proallargtypes => '{_aclitem,oid,oid,text,bool}', + proargmodes => '{i,o,o,o,o}', + proargnames => '{acl,grantor,grantee,privilege_type,is_grantable}', + prosrc => 'aclexplode' }, +{ oid => '1044', descr => 'I/O', + proname => 'bpcharin', prorettype => 'bpchar', + proargtypes => 'cstring oid int4', prosrc => 'bpcharin' }, +{ oid => '1045', descr => 'I/O', + proname => 'bpcharout', prorettype => 'cstring', proargtypes => 'bpchar', + prosrc => 'bpcharout' }, +{ oid => '2913', descr => 'I/O typmod', + proname => 'bpchartypmodin', prorettype => 'int4', proargtypes => '_cstring', + prosrc => 'bpchartypmodin' }, +{ oid => '2914', descr => 'I/O typmod', + proname => 'bpchartypmodout', prorettype => 'cstring', proargtypes => 'int4', + prosrc => 'bpchartypmodout' }, +{ oid => '1046', descr => 'I/O', + proname => 'varcharin', prorettype => 'varchar', + proargtypes => 'cstring oid int4', prosrc => 'varcharin' }, +{ oid => '1047', descr => 'I/O', + proname => 'varcharout', prorettype => 'cstring', proargtypes => 'varchar', + prosrc => 'varcharout' }, +{ oid => '2915', descr => 'I/O typmod', + proname => 'varchartypmodin', prorettype => 'int4', proargtypes => '_cstring', + prosrc => 'varchartypmodin' }, +{ oid => '2916', descr => 'I/O typmod', + proname => 'varchartypmodout', prorettype => 'cstring', proargtypes => 'int4', + prosrc => 'varchartypmodout' }, +{ oid => '1048', + proname => 'bpchareq', proleakproof => 't', prorettype => 'bool', + proargtypes => 'bpchar bpchar', prosrc => 'bpchareq' }, +{ oid => '1049', + proname => 'bpcharlt', prorettype => 'bool', proargtypes => 'bpchar bpchar', + prosrc => 'bpcharlt' }, +{ oid => '1050', + proname => 'bpcharle', prorettype => 'bool', proargtypes => 'bpchar bpchar', + prosrc => 'bpcharle' }, +{ oid => '1051', + proname => 'bpchargt', prorettype => 'bool', proargtypes => 'bpchar bpchar', + prosrc => 'bpchargt' }, +{ oid => '1052', + proname => 'bpcharge', prorettype => 'bool', proargtypes => 'bpchar bpchar', + prosrc => 'bpcharge' }, +{ oid => '1053', + proname => 'bpcharne', proleakproof => 't', prorettype => 'bool', + proargtypes => 'bpchar bpchar', prosrc => 'bpcharne' }, +{ oid => '1063', descr => 'larger of two', + proname => 'bpchar_larger', prorettype => 'bpchar', + proargtypes => 'bpchar bpchar', prosrc => 'bpchar_larger' }, +{ oid => '1064', descr => 'smaller of two', + proname => 'bpchar_smaller', prorettype => 'bpchar', + proargtypes => 'bpchar bpchar', prosrc => 'bpchar_smaller' }, +{ oid => '1078', descr => 'less-equal-greater', + proname => 'bpcharcmp', prorettype => 'int4', proargtypes => 'bpchar bpchar', + prosrc => 'bpcharcmp' }, +{ oid => '3328', descr => 'sort support', + proname => 'bpchar_sortsupport', prorettype => 'void', + proargtypes => 'internal', prosrc => 'bpchar_sortsupport' }, +{ oid => '1080', descr => 'hash', + proname => 'hashbpchar', prorettype => 'int4', proargtypes => 'bpchar', + prosrc => 'hashbpchar' }, +{ oid => '972', descr => 'hash', + proname => 'hashbpcharextended', prorettype => 'int8', + proargtypes => 'bpchar int8', prosrc => 'hashbpcharextended' }, +{ oid => '1081', descr => 'format a type oid and atttypmod to canonical SQL', + proname => 'format_type', proisstrict => 'f', provolatile => 's', + prorettype => 'text', proargtypes => 'oid int4', prosrc => 'format_type' }, +{ oid => '1084', descr => 'I/O', + proname => 'date_in', provolatile => 's', prorettype => 'date', + proargtypes => 'cstring', prosrc => 'date_in' }, +{ oid => '1085', descr => 'I/O', + proname => 'date_out', provolatile => 's', prorettype => 'cstring', + proargtypes => 'date', prosrc => 'date_out' }, +{ oid => '1086', + proname => 'date_eq', proleakproof => 't', prorettype => 'bool', + proargtypes => 'date date', prosrc => 'date_eq' }, +{ oid => '1087', + proname => 'date_lt', proleakproof => 't', prorettype => 'bool', + proargtypes => 'date date', prosrc => 'date_lt' }, +{ oid => '1088', + proname => 'date_le', proleakproof => 't', prorettype => 'bool', + proargtypes => 'date date', prosrc => 'date_le' }, +{ oid => '1089', + proname => 'date_gt', proleakproof => 't', prorettype => 'bool', + proargtypes => 'date date', prosrc => 'date_gt' }, +{ oid => '1090', + proname => 'date_ge', proleakproof => 't', prorettype => 'bool', + proargtypes => 'date date', prosrc => 'date_ge' }, +{ oid => '1091', + proname => 'date_ne', proleakproof => 't', prorettype => 'bool', + proargtypes => 'date date', prosrc => 'date_ne' }, +{ oid => '1092', descr => 'less-equal-greater', + proname => 'date_cmp', prorettype => 'int4', proargtypes => 'date date', + prosrc => 'date_cmp' }, +{ oid => '3136', descr => 'sort support', + proname => 'date_sortsupport', prorettype => 'void', + proargtypes => 'internal', prosrc => 'date_sortsupport' }, +{ oid => '4133', descr => 'window RANGE support', + proname => 'in_range', prorettype => 'bool', + proargtypes => 'date date interval bool bool', + prosrc => 'in_range_date_interval' }, + +# OIDS 1100 - 1199 + +{ oid => '1102', + proname => 'time_lt', proleakproof => 't', prorettype => 'bool', + proargtypes => 'time time', prosrc => 'time_lt' }, +{ oid => '1103', + proname => 'time_le', proleakproof => 't', prorettype => 'bool', + proargtypes => 'time time', prosrc => 'time_le' }, +{ oid => '1104', + proname => 'time_gt', proleakproof => 't', prorettype => 'bool', + proargtypes => 'time time', prosrc => 'time_gt' }, +{ oid => '1105', + proname => 'time_ge', proleakproof => 't', prorettype => 'bool', + proargtypes => 'time time', prosrc => 'time_ge' }, +{ oid => '1106', + proname => 'time_ne', proleakproof => 't', prorettype => 'bool', + proargtypes => 'time time', prosrc => 'time_ne' }, +{ oid => '1107', descr => 'less-equal-greater', + proname => 'time_cmp', prorettype => 'int4', proargtypes => 'time time', + prosrc => 'time_cmp' }, +{ oid => '1138', descr => 'larger of two', + proname => 'date_larger', prorettype => 'date', proargtypes => 'date date', + prosrc => 'date_larger' }, +{ oid => '1139', descr => 'smaller of two', + proname => 'date_smaller', prorettype => 'date', proargtypes => 'date date', + prosrc => 'date_smaller' }, +{ oid => '1140', + proname => 'date_mi', prorettype => 'int4', proargtypes => 'date date', + prosrc => 'date_mi' }, +{ oid => '1141', + proname => 'date_pli', prorettype => 'date', proargtypes => 'date int4', + prosrc => 'date_pli' }, +{ oid => '1142', + proname => 'date_mii', prorettype => 'date', proargtypes => 'date int4', + prosrc => 'date_mii' }, +{ oid => '1143', descr => 'I/O', + proname => 'time_in', provolatile => 's', prorettype => 'time', + proargtypes => 'cstring oid int4', prosrc => 'time_in' }, +{ oid => '1144', descr => 'I/O', + proname => 'time_out', prorettype => 'cstring', proargtypes => 'time', + prosrc => 'time_out' }, +{ oid => '2909', descr => 'I/O typmod', + proname => 'timetypmodin', prorettype => 'int4', proargtypes => '_cstring', + prosrc => 'timetypmodin' }, +{ oid => '2910', descr => 'I/O typmod', + proname => 'timetypmodout', prorettype => 'cstring', proargtypes => 'int4', + prosrc => 'timetypmodout' }, +{ oid => '1145', + proname => 'time_eq', proleakproof => 't', prorettype => 'bool', + proargtypes => 'time time', prosrc => 'time_eq' }, + +{ oid => '1146', + proname => 'circle_add_pt', prorettype => 'circle', + proargtypes => 'circle point', prosrc => 'circle_add_pt' }, +{ oid => '1147', + proname => 'circle_sub_pt', prorettype => 'circle', + proargtypes => 'circle point', prosrc => 'circle_sub_pt' }, +{ oid => '1148', + proname => 'circle_mul_pt', prorettype => 'circle', + proargtypes => 'circle point', prosrc => 'circle_mul_pt' }, +{ oid => '1149', + proname => 'circle_div_pt', prorettype => 'circle', + proargtypes => 'circle point', prosrc => 'circle_div_pt' }, + +{ oid => '1150', descr => 'I/O', + proname => 'timestamptz_in', provolatile => 's', prorettype => 'timestamptz', + proargtypes => 'cstring oid int4', prosrc => 'timestamptz_in' }, +{ oid => '1151', descr => 'I/O', + proname => 'timestamptz_out', provolatile => 's', prorettype => 'cstring', + proargtypes => 'timestamptz', prosrc => 'timestamptz_out' }, +{ oid => '2907', descr => 'I/O typmod', + proname => 'timestamptztypmodin', prorettype => 'int4', + proargtypes => '_cstring', prosrc => 'timestamptztypmodin' }, +{ oid => '2908', descr => 'I/O typmod', + proname => 'timestamptztypmodout', prorettype => 'cstring', + proargtypes => 'int4', prosrc => 'timestamptztypmodout' }, +{ oid => '1152', + proname => 'timestamptz_eq', proleakproof => 't', prorettype => 'bool', + proargtypes => 'timestamptz timestamptz', prosrc => 'timestamp_eq' }, +{ oid => '1153', + proname => 'timestamptz_ne', proleakproof => 't', prorettype => 'bool', + proargtypes => 'timestamptz timestamptz', prosrc => 'timestamp_ne' }, +{ oid => '1154', + proname => 'timestamptz_lt', proleakproof => 't', prorettype => 'bool', + proargtypes => 'timestamptz timestamptz', prosrc => 'timestamp_lt' }, +{ oid => '1155', + proname => 'timestamptz_le', proleakproof => 't', prorettype => 'bool', + proargtypes => 'timestamptz timestamptz', prosrc => 'timestamp_le' }, +{ oid => '1156', + proname => 'timestamptz_ge', proleakproof => 't', prorettype => 'bool', + proargtypes => 'timestamptz timestamptz', prosrc => 'timestamp_ge' }, +{ oid => '1157', + proname => 'timestamptz_gt', proleakproof => 't', prorettype => 'bool', + proargtypes => 'timestamptz timestamptz', prosrc => 'timestamp_gt' }, +{ oid => '1158', descr => 'convert UNIX epoch to timestamptz', + proname => 'to_timestamp', prorettype => 'timestamptz', + proargtypes => 'float8', prosrc => 'float8_timestamptz' }, +{ oid => '3995', descr => 'transform a time zone adjustment', + proname => 'timestamp_zone_transform', prorettype => 'internal', + proargtypes => 'internal', prosrc => 'timestamp_zone_transform' }, +{ oid => '1159', descr => 'adjust timestamp to new time zone', + proname => 'timezone', protransform => 'timestamp_zone_transform', + prorettype => 'timestamp', proargtypes => 'text timestamptz', + prosrc => 'timestamptz_zone' }, + +{ oid => '1160', descr => 'I/O', + proname => 'interval_in', provolatile => 's', prorettype => 'interval', + proargtypes => 'cstring oid int4', prosrc => 'interval_in' }, +{ oid => '1161', descr => 'I/O', + proname => 'interval_out', prorettype => 'cstring', proargtypes => 'interval', + prosrc => 'interval_out' }, +{ oid => '2903', descr => 'I/O typmod', + proname => 'intervaltypmodin', prorettype => 'int4', + proargtypes => '_cstring', prosrc => 'intervaltypmodin' }, +{ oid => '2904', descr => 'I/O typmod', + proname => 'intervaltypmodout', prorettype => 'cstring', + proargtypes => 'int4', prosrc => 'intervaltypmodout' }, +{ oid => '1162', + proname => 'interval_eq', proleakproof => 't', prorettype => 'bool', + proargtypes => 'interval interval', prosrc => 'interval_eq' }, +{ oid => '1163', + proname => 'interval_ne', proleakproof => 't', prorettype => 'bool', + proargtypes => 'interval interval', prosrc => 'interval_ne' }, +{ oid => '1164', + proname => 'interval_lt', proleakproof => 't', prorettype => 'bool', + proargtypes => 'interval interval', prosrc => 'interval_lt' }, +{ oid => '1165', + proname => 'interval_le', proleakproof => 't', prorettype => 'bool', + proargtypes => 'interval interval', prosrc => 'interval_le' }, +{ oid => '1166', + proname => 'interval_ge', proleakproof => 't', prorettype => 'bool', + proargtypes => 'interval interval', prosrc => 'interval_ge' }, +{ oid => '1167', + proname => 'interval_gt', proleakproof => 't', prorettype => 'bool', + proargtypes => 'interval interval', prosrc => 'interval_gt' }, +{ oid => '1168', + proname => 'interval_um', prorettype => 'interval', proargtypes => 'interval', + prosrc => 'interval_um' }, +{ oid => '1169', + proname => 'interval_pl', prorettype => 'interval', + proargtypes => 'interval interval', prosrc => 'interval_pl' }, +{ oid => '1170', + proname => 'interval_mi', prorettype => 'interval', + proargtypes => 'interval interval', prosrc => 'interval_mi' }, +{ oid => '1171', descr => 'extract field from timestamp with time zone', + proname => 'date_part', provolatile => 's', prorettype => 'float8', + proargtypes => 'text timestamptz', prosrc => 'timestamptz_part' }, +{ oid => '1172', descr => 'extract field from interval', + proname => 'date_part', prorettype => 'float8', + proargtypes => 'text interval', prosrc => 'interval_part' }, +{ oid => '1173', descr => 'convert abstime to timestamp with time zone', + proname => 'timestamptz', prorettype => 'timestamptz', + proargtypes => 'abstime', prosrc => 'abstime_timestamptz' }, +{ oid => '1174', descr => 'convert date to timestamp with time zone', + proname => 'timestamptz', provolatile => 's', prorettype => 'timestamptz', + proargtypes => 'date', prosrc => 'date_timestamptz' }, +{ oid => '2711', + descr => 'promote groups of 24 hours to numbers of days and promote groups of 30 days to numbers of months', + proname => 'justify_interval', prorettype => 'interval', + proargtypes => 'interval', prosrc => 'interval_justify_interval' }, +{ oid => '1175', descr => 'promote groups of 24 hours to numbers of days', + proname => 'justify_hours', prorettype => 'interval', + proargtypes => 'interval', prosrc => 'interval_justify_hours' }, +{ oid => '1295', descr => 'promote groups of 30 days to numbers of months', + proname => 'justify_days', prorettype => 'interval', + proargtypes => 'interval', prosrc => 'interval_justify_days' }, +{ oid => '1176', descr => 'convert date and time to timestamp with time zone', + proname => 'timestamptz', prolang => '14', provolatile => 's', + prorettype => 'timestamptz', proargtypes => 'date time', + prosrc => 'select cast(($1 + $2) as timestamp with time zone)' }, +{ oid => '1177', descr => 'convert reltime to interval', + proname => 'interval', prorettype => 'interval', proargtypes => 'reltime', + prosrc => 'reltime_interval' }, +{ oid => '1178', descr => 'convert timestamp with time zone to date', + proname => 'date', provolatile => 's', prorettype => 'date', + proargtypes => 'timestamptz', prosrc => 'timestamptz_date' }, +{ oid => '1179', descr => 'convert abstime to date', + proname => 'date', provolatile => 's', prorettype => 'date', + proargtypes => 'abstime', prosrc => 'abstime_date' }, +{ oid => '1180', descr => 'convert timestamp with time zone to abstime', + proname => 'abstime', prorettype => 'abstime', proargtypes => 'timestamptz', + prosrc => 'timestamptz_abstime' }, +{ oid => '1181', + descr => 'age of a transaction ID, in transactions before current transaction', + proname => 'age', provolatile => 's', proparallel => 'r', + prorettype => 'int4', proargtypes => 'xid', prosrc => 'xid_age' }, +{ oid => '3939', + descr => 'age of a multi-transaction ID, in multi-transactions before current multi-transaction', + proname => 'mxid_age', provolatile => 's', prorettype => 'int4', + proargtypes => 'xid', prosrc => 'mxid_age' }, + +{ oid => '1188', + proname => 'timestamptz_mi', prorettype => 'interval', + proargtypes => 'timestamptz timestamptz', prosrc => 'timestamp_mi' }, +{ oid => '1189', + proname => 'timestamptz_pl_interval', provolatile => 's', + prorettype => 'timestamptz', proargtypes => 'timestamptz interval', + prosrc => 'timestamptz_pl_interval' }, +{ oid => '1190', + proname => 'timestamptz_mi_interval', provolatile => 's', + prorettype => 'timestamptz', proargtypes => 'timestamptz interval', + prosrc => 'timestamptz_mi_interval' }, +{ oid => '1194', descr => 'convert interval to reltime', + proname => 'reltime', prorettype => 'reltime', proargtypes => 'interval', + prosrc => 'interval_reltime' }, +{ oid => '1195', descr => 'smaller of two', + proname => 'timestamptz_smaller', prorettype => 'timestamptz', + proargtypes => 'timestamptz timestamptz', prosrc => 'timestamp_smaller' }, +{ oid => '1196', descr => 'larger of two', + proname => 'timestamptz_larger', prorettype => 'timestamptz', + proargtypes => 'timestamptz timestamptz', prosrc => 'timestamp_larger' }, +{ oid => '1197', descr => 'smaller of two', + proname => 'interval_smaller', prorettype => 'interval', + proargtypes => 'interval interval', prosrc => 'interval_smaller' }, +{ oid => '1198', descr => 'larger of two', + proname => 'interval_larger', prorettype => 'interval', + proargtypes => 'interval interval', prosrc => 'interval_larger' }, +{ oid => '1199', descr => 'date difference preserving months and years', + proname => 'age', prorettype => 'interval', + proargtypes => 'timestamptz timestamptz', prosrc => 'timestamptz_age' }, + +# OIDS 1200 - 1299 + +{ oid => '3918', descr => 'transform an interval length coercion', + proname => 'interval_transform', prorettype => 'internal', + proargtypes => 'internal', prosrc => 'interval_transform' }, +{ oid => '1200', descr => 'adjust interval precision', + proname => 'interval', protransform => 'interval_transform', + prorettype => 'interval', proargtypes => 'interval int4', + prosrc => 'interval_scale' }, + +{ oid => '1215', descr => 'get description for object id and catalog name', + proname => 'obj_description', prolang => '14', procost => '100', + provolatile => 's', prorettype => 'text', proargtypes => 'oid name', + prosrc => 'select description from pg_catalog.pg_description where objoid = $1 and classoid = (select oid from pg_catalog.pg_class where relname = $2 and relnamespace = PGNSP) and objsubid = 0' }, +{ oid => '1216', descr => 'get description for table column', + proname => 'col_description', prolang => '14', procost => '100', + provolatile => 's', prorettype => 'text', proargtypes => 'oid int4', + prosrc => 'select description from pg_catalog.pg_description where objoid = $1 and classoid = \'\'pg_catalog.pg_class\'\'::pg_catalog.regclass and objsubid = $2' }, +{ oid => '1993', + descr => 'get description for object id and shared catalog name', + proname => 'shobj_description', prolang => '14', procost => '100', + provolatile => 's', prorettype => 'text', proargtypes => 'oid name', + prosrc => 'select description from pg_catalog.pg_shdescription where objoid = $1 and classoid = (select oid from pg_catalog.pg_class where relname = $2 and relnamespace = PGNSP)' }, + +{ oid => '1217', + descr => 'truncate timestamp with time zone to specified units', + proname => 'date_trunc', provolatile => 's', prorettype => 'timestamptz', + proargtypes => 'text timestamptz', prosrc => 'timestamptz_trunc' }, +{ oid => '1218', descr => 'truncate interval to specified units', + proname => 'date_trunc', prorettype => 'interval', + proargtypes => 'text interval', prosrc => 'interval_trunc' }, + +{ oid => '1219', descr => 'increment', + proname => 'int8inc', prorettype => 'int8', proargtypes => 'int8', + prosrc => 'int8inc' }, +{ oid => '3546', descr => 'decrement', + proname => 'int8dec', prorettype => 'int8', proargtypes => 'int8', + prosrc => 'int8dec' }, +{ oid => '2804', descr => 'increment, ignores second argument', + proname => 'int8inc_any', prorettype => 'int8', proargtypes => 'int8 any', + prosrc => 'int8inc_any' }, +{ oid => '3547', descr => 'decrement, ignores second argument', + proname => 'int8dec_any', prorettype => 'int8', proargtypes => 'int8 any', + prosrc => 'int8dec_any' }, +{ oid => '1230', + proname => 'int8abs', prorettype => 'int8', proargtypes => 'int8', + prosrc => 'int8abs' }, + +{ oid => '1236', descr => 'larger of two', + proname => 'int8larger', prorettype => 'int8', proargtypes => 'int8 int8', + prosrc => 'int8larger' }, +{ oid => '1237', descr => 'smaller of two', + proname => 'int8smaller', prorettype => 'int8', proargtypes => 'int8 int8', + prosrc => 'int8smaller' }, + +{ oid => '1238', + proname => 'texticregexeq', prorettype => 'bool', proargtypes => 'text text', + prosrc => 'texticregexeq' }, +{ oid => '1239', + proname => 'texticregexne', prorettype => 'bool', proargtypes => 'text text', + prosrc => 'texticregexne' }, +{ oid => '1240', + proname => 'nameicregexeq', prorettype => 'bool', proargtypes => 'name text', + prosrc => 'nameicregexeq' }, +{ oid => '1241', + proname => 'nameicregexne', prorettype => 'bool', proargtypes => 'name text', + prosrc => 'nameicregexne' }, + +{ oid => '1251', + proname => 'int4abs', prorettype => 'int4', proargtypes => 'int4', + prosrc => 'int4abs' }, +{ oid => '1253', + proname => 'int2abs', prorettype => 'int2', proargtypes => 'int2', + prosrc => 'int2abs' }, + +{ oid => '1271', descr => 'intervals overlap?', + proname => 'overlaps', proisstrict => 'f', prorettype => 'bool', + proargtypes => 'timetz timetz timetz timetz', prosrc => 'overlaps_timetz' }, +{ oid => '1272', + proname => 'datetime_pl', prorettype => 'timestamp', + proargtypes => 'date time', prosrc => 'datetime_timestamp' }, +{ oid => '1273', descr => 'extract field from time with time zone', + proname => 'date_part', prorettype => 'float8', proargtypes => 'text timetz', + prosrc => 'timetz_part' }, +{ oid => '1274', + proname => 'int84pl', prorettype => 'int8', proargtypes => 'int8 int4', + prosrc => 'int84pl' }, +{ oid => '1275', + proname => 'int84mi', prorettype => 'int8', proargtypes => 'int8 int4', + prosrc => 'int84mi' }, +{ oid => '1276', + proname => 'int84mul', prorettype => 'int8', proargtypes => 'int8 int4', + prosrc => 'int84mul' }, +{ oid => '1277', + proname => 'int84div', prorettype => 'int8', proargtypes => 'int8 int4', + prosrc => 'int84div' }, +{ oid => '1278', + proname => 'int48pl', prorettype => 'int8', proargtypes => 'int4 int8', + prosrc => 'int48pl' }, +{ oid => '1279', + proname => 'int48mi', prorettype => 'int8', proargtypes => 'int4 int8', + prosrc => 'int48mi' }, +{ oid => '1280', + proname => 'int48mul', prorettype => 'int8', proargtypes => 'int4 int8', + prosrc => 'int48mul' }, +{ oid => '1281', + proname => 'int48div', prorettype => 'int8', proargtypes => 'int4 int8', + prosrc => 'int48div' }, + +{ oid => '837', + proname => 'int82pl', prorettype => 'int8', proargtypes => 'int8 int2', + prosrc => 'int82pl' }, +{ oid => '838', + proname => 'int82mi', prorettype => 'int8', proargtypes => 'int8 int2', + prosrc => 'int82mi' }, +{ oid => '839', + proname => 'int82mul', prorettype => 'int8', proargtypes => 'int8 int2', + prosrc => 'int82mul' }, +{ oid => '840', + proname => 'int82div', prorettype => 'int8', proargtypes => 'int8 int2', + prosrc => 'int82div' }, +{ oid => '841', + proname => 'int28pl', prorettype => 'int8', proargtypes => 'int2 int8', + prosrc => 'int28pl' }, +{ oid => '942', + proname => 'int28mi', prorettype => 'int8', proargtypes => 'int2 int8', + prosrc => 'int28mi' }, +{ oid => '943', + proname => 'int28mul', prorettype => 'int8', proargtypes => 'int2 int8', + prosrc => 'int28mul' }, +{ oid => '948', + proname => 'int28div', prorettype => 'int8', proargtypes => 'int2 int8', + prosrc => 'int28div' }, + +{ oid => '1287', descr => 'convert int8 to oid', + proname => 'oid', prorettype => 'oid', proargtypes => 'int8', + prosrc => 'i8tooid' }, +{ oid => '1288', descr => 'convert oid to int8', + proname => 'int8', prorettype => 'int8', proargtypes => 'oid', + prosrc => 'oidtoi8' }, + +{ oid => '1291', + descr => 'trigger to suppress updates when new and old records match', + proname => 'suppress_redundant_updates_trigger', provolatile => 'v', + prorettype => 'trigger', proargtypes => '', + prosrc => 'suppress_redundant_updates_trigger' }, + +{ oid => '1292', + proname => 'tideq', proleakproof => 't', prorettype => 'bool', + proargtypes => 'tid tid', prosrc => 'tideq' }, +{ oid => '1293', descr => 'latest tid of a tuple', + proname => 'currtid', provolatile => 'v', proparallel => 'u', + prorettype => 'tid', proargtypes => 'oid tid', prosrc => 'currtid_byreloid' }, +{ oid => '1294', descr => 'latest tid of a tuple', + proname => 'currtid2', provolatile => 'v', proparallel => 'u', + prorettype => 'tid', proargtypes => 'text tid', + prosrc => 'currtid_byrelname' }, +{ oid => '1265', + proname => 'tidne', proleakproof => 't', prorettype => 'bool', + proargtypes => 'tid tid', prosrc => 'tidne' }, +{ oid => '2790', + proname => 'tidgt', proleakproof => 't', prorettype => 'bool', + proargtypes => 'tid tid', prosrc => 'tidgt' }, +{ oid => '2791', + proname => 'tidlt', proleakproof => 't', prorettype => 'bool', + proargtypes => 'tid tid', prosrc => 'tidlt' }, +{ oid => '2792', + proname => 'tidge', proleakproof => 't', prorettype => 'bool', + proargtypes => 'tid tid', prosrc => 'tidge' }, +{ oid => '2793', + proname => 'tidle', proleakproof => 't', prorettype => 'bool', + proargtypes => 'tid tid', prosrc => 'tidle' }, +{ oid => '2794', descr => 'less-equal-greater', + proname => 'bttidcmp', prorettype => 'int4', proargtypes => 'tid tid', + prosrc => 'bttidcmp' }, +{ oid => '2795', descr => 'larger of two', + proname => 'tidlarger', prorettype => 'tid', proargtypes => 'tid tid', + prosrc => 'tidlarger' }, +{ oid => '2796', descr => 'smaller of two', + proname => 'tidsmaller', prorettype => 'tid', proargtypes => 'tid tid', + prosrc => 'tidsmaller' }, + +{ oid => '1296', + proname => 'timedate_pl', prolang => '14', prorettype => 'timestamp', + proargtypes => 'time date', prosrc => 'select ($2 + $1)' }, +{ oid => '1297', + proname => 'datetimetz_pl', prorettype => 'timestamptz', + proargtypes => 'date timetz', prosrc => 'datetimetz_timestamptz' }, +{ oid => '1298', + proname => 'timetzdate_pl', prolang => '14', prorettype => 'timestamptz', + proargtypes => 'timetz date', prosrc => 'select ($2 + $1)' }, +{ oid => '1299', descr => 'current transaction time', + proname => 'now', provolatile => 's', proparallel => 'r', + prorettype => 'timestamptz', proargtypes => '', prosrc => 'now' }, +{ oid => '2647', descr => 'current transaction time', + proname => 'transaction_timestamp', provolatile => 's', + prorettype => 'timestamptz', proargtypes => '', prosrc => 'now' }, +{ oid => '2648', descr => 'current statement time', + proname => 'statement_timestamp', provolatile => 's', proparallel => 'r', + prorettype => 'timestamptz', proargtypes => '', + prosrc => 'statement_timestamp' }, +{ oid => '2649', descr => 'current clock time', + proname => 'clock_timestamp', provolatile => 'v', prorettype => 'timestamptz', + proargtypes => '', prosrc => 'clock_timestamp' }, + +# OIDS 1300 - 1399 + +{ oid => '1300', + descr => 'restriction selectivity for position-comparison operators', + proname => 'positionsel', provolatile => 's', prorettype => 'float8', + proargtypes => 'internal oid internal int4', prosrc => 'positionsel' }, +{ oid => '1301', + descr => 'join selectivity for position-comparison operators', + proname => 'positionjoinsel', provolatile => 's', prorettype => 'float8', + proargtypes => 'internal oid internal int2 internal', + prosrc => 'positionjoinsel' }, +{ oid => '1302', + descr => 'restriction selectivity for containment comparison operators', + proname => 'contsel', provolatile => 's', prorettype => 'float8', + proargtypes => 'internal oid internal int4', prosrc => 'contsel' }, +{ oid => '1303', + descr => 'join selectivity for containment comparison operators', + proname => 'contjoinsel', provolatile => 's', prorettype => 'float8', + proargtypes => 'internal oid internal int2 internal', + prosrc => 'contjoinsel' }, + +{ oid => '1304', descr => 'intervals overlap?', + proname => 'overlaps', proisstrict => 'f', prorettype => 'bool', + proargtypes => 'timestamptz timestamptz timestamptz timestamptz', + prosrc => 'overlaps_timestamp' }, +{ oid => '1305', descr => 'intervals overlap?', + proname => 'overlaps', prolang => '14', proisstrict => 'f', + provolatile => 's', prorettype => 'bool', + proargtypes => 'timestamptz interval timestamptz interval', + prosrc => 'select ($1, ($1 + $2)) overlaps ($3, ($3 + $4))' }, +{ oid => '1306', descr => 'intervals overlap?', + proname => 'overlaps', prolang => '14', proisstrict => 'f', + provolatile => 's', prorettype => 'bool', + proargtypes => 'timestamptz timestamptz timestamptz interval', + prosrc => 'select ($1, $2) overlaps ($3, ($3 + $4))' }, +{ oid => '1307', descr => 'intervals overlap?', + proname => 'overlaps', prolang => '14', proisstrict => 'f', + provolatile => 's', prorettype => 'bool', + proargtypes => 'timestamptz interval timestamptz timestamptz', + prosrc => 'select ($1, ($1 + $2)) overlaps ($3, $4)' }, + +{ oid => '1308', descr => 'intervals overlap?', + proname => 'overlaps', proisstrict => 'f', prorettype => 'bool', + proargtypes => 'time time time time', prosrc => 'overlaps_time' }, +{ oid => '1309', descr => 'intervals overlap?', + proname => 'overlaps', prolang => '14', proisstrict => 'f', + prorettype => 'bool', proargtypes => 'time interval time interval', + prosrc => 'select ($1, ($1 + $2)) overlaps ($3, ($3 + $4))' }, +{ oid => '1310', descr => 'intervals overlap?', + proname => 'overlaps', prolang => '14', proisstrict => 'f', + prorettype => 'bool', proargtypes => 'time time time interval', + prosrc => 'select ($1, $2) overlaps ($3, ($3 + $4))' }, +{ oid => '1311', descr => 'intervals overlap?', + proname => 'overlaps', prolang => '14', proisstrict => 'f', + prorettype => 'bool', proargtypes => 'time interval time time', + prosrc => 'select ($1, ($1 + $2)) overlaps ($3, $4)' }, + +{ oid => '1312', descr => 'I/O', + proname => 'timestamp_in', provolatile => 's', prorettype => 'timestamp', + proargtypes => 'cstring oid int4', prosrc => 'timestamp_in' }, +{ oid => '1313', descr => 'I/O', + proname => 'timestamp_out', provolatile => 's', prorettype => 'cstring', + proargtypes => 'timestamp', prosrc => 'timestamp_out' }, +{ oid => '2905', descr => 'I/O typmod', + proname => 'timestamptypmodin', prorettype => 'int4', + proargtypes => '_cstring', prosrc => 'timestamptypmodin' }, +{ oid => '2906', descr => 'I/O typmod', + proname => 'timestamptypmodout', prorettype => 'cstring', + proargtypes => 'int4', prosrc => 'timestamptypmodout' }, +{ oid => '1314', descr => 'less-equal-greater', + proname => 'timestamptz_cmp', prorettype => 'int4', + proargtypes => 'timestamptz timestamptz', prosrc => 'timestamp_cmp' }, +{ oid => '1315', descr => 'less-equal-greater', + proname => 'interval_cmp', prorettype => 'int4', + proargtypes => 'interval interval', prosrc => 'interval_cmp' }, +{ oid => '1316', descr => 'convert timestamp to time', + proname => 'time', prorettype => 'time', proargtypes => 'timestamp', + prosrc => 'timestamp_time' }, + +{ oid => '1317', descr => 'length', + proname => 'length', prorettype => 'int4', proargtypes => 'text', + prosrc => 'textlen' }, +{ oid => '1318', descr => 'character length', + proname => 'length', prorettype => 'int4', proargtypes => 'bpchar', + prosrc => 'bpcharlen' }, + +{ oid => '1319', + proname => 'xideqint4', proleakproof => 't', prorettype => 'bool', + proargtypes => 'xid int4', prosrc => 'xideq' }, +{ oid => '3309', + proname => 'xidneqint4', proleakproof => 't', prorettype => 'bool', + proargtypes => 'xid int4', prosrc => 'xidneq' }, + +{ oid => '1326', + proname => 'interval_div', prorettype => 'interval', + proargtypes => 'interval float8', prosrc => 'interval_div' }, + +{ oid => '1339', descr => 'base 10 logarithm', + proname => 'dlog10', prorettype => 'float8', proargtypes => 'float8', + prosrc => 'dlog10' }, +{ oid => '1340', descr => 'base 10 logarithm', + proname => 'log', prorettype => 'float8', proargtypes => 'float8', + prosrc => 'dlog10' }, +{ oid => '1341', descr => 'natural logarithm', + proname => 'ln', prorettype => 'float8', proargtypes => 'float8', + prosrc => 'dlog1' }, +{ oid => '1342', descr => 'round to nearest integer', + proname => 'round', prorettype => 'float8', proargtypes => 'float8', + prosrc => 'dround' }, +{ oid => '1343', descr => 'truncate to integer', + proname => 'trunc', prorettype => 'float8', proargtypes => 'float8', + prosrc => 'dtrunc' }, +{ oid => '1344', descr => 'square root', + proname => 'sqrt', prorettype => 'float8', proargtypes => 'float8', + prosrc => 'dsqrt' }, +{ oid => '1345', descr => 'cube root', + proname => 'cbrt', prorettype => 'float8', proargtypes => 'float8', + prosrc => 'dcbrt' }, +{ oid => '1346', descr => 'exponentiation', + proname => 'pow', prorettype => 'float8', proargtypes => 'float8 float8', + prosrc => 'dpow' }, +{ oid => '1368', descr => 'exponentiation', + proname => 'power', prorettype => 'float8', proargtypes => 'float8 float8', + prosrc => 'dpow' }, +{ oid => '1347', descr => 'natural exponential (e^x)', + proname => 'exp', prorettype => 'float8', proargtypes => 'float8', + prosrc => 'dexp' }, + +# This form of obj_description is now deprecated, since it will fail if +# 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', prorettype => 'text', proargtypes => 'oid', + 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', prorettype => 'text', + proargtypes => 'oidvector', prosrc => 'oidvectortypes' }, + +{ oid => '1350', descr => 'I/O', + proname => 'timetz_in', provolatile => 's', prorettype => 'timetz', + proargtypes => 'cstring oid int4', prosrc => 'timetz_in' }, +{ oid => '1351', descr => 'I/O', + proname => 'timetz_out', prorettype => 'cstring', proargtypes => 'timetz', + prosrc => 'timetz_out' }, +{ oid => '2911', descr => 'I/O typmod', + proname => 'timetztypmodin', prorettype => 'int4', proargtypes => '_cstring', + prosrc => 'timetztypmodin' }, +{ oid => '2912', descr => 'I/O typmod', + proname => 'timetztypmodout', prorettype => 'cstring', proargtypes => 'int4', + prosrc => 'timetztypmodout' }, +{ oid => '1352', + proname => 'timetz_eq', proleakproof => 't', prorettype => 'bool', + proargtypes => 'timetz timetz', prosrc => 'timetz_eq' }, +{ oid => '1353', + proname => 'timetz_ne', proleakproof => 't', prorettype => 'bool', + proargtypes => 'timetz timetz', prosrc => 'timetz_ne' }, +{ oid => '1354', + proname => 'timetz_lt', proleakproof => 't', prorettype => 'bool', + proargtypes => 'timetz timetz', prosrc => 'timetz_lt' }, +{ oid => '1355', + proname => 'timetz_le', proleakproof => 't', prorettype => 'bool', + proargtypes => 'timetz timetz', prosrc => 'timetz_le' }, +{ oid => '1356', + proname => 'timetz_ge', proleakproof => 't', prorettype => 'bool', + proargtypes => 'timetz timetz', prosrc => 'timetz_ge' }, +{ oid => '1357', + proname => 'timetz_gt', proleakproof => 't', prorettype => 'bool', + proargtypes => 'timetz timetz', prosrc => 'timetz_gt' }, +{ oid => '1358', descr => 'less-equal-greater', + proname => 'timetz_cmp', prorettype => 'int4', proargtypes => 'timetz timetz', + prosrc => 'timetz_cmp' }, +{ oid => '1359', + descr => 'convert date and time with time zone to timestamp with time zone', + proname => 'timestamptz', prorettype => 'timestamptz', + proargtypes => 'date timetz', prosrc => 'datetimetz_timestamptz' }, + +{ oid => '1364', descr => 'convert abstime to time', + proname => 'time', prolang => '14', provolatile => 's', prorettype => 'time', + proargtypes => 'abstime', + prosrc => 'select cast(cast($1 as timestamp without time zone) as pg_catalog.time)' }, + +{ oid => '1367', descr => 'character length', + proname => 'character_length', prorettype => 'int4', proargtypes => 'bpchar', + prosrc => 'bpcharlen' }, +{ oid => '1369', descr => 'character length', + proname => 'character_length', prorettype => 'int4', proargtypes => 'text', + prosrc => 'textlen' }, + +{ oid => '1370', descr => 'convert time to interval', + proname => 'interval', prorettype => 'interval', proargtypes => 'time', + prosrc => 'time_interval' }, +{ oid => '1372', descr => 'character length', + proname => 'char_length', prorettype => 'int4', proargtypes => 'bpchar', + prosrc => 'bpcharlen' }, +{ oid => '1374', descr => 'octet length', + proname => 'octet_length', prorettype => 'int4', proargtypes => 'text', + prosrc => 'textoctetlen' }, +{ oid => '1375', descr => 'octet length', + proname => 'octet_length', prorettype => 'int4', proargtypes => 'bpchar', + prosrc => 'bpcharoctetlen' }, + +{ oid => '1377', descr => 'larger of two', + proname => 'time_larger', prorettype => 'time', proargtypes => 'time time', + prosrc => 'time_larger' }, +{ oid => '1378', descr => 'smaller of two', + proname => 'time_smaller', prorettype => 'time', proargtypes => 'time time', + prosrc => 'time_smaller' }, +{ oid => '1379', descr => 'larger of two', + proname => 'timetz_larger', prorettype => 'timetz', + proargtypes => 'timetz timetz', prosrc => 'timetz_larger' }, +{ oid => '1380', descr => 'smaller of two', + proname => 'timetz_smaller', prorettype => 'timetz', + proargtypes => 'timetz timetz', prosrc => 'timetz_smaller' }, + +{ oid => '1381', descr => 'character length', + proname => 'char_length', prorettype => 'int4', proargtypes => 'text', + prosrc => 'textlen' }, + +{ oid => '1382', descr => 'extract field from abstime', + proname => 'date_part', prolang => '14', provolatile => 's', + prorettype => 'float8', proargtypes => 'text abstime', + prosrc => 'select pg_catalog.date_part($1, cast($2 as timestamp with time zone))' }, +{ oid => '1383', descr => 'extract field from reltime', + proname => 'date_part', prolang => '14', provolatile => 's', + prorettype => 'float8', proargtypes => 'text reltime', + prosrc => 'select pg_catalog.date_part($1, cast($2 as pg_catalog.interval))' }, +{ oid => '1384', descr => 'extract field from date', + proname => 'date_part', prolang => '14', prorettype => 'float8', + proargtypes => 'text date', + prosrc => 'select pg_catalog.date_part($1, cast($2 as timestamp without time zone))' }, +{ oid => '1385', descr => 'extract field from time', + proname => 'date_part', prorettype => 'float8', proargtypes => 'text time', + prosrc => 'time_part' }, +{ oid => '1386', + descr => 'date difference from today preserving months and years', + proname => 'age', prolang => '14', provolatile => 's', + prorettype => 'interval', proargtypes => 'timestamptz', + prosrc => 'select pg_catalog.age(cast(current_date as timestamp with time zone), $1)' }, + +{ oid => '1388', + descr => 'convert timestamp with time zone to time with time zone', + proname => 'timetz', provolatile => 's', prorettype => 'timetz', + proargtypes => 'timestamptz', prosrc => 'timestamptz_timetz' }, + +{ oid => '1373', descr => 'finite date?', + proname => 'isfinite', prorettype => 'bool', proargtypes => 'date', + prosrc => 'date_finite' }, +{ oid => '1389', descr => 'finite timestamp?', + proname => 'isfinite', prorettype => 'bool', proargtypes => 'timestamptz', + prosrc => 'timestamp_finite' }, +{ oid => '1390', descr => 'finite interval?', + proname => 'isfinite', prorettype => 'bool', proargtypes => 'interval', + prosrc => 'interval_finite' }, + +{ oid => '1376', descr => 'factorial', + proname => 'factorial', prorettype => 'numeric', proargtypes => 'int8', + prosrc => 'numeric_fac' }, +{ oid => '1394', descr => 'absolute value', + proname => 'abs', prorettype => 'float4', proargtypes => 'float4', + prosrc => 'float4abs' }, +{ oid => '1395', descr => 'absolute value', + proname => 'abs', prorettype => 'float8', proargtypes => 'float8', + prosrc => 'float8abs' }, +{ oid => '1396', descr => 'absolute value', + proname => 'abs', prorettype => 'int8', proargtypes => 'int8', + prosrc => 'int8abs' }, +{ oid => '1397', descr => 'absolute value', + proname => 'abs', prorettype => 'int4', proargtypes => 'int4', + prosrc => 'int4abs' }, +{ oid => '1398', descr => 'absolute value', + proname => 'abs', prorettype => 'int2', proargtypes => 'int2', + prosrc => 'int2abs' }, + +# OIDS 1400 - 1499 + +{ oid => '1400', descr => 'convert varchar to name', + proname => 'name', prorettype => 'name', proargtypes => 'varchar', + prosrc => 'text_name' }, +{ oid => '1401', descr => 'convert name to varchar', + proname => 'varchar', prorettype => 'varchar', proargtypes => 'name', + prosrc => 'name_text' }, + +{ oid => '1402', descr => 'current schema name', + proname => 'current_schema', provolatile => 's', prorettype => 'name', + proargtypes => '', prosrc => 'current_schema' }, +{ oid => '1403', descr => 'current schema search list', + proname => 'current_schemas', provolatile => 's', prorettype => '_name', + proargtypes => 'bool', prosrc => 'current_schemas' }, + +{ oid => '1404', descr => 'substitute portion of string', + proname => 'overlay', prorettype => 'text', + proargtypes => 'text text int4 int4', prosrc => 'textoverlay' }, +{ oid => '1405', descr => 'substitute portion of string', + proname => 'overlay', prorettype => 'text', proargtypes => 'text text int4', + prosrc => 'textoverlay_no_len' }, + +{ oid => '1406', descr => 'vertically aligned', + proname => 'isvertical', prorettype => 'bool', proargtypes => 'point point', + prosrc => 'point_vert' }, +{ oid => '1407', descr => 'horizontally aligned', + proname => 'ishorizontal', prorettype => 'bool', proargtypes => 'point point', + prosrc => 'point_horiz' }, +{ oid => '1408', descr => 'parallel', + proname => 'isparallel', prorettype => 'bool', proargtypes => 'lseg lseg', + prosrc => 'lseg_parallel' }, +{ oid => '1409', descr => 'perpendicular', + proname => 'isperp', prorettype => 'bool', proargtypes => 'lseg lseg', + prosrc => 'lseg_perp' }, +{ oid => '1410', descr => 'vertical', + proname => 'isvertical', prorettype => 'bool', proargtypes => 'lseg', + prosrc => 'lseg_vertical' }, +{ oid => '1411', descr => 'horizontal', + proname => 'ishorizontal', prorettype => 'bool', proargtypes => 'lseg', + prosrc => 'lseg_horizontal' }, +{ oid => '1412', descr => 'parallel', + proname => 'isparallel', prorettype => 'bool', proargtypes => 'line line', + prosrc => 'line_parallel' }, +{ oid => '1413', descr => 'perpendicular', + proname => 'isperp', prorettype => 'bool', proargtypes => 'line line', + prosrc => 'line_perp' }, +{ oid => '1414', descr => 'vertical', + proname => 'isvertical', prorettype => 'bool', proargtypes => 'line', + prosrc => 'line_vertical' }, +{ oid => '1415', descr => 'horizontal', + proname => 'ishorizontal', prorettype => 'bool', proargtypes => 'line', + prosrc => 'line_horizontal' }, +{ oid => '1416', descr => 'center of', + proname => 'point', prorettype => 'point', proargtypes => 'circle', + prosrc => 'circle_center' }, + +{ oid => '1419', descr => 'convert interval to time', + proname => 'time', prorettype => 'time', proargtypes => 'interval', + prosrc => 'interval_time' }, + +{ oid => '1421', descr => 'convert points to box', + proname => 'box', prorettype => 'box', proargtypes => 'point point', + prosrc => 'points_box' }, +{ oid => '1422', + proname => 'box_add', prorettype => 'box', proargtypes => 'box point', + prosrc => 'box_add' }, +{ oid => '1423', + proname => 'box_sub', prorettype => 'box', proargtypes => 'box point', + prosrc => 'box_sub' }, +{ oid => '1424', + proname => 'box_mul', prorettype => 'box', proargtypes => 'box point', + prosrc => 'box_mul' }, +{ oid => '1425', + proname => 'box_div', prorettype => 'box', proargtypes => 'box point', + prosrc => 'box_div' }, +{ oid => '1426', + proname => 'path_contain_pt', prolang => '14', prorettype => 'bool', + proargtypes => 'path point', prosrc => 'select pg_catalog.on_ppath($2, $1)' }, +{ oid => '1428', + proname => 'poly_contain_pt', prorettype => 'bool', + proargtypes => 'polygon point', prosrc => 'poly_contain_pt' }, +{ oid => '1429', + proname => 'pt_contained_poly', prorettype => 'bool', + proargtypes => 'point polygon', prosrc => 'pt_contained_poly' }, + +{ oid => '1430', descr => 'path closed?', + proname => 'isclosed', prorettype => 'bool', proargtypes => 'path', + prosrc => 'path_isclosed' }, +{ oid => '1431', descr => 'path open?', + proname => 'isopen', prorettype => 'bool', proargtypes => 'path', + prosrc => 'path_isopen' }, +{ oid => '1432', + proname => 'path_npoints', prorettype => 'int4', proargtypes => 'path', + prosrc => 'path_npoints' }, + +# 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', prorettype => 'path', proargtypes => 'path', + prosrc => 'path_close' }, +{ oid => '1434', descr => 'open path', + proname => 'popen', prorettype => 'path', proargtypes => 'path', + prosrc => 'path_open' }, + +{ oid => '1435', + proname => 'path_add', prorettype => 'path', proargtypes => 'path path', + prosrc => 'path_add' }, +{ oid => '1436', + proname => 'path_add_pt', prorettype => 'path', proargtypes => 'path point', + prosrc => 'path_add_pt' }, +{ oid => '1437', + proname => 'path_sub_pt', prorettype => 'path', proargtypes => 'path point', + prosrc => 'path_sub_pt' }, +{ oid => '1438', + proname => 'path_mul_pt', prorettype => 'path', proargtypes => 'path point', + prosrc => 'path_mul_pt' }, +{ oid => '1439', + proname => 'path_div_pt', prorettype => 'path', proargtypes => 'path point', + prosrc => 'path_div_pt' }, + +{ oid => '1440', descr => 'convert x, y to point', + proname => 'point', prorettype => 'point', proargtypes => 'float8 float8', + prosrc => 'construct_point' }, +{ oid => '1441', + proname => 'point_add', prorettype => 'point', proargtypes => 'point point', + prosrc => 'point_add' }, +{ oid => '1442', + proname => 'point_sub', prorettype => 'point', proargtypes => 'point point', + prosrc => 'point_sub' }, +{ oid => '1443', + proname => 'point_mul', prorettype => 'point', proargtypes => 'point point', + prosrc => 'point_mul' }, +{ oid => '1444', + proname => 'point_div', prorettype => 'point', proargtypes => 'point point', + prosrc => 'point_div' }, + +{ oid => '1445', + proname => 'poly_npoints', prorettype => 'int4', proargtypes => 'polygon', + prosrc => 'poly_npoints' }, +{ oid => '1446', descr => 'convert polygon to bounding box', + proname => 'box', prorettype => 'box', proargtypes => 'polygon', + prosrc => 'poly_box' }, +{ oid => '1447', descr => 'convert polygon to path', + proname => 'path', prorettype => 'path', proargtypes => 'polygon', + prosrc => 'poly_path' }, +{ oid => '1448', descr => 'convert box to polygon', + proname => 'polygon', prorettype => 'polygon', proargtypes => 'box', + prosrc => 'box_poly' }, +{ oid => '1449', descr => 'convert path to polygon', + proname => 'polygon', prorettype => 'polygon', proargtypes => 'path', + prosrc => 'path_poly' }, + +{ oid => '1450', descr => 'I/O', + proname => 'circle_in', prorettype => 'circle', proargtypes => 'cstring', + prosrc => 'circle_in' }, +{ oid => '1451', descr => 'I/O', + proname => 'circle_out', prorettype => 'cstring', proargtypes => 'circle', + prosrc => 'circle_out' }, +{ oid => '1452', + proname => 'circle_same', prorettype => 'bool', + proargtypes => 'circle circle', prosrc => 'circle_same' }, +{ oid => '1453', + proname => 'circle_contain', prorettype => 'bool', + proargtypes => 'circle circle', prosrc => 'circle_contain' }, +{ oid => '1454', + proname => 'circle_left', prorettype => 'bool', + proargtypes => 'circle circle', prosrc => 'circle_left' }, +{ oid => '1455', + proname => 'circle_overleft', prorettype => 'bool', + proargtypes => 'circle circle', prosrc => 'circle_overleft' }, +{ oid => '1456', + proname => 'circle_overright', prorettype => 'bool', + proargtypes => 'circle circle', prosrc => 'circle_overright' }, +{ oid => '1457', + proname => 'circle_right', prorettype => 'bool', + proargtypes => 'circle circle', prosrc => 'circle_right' }, +{ oid => '1458', + proname => 'circle_contained', prorettype => 'bool', + proargtypes => 'circle circle', prosrc => 'circle_contained' }, +{ oid => '1459', + proname => 'circle_overlap', prorettype => 'bool', + proargtypes => 'circle circle', prosrc => 'circle_overlap' }, +{ oid => '1460', + proname => 'circle_below', prorettype => 'bool', + proargtypes => 'circle circle', prosrc => 'circle_below' }, +{ oid => '1461', + proname => 'circle_above', prorettype => 'bool', + proargtypes => 'circle circle', prosrc => 'circle_above' }, +{ oid => '1462', + proname => 'circle_eq', proleakproof => 't', prorettype => 'bool', + proargtypes => 'circle circle', prosrc => 'circle_eq' }, +{ oid => '1463', + proname => 'circle_ne', proleakproof => 't', prorettype => 'bool', + proargtypes => 'circle circle', prosrc => 'circle_ne' }, +{ oid => '1464', + proname => 'circle_lt', proleakproof => 't', prorettype => 'bool', + proargtypes => 'circle circle', prosrc => 'circle_lt' }, +{ oid => '1465', + proname => 'circle_gt', proleakproof => 't', prorettype => 'bool', + proargtypes => 'circle circle', prosrc => 'circle_gt' }, +{ oid => '1466', + proname => 'circle_le', proleakproof => 't', prorettype => 'bool', + proargtypes => 'circle circle', prosrc => 'circle_le' }, +{ oid => '1467', + proname => 'circle_ge', proleakproof => 't', prorettype => 'bool', + proargtypes => 'circle circle', prosrc => 'circle_ge' }, +{ oid => '1468', descr => 'area of circle', + proname => 'area', prorettype => 'float8', proargtypes => 'circle', + prosrc => 'circle_area' }, +{ oid => '1469', descr => 'diameter of circle', + proname => 'diameter', prorettype => 'float8', proargtypes => 'circle', + prosrc => 'circle_diameter' }, +{ oid => '1470', descr => 'radius of circle', + proname => 'radius', prorettype => 'float8', proargtypes => 'circle', + prosrc => 'circle_radius' }, +{ oid => '1471', + proname => 'circle_distance', prorettype => 'float8', + proargtypes => 'circle circle', prosrc => 'circle_distance' }, +{ oid => '1472', + proname => 'circle_center', prorettype => 'point', proargtypes => 'circle', + prosrc => 'circle_center' }, +{ oid => '1473', descr => 'convert point and radius to circle', + proname => 'circle', prorettype => 'circle', proargtypes => 'point float8', + prosrc => 'cr_circle' }, +{ oid => '1474', descr => 'convert polygon to circle', + proname => 'circle', prorettype => 'circle', proargtypes => 'polygon', + prosrc => 'poly_circle' }, +{ oid => '1475', descr => 'convert vertex count and circle to polygon', + proname => 'polygon', prorettype => 'polygon', proargtypes => 'int4 circle', + prosrc => 'circle_poly' }, +{ oid => '1476', + proname => 'dist_pc', prorettype => 'float8', proargtypes => 'point circle', + prosrc => 'dist_pc' }, +{ oid => '1477', + proname => 'circle_contain_pt', prorettype => 'bool', + proargtypes => 'circle point', prosrc => 'circle_contain_pt' }, +{ oid => '1478', + proname => 'pt_contained_circle', prorettype => 'bool', + proargtypes => 'point circle', prosrc => 'pt_contained_circle' }, +{ oid => '4091', descr => 'convert point to empty box', + proname => 'box', prorettype => 'box', proargtypes => 'point', + prosrc => 'point_box' }, +{ oid => '1479', descr => 'convert box to circle', + proname => 'circle', prorettype => 'circle', proargtypes => 'box', + prosrc => 'box_circle' }, +{ oid => '1480', descr => 'convert circle to box', + proname => 'box', prorettype => 'box', proargtypes => 'circle', + prosrc => 'circle_box' }, +{ oid => '1481', descr => 'convert to tinterval', + proname => 'tinterval', prorettype => 'tinterval', + proargtypes => 'abstime abstime', prosrc => 'mktinterval' }, + +{ oid => '1482', + proname => 'lseg_ne', proleakproof => 't', prorettype => 'bool', + proargtypes => 'lseg lseg', prosrc => 'lseg_ne' }, +{ oid => '1483', + proname => 'lseg_lt', proleakproof => 't', prorettype => 'bool', + proargtypes => 'lseg lseg', prosrc => 'lseg_lt' }, +{ oid => '1484', + proname => 'lseg_le', proleakproof => 't', prorettype => 'bool', + proargtypes => 'lseg lseg', prosrc => 'lseg_le' }, +{ oid => '1485', + proname => 'lseg_gt', proleakproof => 't', prorettype => 'bool', + proargtypes => 'lseg lseg', prosrc => 'lseg_gt' }, +{ oid => '1486', + proname => 'lseg_ge', proleakproof => 't', prorettype => 'bool', + proargtypes => 'lseg lseg', prosrc => 'lseg_ge' }, +{ oid => '1487', + proname => 'lseg_length', prorettype => 'float8', proargtypes => 'lseg', + prosrc => 'lseg_length' }, +{ oid => '1488', + proname => 'close_ls', prorettype => 'point', proargtypes => 'line lseg', + prosrc => 'close_ls' }, +{ oid => '1489', + proname => 'close_lseg', prorettype => 'point', proargtypes => 'lseg lseg', + prosrc => 'close_lseg' }, + +{ oid => '1490', descr => 'I/O', + proname => 'line_in', prorettype => 'line', proargtypes => 'cstring', + prosrc => 'line_in' }, +{ oid => '1491', descr => 'I/O', + proname => 'line_out', prorettype => 'cstring', proargtypes => 'line', + prosrc => 'line_out' }, +{ oid => '1492', + proname => 'line_eq', prorettype => 'bool', proargtypes => 'line line', + prosrc => 'line_eq' }, +{ oid => '1493', descr => 'construct line from points', + proname => 'line', prorettype => 'line', proargtypes => 'point point', + prosrc => 'line_construct_pp' }, +{ oid => '1494', + proname => 'line_interpt', prorettype => 'point', proargtypes => 'line line', + prosrc => 'line_interpt' }, +{ oid => '1495', + proname => 'line_intersect', prorettype => 'bool', proargtypes => 'line line', + prosrc => 'line_intersect' }, +{ oid => '1496', + proname => 'line_parallel', prorettype => 'bool', proargtypes => 'line line', + prosrc => 'line_parallel' }, +{ oid => '1497', + proname => 'line_perp', prorettype => 'bool', proargtypes => 'line line', + prosrc => 'line_perp' }, +{ oid => '1498', + proname => 'line_vertical', prorettype => 'bool', proargtypes => 'line', + prosrc => 'line_vertical' }, +{ oid => '1499', + proname => 'line_horizontal', prorettype => 'bool', proargtypes => 'line', + prosrc => 'line_horizontal' }, + +# OIDS 1500 - 1599 + +{ oid => '1530', descr => 'distance between endpoints', + proname => 'length', prorettype => 'float8', proargtypes => 'lseg', + prosrc => 'lseg_length' }, +{ oid => '1531', descr => 'sum of path segments', + proname => 'length', prorettype => 'float8', proargtypes => 'path', + prosrc => 'path_length' }, + +{ oid => '1532', descr => 'center of', + proname => 'point', prorettype => 'point', proargtypes => 'lseg', + prosrc => 'lseg_center' }, +{ oid => '1533', descr => 'center of', + proname => 'point', prorettype => 'point', proargtypes => 'path', + prosrc => 'path_center' }, +{ oid => '1534', descr => 'center of', + proname => 'point', prorettype => 'point', proargtypes => 'box', + prosrc => 'box_center' }, +{ oid => '1540', descr => 'center of', + proname => 'point', prorettype => 'point', proargtypes => 'polygon', + prosrc => 'poly_center' }, +{ oid => '1541', descr => 'diagonal of', + proname => 'lseg', prorettype => 'lseg', proargtypes => 'box', + prosrc => 'box_diagonal' }, +{ oid => '1542', descr => 'center of', + proname => 'center', prorettype => 'point', proargtypes => 'box', + prosrc => 'box_center' }, +{ oid => '1543', descr => 'center of', + proname => 'center', prorettype => 'point', proargtypes => 'circle', + prosrc => 'circle_center' }, +{ oid => '1544', descr => 'convert circle to 12-vertex polygon', + proname => 'polygon', prolang => '14', prorettype => 'polygon', + proargtypes => 'circle', prosrc => 'select pg_catalog.polygon(12, $1)' }, +{ oid => '1545', descr => 'number of points', + proname => 'npoints', prorettype => 'int4', proargtypes => 'path', + prosrc => 'path_npoints' }, +{ oid => '1556', descr => 'number of points', + proname => 'npoints', prorettype => 'int4', proargtypes => 'polygon', + prosrc => 'poly_npoints' }, + +{ oid => '1564', descr => 'I/O', + proname => 'bit_in', prorettype => 'bit', proargtypes => 'cstring oid int4', + prosrc => 'bit_in' }, +{ oid => '1565', descr => 'I/O', + proname => 'bit_out', prorettype => 'cstring', proargtypes => 'bit', + prosrc => 'bit_out' }, +{ oid => '2919', descr => 'I/O typmod', + proname => 'bittypmodin', prorettype => 'int4', proargtypes => '_cstring', + prosrc => 'bittypmodin' }, +{ oid => '2920', descr => 'I/O typmod', + proname => 'bittypmodout', prorettype => 'cstring', proargtypes => 'int4', + prosrc => 'bittypmodout' }, + +{ oid => '1569', descr => 'matches LIKE expression', + proname => 'like', prorettype => 'bool', proargtypes => 'text text', + prosrc => 'textlike' }, +{ oid => '1570', descr => 'does not match LIKE expression', + proname => 'notlike', prorettype => 'bool', proargtypes => 'text text', + prosrc => 'textnlike' }, +{ oid => '1571', descr => 'matches LIKE expression', + proname => 'like', prorettype => 'bool', proargtypes => 'name text', + prosrc => 'namelike' }, +{ oid => '1572', descr => 'does not match LIKE expression', + proname => 'notlike', prorettype => 'bool', proargtypes => 'name text', + prosrc => 'namenlike' }, + +# SEQUENCE functions +{ oid => '1574', descr => 'sequence next value', + proname => 'nextval', provolatile => 'v', proparallel => 'u', + prorettype => 'int8', proargtypes => 'regclass', prosrc => 'nextval_oid' }, +{ oid => '1575', descr => 'sequence current value', + proname => 'currval', provolatile => 'v', proparallel => 'u', + prorettype => 'int8', proargtypes => 'regclass', prosrc => 'currval_oid' }, +{ oid => '1576', descr => 'set sequence value', + proname => 'setval', provolatile => 'v', proparallel => 'u', + prorettype => 'int8', proargtypes => 'regclass int8', + prosrc => 'setval_oid' }, +{ oid => '1765', descr => 'set sequence value and is_called status', + proname => 'setval', provolatile => 'v', proparallel => 'u', + prorettype => 'int8', proargtypes => 'regclass int8 bool', + prosrc => 'setval3_oid' }, +{ oid => '3078', + descr => 'sequence parameters, for use by information schema', + proname => 'pg_sequence_parameters', provolatile => 's', + prorettype => 'record', proargtypes => 'oid', + proallargtypes => '{oid,int8,int8,int8,int8,bool,int8,oid}', + proargmodes => '{i,o,o,o,o,o,o,o}', + proargnames => '{sequence_oid,start_value,minimum_value,maximum_value,increment,cycle_option,cache_size,data_type}', + prosrc => 'pg_sequence_parameters' }, +{ oid => '4032', descr => 'sequence last value', + proname => 'pg_sequence_last_value', provolatile => 'v', proparallel => 'u', + prorettype => 'int8', proargtypes => 'regclass', + prosrc => 'pg_sequence_last_value' }, + +{ oid => '1579', descr => 'I/O', + proname => 'varbit_in', prorettype => 'varbit', + proargtypes => 'cstring oid int4', prosrc => 'varbit_in' }, +{ oid => '1580', descr => 'I/O', + proname => 'varbit_out', prorettype => 'cstring', proargtypes => 'varbit', + prosrc => 'varbit_out' }, +{ oid => '2902', descr => 'I/O typmod', + proname => 'varbittypmodin', prorettype => 'int4', proargtypes => '_cstring', + prosrc => 'varbittypmodin' }, +{ oid => '2921', descr => 'I/O typmod', + proname => 'varbittypmodout', prorettype => 'cstring', proargtypes => 'int4', + prosrc => 'varbittypmodout' }, + +{ oid => '1581', + proname => 'biteq', proleakproof => 't', prorettype => 'bool', + proargtypes => 'bit bit', prosrc => 'biteq' }, +{ oid => '1582', + proname => 'bitne', proleakproof => 't', prorettype => 'bool', + proargtypes => 'bit bit', prosrc => 'bitne' }, +{ oid => '1592', + proname => 'bitge', proleakproof => 't', prorettype => 'bool', + proargtypes => 'bit bit', prosrc => 'bitge' }, +{ oid => '1593', + proname => 'bitgt', proleakproof => 't', prorettype => 'bool', + proargtypes => 'bit bit', prosrc => 'bitgt' }, +{ oid => '1594', + proname => 'bitle', proleakproof => 't', prorettype => 'bool', + proargtypes => 'bit bit', prosrc => 'bitle' }, +{ oid => '1595', + proname => 'bitlt', proleakproof => 't', prorettype => 'bool', + proargtypes => 'bit bit', prosrc => 'bitlt' }, +{ oid => '1596', descr => 'less-equal-greater', + proname => 'bitcmp', prorettype => 'int4', proargtypes => 'bit bit', + prosrc => 'bitcmp' }, + +{ oid => '1598', descr => 'random value', + proname => 'random', provolatile => 'v', proparallel => 'r', + prorettype => 'float8', proargtypes => '', prosrc => 'drandom' }, +{ oid => '1599', descr => 'set random seed', + proname => 'setseed', provolatile => 'v', proparallel => 'r', + prorettype => 'void', proargtypes => 'float8', prosrc => 'setseed' }, + +# OIDS 1600 - 1699 + +{ oid => '1600', descr => 'arcsine', + proname => 'asin', prorettype => 'float8', proargtypes => 'float8', + prosrc => 'dasin' }, +{ oid => '1601', descr => 'arccosine', + proname => 'acos', prorettype => 'float8', proargtypes => 'float8', + prosrc => 'dacos' }, +{ oid => '1602', descr => 'arctangent', + proname => 'atan', prorettype => 'float8', proargtypes => 'float8', + prosrc => 'datan' }, +{ oid => '1603', descr => 'arctangent, two arguments', + proname => 'atan2', prorettype => 'float8', proargtypes => 'float8 float8', + prosrc => 'datan2' }, +{ oid => '1604', descr => 'sine', + proname => 'sin', prorettype => 'float8', proargtypes => 'float8', + prosrc => 'dsin' }, +{ oid => '1605', descr => 'cosine', + proname => 'cos', prorettype => 'float8', proargtypes => 'float8', + prosrc => 'dcos' }, +{ oid => '1606', descr => 'tangent', + proname => 'tan', prorettype => 'float8', proargtypes => 'float8', + prosrc => 'dtan' }, +{ oid => '1607', descr => 'cotangent', + proname => 'cot', prorettype => 'float8', proargtypes => 'float8', + prosrc => 'dcot' }, + +{ oid => '2731', descr => 'arcsine, degrees', + proname => 'asind', prorettype => 'float8', proargtypes => 'float8', + prosrc => 'dasind' }, +{ oid => '2732', descr => 'arccosine, degrees', + proname => 'acosd', prorettype => 'float8', proargtypes => 'float8', + prosrc => 'dacosd' }, +{ oid => '2733', descr => 'arctangent, degrees', + proname => 'atand', prorettype => 'float8', proargtypes => 'float8', + prosrc => 'datand' }, +{ oid => '2734', descr => 'arctangent, two arguments, degrees', + proname => 'atan2d', prorettype => 'float8', proargtypes => 'float8 float8', + prosrc => 'datan2d' }, +{ oid => '2735', descr => 'sine, degrees', + proname => 'sind', prorettype => 'float8', proargtypes => 'float8', + prosrc => 'dsind' }, +{ oid => '2736', descr => 'cosine, degrees', + proname => 'cosd', prorettype => 'float8', proargtypes => 'float8', + prosrc => 'dcosd' }, +{ oid => '2737', descr => 'tangent, degrees', + proname => 'tand', prorettype => 'float8', proargtypes => 'float8', + prosrc => 'dtand' }, +{ oid => '2738', descr => 'cotangent, degrees', + proname => 'cotd', prorettype => 'float8', proargtypes => 'float8', + prosrc => 'dcotd' }, + +{ oid => '1608', descr => 'radians to degrees', + proname => 'degrees', prorettype => 'float8', proargtypes => 'float8', + prosrc => 'degrees' }, +{ oid => '1609', descr => 'degrees to radians', + proname => 'radians', prorettype => 'float8', proargtypes => 'float8', + prosrc => 'radians' }, +{ oid => '1610', descr => 'PI', + proname => 'pi', prorettype => 'float8', proargtypes => '', prosrc => 'dpi' }, + +{ oid => '1618', + proname => 'interval_mul', prorettype => 'interval', + proargtypes => 'interval float8', prosrc => 'interval_mul' }, + +{ oid => '1620', descr => 'convert first char to int4', + proname => 'ascii', prorettype => 'int4', proargtypes => 'text', + prosrc => 'ascii' }, +{ oid => '1621', descr => 'convert int4 to char', + proname => 'chr', prorettype => 'text', proargtypes => 'int4', + prosrc => 'chr' }, +{ oid => '1622', descr => 'replicate string n times', + proname => 'repeat', prorettype => 'text', proargtypes => 'text int4', + prosrc => 'repeat' }, + +{ oid => '1623', descr => 'convert SQL99 regexp pattern to POSIX style', + proname => 'similar_escape', proisstrict => 'f', prorettype => 'text', + proargtypes => 'text text', prosrc => 'similar_escape' }, + +{ oid => '1624', + proname => 'mul_d_interval', prorettype => 'interval', + proargtypes => 'float8 interval', prosrc => 'mul_d_interval' }, + +{ oid => '1631', + proname => 'bpcharlike', prorettype => 'bool', proargtypes => 'bpchar text', + prosrc => 'textlike' }, +{ oid => '1632', + proname => 'bpcharnlike', prorettype => 'bool', proargtypes => 'bpchar text', + prosrc => 'textnlike' }, + +{ oid => '1633', + proname => 'texticlike', prorettype => 'bool', proargtypes => 'text text', + prosrc => 'texticlike' }, +{ oid => '1634', + proname => 'texticnlike', prorettype => 'bool', proargtypes => 'text text', + prosrc => 'texticnlike' }, +{ oid => '1635', + proname => 'nameiclike', prorettype => 'bool', proargtypes => 'name text', + prosrc => 'nameiclike' }, +{ oid => '1636', + proname => 'nameicnlike', prorettype => 'bool', proargtypes => 'name text', + prosrc => 'nameicnlike' }, +{ oid => '1637', descr => 'convert LIKE pattern to use backslash escapes', + proname => 'like_escape', prorettype => 'text', proargtypes => 'text text', + prosrc => 'like_escape' }, + +{ oid => '1656', + proname => 'bpcharicregexeq', prorettype => 'bool', + proargtypes => 'bpchar text', prosrc => 'texticregexeq' }, +{ oid => '1657', + proname => 'bpcharicregexne', prorettype => 'bool', + proargtypes => 'bpchar text', prosrc => 'texticregexne' }, +{ oid => '1658', + proname => 'bpcharregexeq', prorettype => 'bool', + proargtypes => 'bpchar text', prosrc => 'textregexeq' }, +{ oid => '1659', + proname => 'bpcharregexne', prorettype => 'bool', + proargtypes => 'bpchar text', prosrc => 'textregexne' }, +{ oid => '1660', + proname => 'bpchariclike', prorettype => 'bool', proargtypes => 'bpchar text', + prosrc => 'texticlike' }, +{ oid => '1661', + proname => 'bpcharicnlike', prorettype => 'bool', + proargtypes => 'bpchar text', prosrc => 'texticnlike' }, + +# Oracle Compatibility Related Functions - By Edmund Mergl +{ oid => '868', descr => 'position of substring', + proname => 'strpos', prorettype => 'int4', proargtypes => 'text text', + prosrc => 'textpos' }, +{ oid => '870', descr => 'lowercase', + proname => 'lower', prorettype => 'text', proargtypes => 'text', + prosrc => 'lower' }, +{ oid => '871', descr => 'uppercase', + proname => 'upper', prorettype => 'text', proargtypes => 'text', + prosrc => 'upper' }, +{ oid => '872', descr => 'capitalize each word', + proname => 'initcap', prorettype => 'text', proargtypes => 'text', + prosrc => 'initcap' }, +{ oid => '873', descr => 'left-pad string to length', + proname => 'lpad', prorettype => 'text', proargtypes => 'text int4 text', + prosrc => 'lpad' }, +{ oid => '874', descr => 'right-pad string to length', + proname => 'rpad', prorettype => 'text', proargtypes => 'text int4 text', + prosrc => 'rpad' }, +{ oid => '875', descr => 'trim selected characters from left end of string', + proname => 'ltrim', prorettype => 'text', proargtypes => 'text text', + prosrc => 'ltrim' }, +{ oid => '876', descr => 'trim selected characters from right end of string', + proname => 'rtrim', prorettype => 'text', proargtypes => 'text text', + prosrc => 'rtrim' }, +{ oid => '877', descr => 'extract portion of string', + proname => 'substr', prorettype => 'text', proargtypes => 'text int4 int4', + prosrc => 'text_substr' }, +{ oid => '878', descr => 'map a set of characters appearing in string', + proname => 'translate', prorettype => 'text', proargtypes => 'text text text', + prosrc => 'translate' }, +{ oid => '879', descr => 'left-pad string to length', + proname => 'lpad', prolang => '14', prorettype => 'text', + proargtypes => 'text int4', + prosrc => 'select pg_catalog.lpad($1, $2, \'\' \'\')' }, +{ oid => '880', descr => 'right-pad string to length', + proname => 'rpad', prolang => '14', prorettype => 'text', + proargtypes => 'text int4', + prosrc => 'select pg_catalog.rpad($1, $2, \'\' \'\')' }, +{ oid => '881', descr => 'trim spaces from left end of string', + proname => 'ltrim', prorettype => 'text', proargtypes => 'text', + prosrc => 'ltrim1' }, +{ oid => '882', descr => 'trim spaces from right end of string', + proname => 'rtrim', prorettype => 'text', proargtypes => 'text', + prosrc => 'rtrim1' }, +{ oid => '883', descr => 'extract portion of string', + proname => 'substr', prorettype => 'text', proargtypes => 'text int4', + prosrc => 'text_substr_no_len' }, +{ oid => '884', descr => 'trim selected characters from both ends of string', + proname => 'btrim', prorettype => 'text', proargtypes => 'text text', + prosrc => 'btrim' }, +{ oid => '885', descr => 'trim spaces from both ends of string', + proname => 'btrim', prorettype => 'text', proargtypes => 'text', + prosrc => 'btrim1' }, + +{ oid => '936', descr => 'extract portion of string', + proname => 'substring', prorettype => 'text', proargtypes => 'text int4 int4', + prosrc => 'text_substr' }, +{ oid => '937', descr => 'extract portion of string', + proname => 'substring', prorettype => 'text', proargtypes => 'text int4', + prosrc => 'text_substr_no_len' }, +{ oid => '2087', + descr => 'replace all occurrences in string of old_substr with new_substr', + proname => 'replace', prorettype => 'text', proargtypes => 'text text text', + prosrc => 'replace_text' }, +{ oid => '2284', descr => 'replace text using regexp', + proname => 'regexp_replace', prorettype => 'text', + proargtypes => 'text text text', prosrc => 'textregexreplace_noopt' }, +{ oid => '2285', descr => 'replace text using regexp', + proname => 'regexp_replace', prorettype => 'text', + proargtypes => 'text text text text', prosrc => 'textregexreplace' }, +{ oid => '3396', descr => 'find first match for regexp', + proname => 'regexp_match', prorettype => '_text', proargtypes => 'text text', + prosrc => 'regexp_match_no_flags' }, +{ oid => '3397', descr => 'find first match for regexp', + proname => 'regexp_match', prorettype => '_text', + proargtypes => 'text text text', prosrc => 'regexp_match' }, +{ oid => '2763', descr => 'find match(es) for regexp', + proname => 'regexp_matches', prorows => '1', proretset => 't', + prorettype => '_text', proargtypes => 'text text', + prosrc => 'regexp_matches_no_flags' }, +{ oid => '2764', descr => 'find match(es) for regexp', + proname => 'regexp_matches', prorows => '10', proretset => 't', + prorettype => '_text', proargtypes => 'text text text', + prosrc => 'regexp_matches' }, +{ oid => '2088', descr => 'split string by field_sep and return field_num', + proname => 'split_part', prorettype => 'text', + proargtypes => 'text text int4', prosrc => 'split_text' }, +{ oid => '2765', descr => 'split string by pattern', + proname => 'regexp_split_to_table', prorows => '1000', proretset => 't', + prorettype => 'text', proargtypes => 'text text', + prosrc => 'regexp_split_to_table_no_flags' }, +{ oid => '2766', descr => 'split string by pattern', + proname => 'regexp_split_to_table', prorows => '1000', proretset => 't', + prorettype => 'text', proargtypes => 'text text text', + prosrc => 'regexp_split_to_table' }, +{ oid => '2767', descr => 'split string by pattern', + proname => 'regexp_split_to_array', prorettype => '_text', + proargtypes => 'text text', prosrc => 'regexp_split_to_array_no_flags' }, +{ oid => '2768', descr => 'split string by pattern', + proname => 'regexp_split_to_array', prorettype => '_text', + proargtypes => 'text text text', prosrc => 'regexp_split_to_array' }, +{ oid => '2089', descr => 'convert int4 number to hex', + proname => 'to_hex', prorettype => 'text', proargtypes => 'int4', + prosrc => 'to_hex32' }, +{ oid => '2090', descr => 'convert int8 number to hex', + proname => 'to_hex', prorettype => 'text', proargtypes => 'int8', + prosrc => 'to_hex64' }, + +# for character set encoding support + +# return database encoding name +{ oid => '1039', descr => 'encoding name of current database', + proname => 'getdatabaseencoding', provolatile => 's', prorettype => 'name', + proargtypes => '', prosrc => 'getdatabaseencoding' }, + +# return client encoding name i.e. session encoding +{ oid => '810', descr => 'encoding name of current database', + proname => 'pg_client_encoding', provolatile => 's', prorettype => 'name', + proargtypes => '', prosrc => 'pg_client_encoding' }, + +{ oid => '1713', descr => 'length of string in specified encoding', + proname => 'length', provolatile => 's', prorettype => 'int4', + proargtypes => 'bytea name', prosrc => 'length_in_encoding' }, + +{ oid => '1714', + descr => 'convert string with specified source encoding name', + proname => 'convert_from', provolatile => 's', prorettype => 'text', + proargtypes => 'bytea name', prosrc => 'pg_convert_from' }, + +{ oid => '1717', + descr => 'convert string with specified destination encoding name', + proname => 'convert_to', provolatile => 's', prorettype => 'bytea', + proargtypes => 'text name', prosrc => 'pg_convert_to' }, + +{ oid => '1813', descr => 'convert string with specified encoding names', + proname => 'convert', provolatile => 's', prorettype => 'bytea', + proargtypes => 'bytea name name', prosrc => 'pg_convert' }, + +{ oid => '1264', descr => 'convert encoding name to encoding id', + proname => 'pg_char_to_encoding', provolatile => 's', prorettype => 'int4', + proargtypes => 'name', prosrc => 'PG_char_to_encoding' }, + +{ oid => '1597', descr => 'convert encoding id to encoding name', + proname => 'pg_encoding_to_char', provolatile => 's', prorettype => 'name', + proargtypes => 'int4', prosrc => 'PG_encoding_to_char' }, + +{ oid => '2319', + descr => 'maximum octet length of a character in given encoding', + proname => 'pg_encoding_max_length', prorettype => 'int4', + proargtypes => 'int4', prosrc => 'pg_encoding_max_length_sql' }, + +{ oid => '1638', + proname => 'oidgt', proleakproof => 't', prorettype => 'bool', + proargtypes => 'oid oid', prosrc => 'oidgt' }, +{ oid => '1639', + proname => 'oidge', proleakproof => 't', prorettype => 'bool', + proargtypes => 'oid oid', prosrc => 'oidge' }, + +# System-view support functions +{ oid => '1573', descr => 'source text of a rule', + proname => 'pg_get_ruledef', provolatile => 's', prorettype => 'text', + proargtypes => 'oid', prosrc => 'pg_get_ruledef' }, +{ oid => '1640', descr => 'select statement of a view', + proname => 'pg_get_viewdef', provolatile => 's', proparallel => 'r', + prorettype => 'text', proargtypes => 'text', + prosrc => 'pg_get_viewdef_name' }, +{ oid => '1641', descr => 'select statement of a view', + proname => 'pg_get_viewdef', provolatile => 's', proparallel => 'r', + prorettype => 'text', proargtypes => 'oid', prosrc => 'pg_get_viewdef' }, +{ oid => '1642', descr => 'role name by OID (with fallback)', + proname => 'pg_get_userbyid', provolatile => 's', prorettype => 'name', + proargtypes => 'oid', prosrc => 'pg_get_userbyid' }, +{ oid => '1643', descr => 'index description', + proname => 'pg_get_indexdef', provolatile => 's', prorettype => 'text', + proargtypes => 'oid', prosrc => 'pg_get_indexdef' }, +{ oid => '3415', descr => 'extended statistics object description', + proname => 'pg_get_statisticsobjdef', provolatile => 's', + prorettype => 'text', proargtypes => 'oid', + prosrc => 'pg_get_statisticsobjdef' }, +{ oid => '3352', descr => 'partition key description', + proname => 'pg_get_partkeydef', provolatile => 's', prorettype => 'text', + proargtypes => 'oid', prosrc => 'pg_get_partkeydef' }, +{ oid => '3408', descr => 'partition constraint description', + proname => 'pg_get_partition_constraintdef', provolatile => 's', + prorettype => 'text', proargtypes => 'oid', + prosrc => 'pg_get_partition_constraintdef' }, +{ oid => '1662', descr => 'trigger description', + proname => 'pg_get_triggerdef', provolatile => 's', prorettype => 'text', + proargtypes => 'oid', prosrc => 'pg_get_triggerdef' }, +{ oid => '1387', descr => 'constraint description', + proname => 'pg_get_constraintdef', provolatile => 's', prorettype => 'text', + proargtypes => 'oid', prosrc => 'pg_get_constraintdef' }, +{ oid => '1716', descr => 'deparse an encoded expression', + proname => 'pg_get_expr', provolatile => 's', prorettype => 'text', + proargtypes => 'pg_node_tree oid', prosrc => 'pg_get_expr' }, +{ oid => '1665', descr => 'name of sequence for a serial column', + proname => 'pg_get_serial_sequence', provolatile => 's', prorettype => 'text', + proargtypes => 'text text', prosrc => 'pg_get_serial_sequence' }, +{ oid => '2098', descr => 'definition of a function', + proname => 'pg_get_functiondef', provolatile => 's', prorettype => 'text', + proargtypes => 'oid', prosrc => 'pg_get_functiondef' }, +{ oid => '2162', descr => 'argument list of a function', + proname => 'pg_get_function_arguments', provolatile => 's', + prorettype => 'text', proargtypes => 'oid', + prosrc => 'pg_get_function_arguments' }, +{ oid => '2232', descr => 'identity argument list of a function', + proname => 'pg_get_function_identity_arguments', provolatile => 's', + prorettype => 'text', proargtypes => 'oid', + prosrc => 'pg_get_function_identity_arguments' }, +{ oid => '2165', descr => 'result type of a function', + proname => 'pg_get_function_result', provolatile => 's', prorettype => 'text', + proargtypes => 'oid', prosrc => 'pg_get_function_result' }, +{ oid => '3808', descr => 'function argument default', + proname => 'pg_get_function_arg_default', provolatile => 's', + prorettype => 'text', proargtypes => 'oid int4', + prosrc => 'pg_get_function_arg_default' }, + +{ oid => '1686', descr => 'list of SQL keywords', + proname => 'pg_get_keywords', procost => '10', prorows => '400', + proretset => 't', provolatile => 's', prorettype => 'record', + proargtypes => '', proallargtypes => '{text,char,text}', + proargmodes => '{o,o,o}', proargnames => '{word,catcode,catdesc}', + prosrc => 'pg_get_keywords' }, + +{ oid => '2289', descr => 'convert generic options array to name/value table', + proname => 'pg_options_to_table', prorows => '3', proretset => 't', + provolatile => 's', prorettype => 'record', proargtypes => '_text', + proallargtypes => '{_text,text,text}', proargmodes => '{i,o,o}', + proargnames => '{options_array,option_name,option_value}', + prosrc => 'pg_options_to_table' }, + +{ oid => '1619', descr => 'type of the argument', + proname => 'pg_typeof', proisstrict => 'f', provolatile => 's', + prorettype => 'regtype', proargtypes => 'any', prosrc => 'pg_typeof' }, +{ oid => '3162', + descr => 'collation of the argument; implementation of the COLLATION FOR expression', + proname => 'pg_collation_for', proisstrict => 'f', provolatile => 's', + prorettype => 'text', proargtypes => 'any', prosrc => 'pg_collation_for' }, + +{ oid => '3842', descr => 'is a relation insertable/updatable/deletable', + proname => 'pg_relation_is_updatable', procost => '10', provolatile => 's', + prorettype => 'int4', proargtypes => 'regclass bool', + prosrc => 'pg_relation_is_updatable' }, +{ oid => '3843', descr => 'is a column updatable', + proname => 'pg_column_is_updatable', procost => '10', provolatile => 's', + prorettype => 'bool', proargtypes => 'regclass int2 bool', + prosrc => 'pg_column_is_updatable' }, + +{ oid => '6120', descr => 'oid of replica identity index if any', + proname => 'pg_get_replica_identity_index', procost => '10', + provolatile => 's', prorettype => 'regclass', proargtypes => 'regclass', + prosrc => 'pg_get_replica_identity_index' }, + +# Deferrable unique constraint trigger +{ oid => '1250', descr => 'deferred UNIQUE constraint check', + proname => 'unique_key_recheck', provolatile => 'v', prorettype => 'trigger', + proargtypes => '', prosrc => 'unique_key_recheck' }, + +# Generic referential integrity constraint triggers +{ oid => '1644', descr => 'referential integrity FOREIGN KEY ... REFERENCES', + proname => 'RI_FKey_check_ins', provolatile => 'v', prorettype => 'trigger', + proargtypes => '', prosrc => 'RI_FKey_check_ins' }, +{ oid => '1645', descr => 'referential integrity FOREIGN KEY ... REFERENCES', + proname => 'RI_FKey_check_upd', provolatile => 'v', prorettype => 'trigger', + proargtypes => '', prosrc => 'RI_FKey_check_upd' }, +{ oid => '1646', descr => 'referential integrity ON DELETE CASCADE', + proname => 'RI_FKey_cascade_del', provolatile => 'v', prorettype => 'trigger', + proargtypes => '', prosrc => 'RI_FKey_cascade_del' }, +{ oid => '1647', descr => 'referential integrity ON UPDATE CASCADE', + proname => 'RI_FKey_cascade_upd', provolatile => 'v', prorettype => 'trigger', + proargtypes => '', prosrc => 'RI_FKey_cascade_upd' }, +{ oid => '1648', descr => 'referential integrity ON DELETE RESTRICT', + proname => 'RI_FKey_restrict_del', provolatile => 'v', + prorettype => 'trigger', proargtypes => '', + prosrc => 'RI_FKey_restrict_del' }, +{ oid => '1649', descr => 'referential integrity ON UPDATE RESTRICT', + proname => 'RI_FKey_restrict_upd', provolatile => 'v', + prorettype => 'trigger', proargtypes => '', + prosrc => 'RI_FKey_restrict_upd' }, +{ oid => '1650', descr => 'referential integrity ON DELETE SET NULL', + proname => 'RI_FKey_setnull_del', provolatile => 'v', prorettype => 'trigger', + proargtypes => '', prosrc => 'RI_FKey_setnull_del' }, +{ oid => '1651', descr => 'referential integrity ON UPDATE SET NULL', + proname => 'RI_FKey_setnull_upd', provolatile => 'v', prorettype => 'trigger', + proargtypes => '', prosrc => 'RI_FKey_setnull_upd' }, +{ oid => '1652', descr => 'referential integrity ON DELETE SET DEFAULT', + proname => 'RI_FKey_setdefault_del', provolatile => 'v', + prorettype => 'trigger', proargtypes => '', + prosrc => 'RI_FKey_setdefault_del' }, +{ oid => '1653', descr => 'referential integrity ON UPDATE SET DEFAULT', + proname => 'RI_FKey_setdefault_upd', provolatile => 'v', + prorettype => 'trigger', proargtypes => '', + prosrc => 'RI_FKey_setdefault_upd' }, +{ oid => '1654', descr => 'referential integrity ON DELETE NO ACTION', + proname => 'RI_FKey_noaction_del', provolatile => 'v', + prorettype => 'trigger', proargtypes => '', + prosrc => 'RI_FKey_noaction_del' }, +{ oid => '1655', descr => 'referential integrity ON UPDATE NO ACTION', + proname => 'RI_FKey_noaction_upd', provolatile => 'v', + prorettype => 'trigger', proargtypes => '', + prosrc => 'RI_FKey_noaction_upd' }, + +{ oid => '1666', + proname => 'varbiteq', proleakproof => 't', prorettype => 'bool', + proargtypes => 'varbit varbit', prosrc => 'biteq' }, +{ oid => '1667', + proname => 'varbitne', proleakproof => 't', prorettype => 'bool', + proargtypes => 'varbit varbit', prosrc => 'bitne' }, +{ oid => '1668', + proname => 'varbitge', proleakproof => 't', prorettype => 'bool', + proargtypes => 'varbit varbit', prosrc => 'bitge' }, +{ oid => '1669', + proname => 'varbitgt', proleakproof => 't', prorettype => 'bool', + proargtypes => 'varbit varbit', prosrc => 'bitgt' }, +{ oid => '1670', + proname => 'varbitle', proleakproof => 't', prorettype => 'bool', + proargtypes => 'varbit varbit', prosrc => 'bitle' }, +{ oid => '1671', + proname => 'varbitlt', proleakproof => 't', prorettype => 'bool', + proargtypes => 'varbit varbit', prosrc => 'bitlt' }, +{ oid => '1672', descr => 'less-equal-greater', + proname => 'varbitcmp', prorettype => 'int4', proargtypes => 'varbit varbit', + prosrc => 'bitcmp' }, + +# avoid the C names bitand and bitor, since they are C++ keywords +{ oid => '1673', + proname => 'bitand', prorettype => 'bit', proargtypes => 'bit bit', + prosrc => 'bit_and' }, +{ oid => '1674', + proname => 'bitor', prorettype => 'bit', proargtypes => 'bit bit', + prosrc => 'bit_or' }, +{ oid => '1675', + proname => 'bitxor', prorettype => 'bit', proargtypes => 'bit bit', + prosrc => 'bitxor' }, +{ oid => '1676', + proname => 'bitnot', prorettype => 'bit', proargtypes => 'bit', + prosrc => 'bitnot' }, +{ oid => '1677', + proname => 'bitshiftleft', prorettype => 'bit', proargtypes => 'bit int4', + prosrc => 'bitshiftleft' }, +{ oid => '1678', + proname => 'bitshiftright', prorettype => 'bit', proargtypes => 'bit int4', + prosrc => 'bitshiftright' }, +{ oid => '1679', + proname => 'bitcat', prorettype => 'varbit', proargtypes => 'varbit varbit', + prosrc => 'bitcat' }, +{ oid => '1680', descr => 'extract portion of bitstring', + proname => 'substring', prorettype => 'bit', proargtypes => 'bit int4 int4', + prosrc => 'bitsubstr' }, +{ oid => '1681', descr => 'bitstring length', + proname => 'length', prorettype => 'int4', proargtypes => 'bit', + prosrc => 'bitlength' }, +{ oid => '1682', descr => 'octet length', + proname => 'octet_length', prorettype => 'int4', proargtypes => 'bit', + prosrc => 'bitoctetlength' }, +{ oid => '1683', descr => 'convert int4 to bitstring', + proname => 'bit', prorettype => 'bit', proargtypes => 'int4 int4', + prosrc => 'bitfromint4' }, +{ oid => '1684', descr => 'convert bitstring to int4', + proname => 'int4', prorettype => 'int4', proargtypes => 'bit', + prosrc => 'bittoint4' }, + +{ oid => '1685', descr => 'adjust bit() to typmod length', + proname => 'bit', prorettype => 'bit', proargtypes => 'bit int4 bool', + prosrc => 'bit' }, +{ oid => '3158', descr => 'transform a varbit length coercion', + proname => 'varbit_transform', prorettype => 'internal', + proargtypes => 'internal', prosrc => 'varbit_transform' }, +{ oid => '1687', descr => 'adjust varbit() to typmod length', + proname => 'varbit', protransform => 'varbit_transform', + prorettype => 'varbit', proargtypes => 'varbit int4 bool', + prosrc => 'varbit' }, + +{ oid => '1698', descr => 'position of sub-bitstring', + proname => 'position', prorettype => 'int4', proargtypes => 'bit bit', + prosrc => 'bitposition' }, +{ oid => '1699', descr => 'extract portion of bitstring', + proname => 'substring', prorettype => 'bit', proargtypes => 'bit int4', + prosrc => 'bitsubstr_no_len' }, + +{ oid => '3030', descr => 'substitute portion of bitstring', + proname => 'overlay', prorettype => 'bit', proargtypes => 'bit bit int4 int4', + prosrc => 'bitoverlay' }, +{ oid => '3031', descr => 'substitute portion of bitstring', + proname => 'overlay', prorettype => 'bit', proargtypes => 'bit bit int4', + prosrc => 'bitoverlay_no_len' }, +{ oid => '3032', descr => 'get bit', + proname => 'get_bit', prorettype => 'int4', proargtypes => 'bit int4', + prosrc => 'bitgetbit' }, +{ oid => '3033', descr => 'set bit', + proname => 'set_bit', prorettype => 'bit', proargtypes => 'bit int4 int4', + prosrc => 'bitsetbit' }, + +# for macaddr type support +{ oid => '436', descr => 'I/O', + proname => 'macaddr_in', prorettype => 'macaddr', proargtypes => 'cstring', + prosrc => 'macaddr_in' }, +{ oid => '437', descr => 'I/O', + proname => 'macaddr_out', prorettype => 'cstring', proargtypes => 'macaddr', + prosrc => 'macaddr_out' }, + +{ oid => '753', descr => 'MACADDR manufacturer fields', + proname => 'trunc', prorettype => 'macaddr', proargtypes => 'macaddr', + prosrc => 'macaddr_trunc' }, + +{ oid => '830', + proname => 'macaddr_eq', proleakproof => 't', prorettype => 'bool', + proargtypes => 'macaddr macaddr', prosrc => 'macaddr_eq' }, +{ oid => '831', + proname => 'macaddr_lt', proleakproof => 't', prorettype => 'bool', + proargtypes => 'macaddr macaddr', prosrc => 'macaddr_lt' }, +{ oid => '832', + proname => 'macaddr_le', proleakproof => 't', prorettype => 'bool', + proargtypes => 'macaddr macaddr', prosrc => 'macaddr_le' }, +{ oid => '833', + proname => 'macaddr_gt', proleakproof => 't', prorettype => 'bool', + proargtypes => 'macaddr macaddr', prosrc => 'macaddr_gt' }, +{ oid => '834', + proname => 'macaddr_ge', proleakproof => 't', prorettype => 'bool', + proargtypes => 'macaddr macaddr', prosrc => 'macaddr_ge' }, +{ oid => '835', + proname => 'macaddr_ne', proleakproof => 't', prorettype => 'bool', + proargtypes => 'macaddr macaddr', prosrc => 'macaddr_ne' }, +{ oid => '836', descr => 'less-equal-greater', + proname => 'macaddr_cmp', prorettype => 'int4', + proargtypes => 'macaddr macaddr', prosrc => 'macaddr_cmp' }, +{ oid => '3144', + proname => 'macaddr_not', prorettype => 'macaddr', proargtypes => 'macaddr', + prosrc => 'macaddr_not' }, +{ oid => '3145', + proname => 'macaddr_and', prorettype => 'macaddr', + proargtypes => 'macaddr macaddr', prosrc => 'macaddr_and' }, +{ oid => '3146', + proname => 'macaddr_or', prorettype => 'macaddr', + proargtypes => 'macaddr macaddr', prosrc => 'macaddr_or' }, +{ oid => '3359', descr => 'sort support', + proname => 'macaddr_sortsupport', prorettype => 'void', + proargtypes => 'internal', prosrc => 'macaddr_sortsupport' }, + +# for macaddr8 type support +{ oid => '4110', descr => 'I/O', + proname => 'macaddr8_in', prorettype => 'macaddr8', proargtypes => 'cstring', + prosrc => 'macaddr8_in' }, +{ oid => '4111', descr => 'I/O', + proname => 'macaddr8_out', prorettype => 'cstring', proargtypes => 'macaddr8', + prosrc => 'macaddr8_out' }, + +{ oid => '4112', descr => 'MACADDR8 manufacturer fields', + proname => 'trunc', prorettype => 'macaddr8', proargtypes => 'macaddr8', + prosrc => 'macaddr8_trunc' }, + +{ oid => '4113', + proname => 'macaddr8_eq', proleakproof => 't', prorettype => 'bool', + proargtypes => 'macaddr8 macaddr8', prosrc => 'macaddr8_eq' }, +{ oid => '4114', + proname => 'macaddr8_lt', proleakproof => 't', prorettype => 'bool', + proargtypes => 'macaddr8 macaddr8', prosrc => 'macaddr8_lt' }, +{ oid => '4115', + proname => 'macaddr8_le', proleakproof => 't', prorettype => 'bool', + proargtypes => 'macaddr8 macaddr8', prosrc => 'macaddr8_le' }, +{ oid => '4116', + proname => 'macaddr8_gt', proleakproof => 't', prorettype => 'bool', + proargtypes => 'macaddr8 macaddr8', prosrc => 'macaddr8_gt' }, +{ oid => '4117', + proname => 'macaddr8_ge', proleakproof => 't', prorettype => 'bool', + proargtypes => 'macaddr8 macaddr8', prosrc => 'macaddr8_ge' }, +{ oid => '4118', + proname => 'macaddr8_ne', proleakproof => 't', prorettype => 'bool', + proargtypes => 'macaddr8 macaddr8', prosrc => 'macaddr8_ne' }, +{ oid => '4119', descr => 'less-equal-greater', + proname => 'macaddr8_cmp', prorettype => 'int4', + proargtypes => 'macaddr8 macaddr8', prosrc => 'macaddr8_cmp' }, +{ oid => '4120', + proname => 'macaddr8_not', prorettype => 'macaddr8', + proargtypes => 'macaddr8', prosrc => 'macaddr8_not' }, +{ oid => '4121', + proname => 'macaddr8_and', prorettype => 'macaddr8', + proargtypes => 'macaddr8 macaddr8', prosrc => 'macaddr8_and' }, +{ oid => '4122', + proname => 'macaddr8_or', prorettype => 'macaddr8', + proargtypes => 'macaddr8 macaddr8', prosrc => 'macaddr8_or' }, +{ oid => '4123', descr => 'convert macaddr to macaddr8', + proname => 'macaddr8', prorettype => 'macaddr8', proargtypes => 'macaddr', + prosrc => 'macaddrtomacaddr8' }, +{ oid => '4124', descr => 'convert macaddr8 to macaddr', + proname => 'macaddr', prorettype => 'macaddr', proargtypes => 'macaddr8', + prosrc => 'macaddr8tomacaddr' }, +{ oid => '4125', descr => 'set 7th bit in macaddr8', + proname => 'macaddr8_set7bit', prorettype => 'macaddr8', + proargtypes => 'macaddr8', prosrc => 'macaddr8_set7bit' }, + +# for inet type support +{ oid => '910', descr => 'I/O', + proname => 'inet_in', prorettype => 'inet', proargtypes => 'cstring', + prosrc => 'inet_in' }, +{ oid => '911', descr => 'I/O', + proname => 'inet_out', prorettype => 'cstring', proargtypes => 'inet', + prosrc => 'inet_out' }, + +# for cidr type support +{ oid => '1267', descr => 'I/O', + proname => 'cidr_in', prorettype => 'cidr', proargtypes => 'cstring', + prosrc => 'cidr_in' }, +{ oid => '1427', descr => 'I/O', + proname => 'cidr_out', prorettype => 'cstring', proargtypes => 'cidr', + prosrc => 'cidr_out' }, + +# these are used for both inet and cidr +{ oid => '920', + proname => 'network_eq', proleakproof => 't', prorettype => 'bool', + proargtypes => 'inet inet', prosrc => 'network_eq' }, +{ oid => '921', + proname => 'network_lt', proleakproof => 't', prorettype => 'bool', + proargtypes => 'inet inet', prosrc => 'network_lt' }, +{ oid => '922', + proname => 'network_le', proleakproof => 't', prorettype => 'bool', + proargtypes => 'inet inet', prosrc => 'network_le' }, +{ oid => '923', + proname => 'network_gt', proleakproof => 't', prorettype => 'bool', + proargtypes => 'inet inet', prosrc => 'network_gt' }, +{ oid => '924', + proname => 'network_ge', proleakproof => 't', prorettype => 'bool', + proargtypes => 'inet inet', prosrc => 'network_ge' }, +{ oid => '925', + proname => 'network_ne', proleakproof => 't', prorettype => 'bool', + proargtypes => 'inet inet', prosrc => 'network_ne' }, +{ oid => '3562', descr => 'larger of two', + proname => 'network_larger', prorettype => 'inet', proargtypes => 'inet inet', + prosrc => 'network_larger' }, +{ oid => '3563', descr => 'smaller of two', + proname => 'network_smaller', prorettype => 'inet', + proargtypes => 'inet inet', prosrc => 'network_smaller' }, +{ oid => '926', descr => 'less-equal-greater', + proname => 'network_cmp', prorettype => 'int4', proargtypes => 'inet inet', + prosrc => 'network_cmp' }, +{ oid => '927', + proname => 'network_sub', prorettype => 'bool', proargtypes => 'inet inet', + prosrc => 'network_sub' }, +{ oid => '928', + proname => 'network_subeq', prorettype => 'bool', proargtypes => 'inet inet', + prosrc => 'network_subeq' }, +{ oid => '929', + proname => 'network_sup', prorettype => 'bool', proargtypes => 'inet inet', + prosrc => 'network_sup' }, +{ oid => '930', + proname => 'network_supeq', prorettype => 'bool', proargtypes => 'inet inet', + prosrc => 'network_supeq' }, +{ oid => '3551', + proname => 'network_overlap', prorettype => 'bool', + proargtypes => 'inet inet', prosrc => 'network_overlap' }, + +# inet/cidr functions +{ oid => '598', descr => 'abbreviated display of inet value', + proname => 'abbrev', prorettype => 'text', proargtypes => 'inet', + prosrc => 'inet_abbrev' }, +{ oid => '599', descr => 'abbreviated display of cidr value', + proname => 'abbrev', prorettype => 'text', proargtypes => 'cidr', + prosrc => 'cidr_abbrev' }, +{ oid => '605', descr => 'change netmask of inet', + proname => 'set_masklen', prorettype => 'inet', proargtypes => 'inet int4', + prosrc => 'inet_set_masklen' }, +{ oid => '635', descr => 'change netmask of cidr', + proname => 'set_masklen', prorettype => 'cidr', proargtypes => 'cidr int4', + prosrc => 'cidr_set_masklen' }, +{ oid => '711', descr => 'address family (4 for IPv4, 6 for IPv6)', + proname => 'family', prorettype => 'int4', proargtypes => 'inet', + prosrc => 'network_family' }, +{ oid => '683', descr => 'network part of address', + proname => 'network', prorettype => 'cidr', proargtypes => 'inet', + prosrc => 'network_network' }, +{ oid => '696', descr => 'netmask of address', + proname => 'netmask', prorettype => 'inet', proargtypes => 'inet', + prosrc => 'network_netmask' }, +{ oid => '697', descr => 'netmask length', + proname => 'masklen', prorettype => 'int4', proargtypes => 'inet', + prosrc => 'network_masklen' }, +{ oid => '698', descr => 'broadcast address of network', + proname => 'broadcast', prorettype => 'inet', proargtypes => 'inet', + prosrc => 'network_broadcast' }, +{ oid => '699', descr => 'show address octets only', + proname => 'host', prorettype => 'text', proargtypes => 'inet', + prosrc => 'network_host' }, +{ oid => '730', descr => 'show all parts of inet/cidr value', + proname => 'text', prorettype => 'text', proargtypes => 'inet', + prosrc => 'network_show' }, +{ oid => '1362', descr => 'hostmask of address', + proname => 'hostmask', prorettype => 'inet', proargtypes => 'inet', + prosrc => 'network_hostmask' }, +{ oid => '1715', descr => 'convert inet to cidr', + proname => 'cidr', prorettype => 'cidr', proargtypes => 'inet', + prosrc => 'inet_to_cidr' }, + +{ oid => '2196', descr => 'inet address of the client', + proname => 'inet_client_addr', proisstrict => 'f', provolatile => 's', + proparallel => 'r', prorettype => 'inet', proargtypes => '', + prosrc => 'inet_client_addr' }, +{ oid => '2197', descr => 'client\'s port number for this connection', + proname => 'inet_client_port', proisstrict => 'f', provolatile => 's', + proparallel => 'r', prorettype => 'int4', proargtypes => '', + prosrc => 'inet_client_port' }, +{ oid => '2198', descr => 'inet address of the server', + proname => 'inet_server_addr', proisstrict => 'f', provolatile => 's', + prorettype => 'inet', proargtypes => '', prosrc => 'inet_server_addr' }, +{ oid => '2199', descr => 'server\'s port number for this connection', + proname => 'inet_server_port', proisstrict => 'f', provolatile => 's', + prorettype => 'int4', proargtypes => '', prosrc => 'inet_server_port' }, + +{ oid => '2627', + proname => 'inetnot', prorettype => 'inet', proargtypes => 'inet', + prosrc => 'inetnot' }, +{ oid => '2628', + proname => 'inetand', prorettype => 'inet', proargtypes => 'inet inet', + prosrc => 'inetand' }, +{ oid => '2629', + proname => 'inetor', prorettype => 'inet', proargtypes => 'inet inet', + prosrc => 'inetor' }, +{ oid => '2630', + proname => 'inetpl', prorettype => 'inet', proargtypes => 'inet int8', + prosrc => 'inetpl' }, +{ oid => '2631', + proname => 'int8pl_inet', prolang => '14', prorettype => 'inet', + proargtypes => 'int8 inet', prosrc => 'select $2 + $1' }, +{ oid => '2632', + proname => 'inetmi_int8', prorettype => 'inet', proargtypes => 'inet int8', + prosrc => 'inetmi_int8' }, +{ oid => '2633', + proname => 'inetmi', prorettype => 'int8', proargtypes => 'inet inet', + prosrc => 'inetmi' }, +{ oid => '4071', descr => 'are the addresses from the same family?', + proname => 'inet_same_family', prorettype => 'bool', + proargtypes => 'inet inet', prosrc => 'inet_same_family' }, +{ oid => '4063', + descr => 'the smallest network which includes both of the given networks', + proname => 'inet_merge', prorettype => 'cidr', proargtypes => 'inet inet', + prosrc => 'inet_merge' }, + +# GiST support for inet and cidr +{ oid => '3553', descr => 'GiST support', + proname => 'inet_gist_consistent', prorettype => 'bool', + proargtypes => 'internal inet int2 oid internal', + prosrc => 'inet_gist_consistent' }, +{ oid => '3554', descr => 'GiST support', + proname => 'inet_gist_union', prorettype => 'inet', + proargtypes => 'internal internal', prosrc => 'inet_gist_union' }, +{ oid => '3555', descr => 'GiST support', + proname => 'inet_gist_compress', prorettype => 'internal', + proargtypes => 'internal', prosrc => 'inet_gist_compress' }, +{ oid => '3573', descr => 'GiST support', + proname => 'inet_gist_fetch', prorettype => 'internal', + proargtypes => 'internal', prosrc => 'inet_gist_fetch' }, +{ oid => '3557', descr => 'GiST support', + proname => 'inet_gist_penalty', prorettype => 'internal', + proargtypes => 'internal internal internal', prosrc => 'inet_gist_penalty' }, +{ oid => '3558', descr => 'GiST support', + proname => 'inet_gist_picksplit', prorettype => 'internal', + proargtypes => 'internal internal', prosrc => 'inet_gist_picksplit' }, +{ oid => '3559', descr => 'GiST support', + proname => 'inet_gist_same', prorettype => 'internal', + proargtypes => 'inet inet internal', prosrc => 'inet_gist_same' }, + +# SP-GiST support for inet and cidr +{ oid => '3795', descr => 'SP-GiST support', + proname => 'inet_spg_config', prorettype => 'void', + proargtypes => 'internal internal', prosrc => 'inet_spg_config' }, +{ oid => '3796', descr => 'SP-GiST support', + proname => 'inet_spg_choose', prorettype => 'void', + proargtypes => 'internal internal', prosrc => 'inet_spg_choose' }, +{ oid => '3797', descr => 'SP-GiST support', + proname => 'inet_spg_picksplit', prorettype => 'void', + proargtypes => 'internal internal', prosrc => 'inet_spg_picksplit' }, +{ oid => '3798', descr => 'SP-GiST support', + proname => 'inet_spg_inner_consistent', prorettype => 'void', + proargtypes => 'internal internal', prosrc => 'inet_spg_inner_consistent' }, +{ oid => '3799', descr => 'SP-GiST support', + proname => 'inet_spg_leaf_consistent', prorettype => 'bool', + proargtypes => 'internal internal', prosrc => 'inet_spg_leaf_consistent' }, + +# Selectivity estimation for inet and cidr +{ oid => '3560', descr => 'restriction selectivity for network operators', + proname => 'networksel', provolatile => 's', prorettype => 'float8', + proargtypes => 'internal oid internal int4', prosrc => 'networksel' }, +{ oid => '3561', descr => 'join selectivity for network operators', + proname => 'networkjoinsel', provolatile => 's', prorettype => 'float8', + proargtypes => 'internal oid internal int2 internal', + prosrc => 'networkjoinsel' }, + +{ oid => '1690', + proname => 'time_mi_time', prorettype => 'interval', + proargtypes => 'time time', prosrc => 'time_mi_time' }, + +{ oid => '1691', + proname => 'boolle', proleakproof => 't', prorettype => 'bool', + proargtypes => 'bool bool', prosrc => 'boolle' }, +{ oid => '1692', + proname => 'boolge', proleakproof => 't', prorettype => 'bool', + proargtypes => 'bool bool', prosrc => 'boolge' }, +{ oid => '1693', descr => 'less-equal-greater', + proname => 'btboolcmp', prorettype => 'int4', proargtypes => 'bool bool', + prosrc => 'btboolcmp' }, + +{ oid => '1688', descr => 'hash', + proname => 'time_hash', prorettype => 'int4', proargtypes => 'time', + prosrc => 'time_hash' }, +{ oid => '3409', descr => 'hash', + proname => 'time_hash_extended', prorettype => 'int8', + proargtypes => 'time int8', prosrc => 'time_hash_extended' }, +{ oid => '1696', descr => 'hash', + proname => 'timetz_hash', prorettype => 'int4', proargtypes => 'timetz', + prosrc => 'timetz_hash' }, +{ oid => '3410', descr => 'hash', + proname => 'timetz_hash_extended', prorettype => 'int8', + proargtypes => 'timetz int8', prosrc => 'timetz_hash_extended' }, +{ oid => '1697', descr => 'hash', + proname => 'interval_hash', prorettype => 'int4', proargtypes => 'interval', + prosrc => 'interval_hash' }, +{ oid => '3418', descr => 'hash', + proname => 'interval_hash_extended', prorettype => 'int8', + proargtypes => 'interval int8', prosrc => 'interval_hash_extended' }, + +# OID's 1700 - 1799 NUMERIC data type + +{ oid => '1701', descr => 'I/O', + proname => 'numeric_in', prorettype => 'numeric', + proargtypes => 'cstring oid int4', prosrc => 'numeric_in' }, +{ oid => '1702', descr => 'I/O', + proname => 'numeric_out', prorettype => 'cstring', proargtypes => 'numeric', + prosrc => 'numeric_out' }, +{ oid => '2917', descr => 'I/O typmod', + proname => 'numerictypmodin', prorettype => 'int4', proargtypes => '_cstring', + prosrc => 'numerictypmodin' }, +{ oid => '2918', descr => 'I/O typmod', + proname => 'numerictypmodout', prorettype => 'cstring', proargtypes => 'int4', + prosrc => 'numerictypmodout' }, +{ oid => '3157', descr => 'transform a numeric length coercion', + proname => 'numeric_transform', prorettype => 'internal', + proargtypes => 'internal', prosrc => 'numeric_transform' }, +{ oid => '1703', descr => 'adjust numeric to typmod precision/scale', + proname => 'numeric', protransform => 'numeric_transform', + prorettype => 'numeric', proargtypes => 'numeric int4', prosrc => 'numeric' }, +{ oid => '1704', + proname => 'numeric_abs', prorettype => 'numeric', proargtypes => 'numeric', + prosrc => 'numeric_abs' }, +{ oid => '1705', descr => 'absolute value', + proname => 'abs', prorettype => 'numeric', proargtypes => 'numeric', + prosrc => 'numeric_abs' }, +{ oid => '1706', descr => 'sign of value', + proname => 'sign', prorettype => 'numeric', proargtypes => 'numeric', + prosrc => 'numeric_sign' }, +{ oid => '1707', descr => 'value rounded to \'scale\'', + proname => 'round', prorettype => 'numeric', proargtypes => 'numeric int4', + prosrc => 'numeric_round' }, +{ oid => '1708', descr => 'value rounded to \'scale\' of zero', + proname => 'round', prolang => '14', prorettype => 'numeric', + proargtypes => 'numeric', prosrc => 'select pg_catalog.round($1,0)' }, +{ oid => '1709', descr => 'value truncated to \'scale\'', + proname => 'trunc', prorettype => 'numeric', proargtypes => 'numeric int4', + prosrc => 'numeric_trunc' }, +{ oid => '1710', descr => 'value truncated to \'scale\' of zero', + proname => 'trunc', prolang => '14', prorettype => 'numeric', + proargtypes => 'numeric', prosrc => 'select pg_catalog.trunc($1,0)' }, +{ oid => '1711', descr => 'nearest integer >= value', + proname => 'ceil', prorettype => 'numeric', proargtypes => 'numeric', + prosrc => 'numeric_ceil' }, +{ oid => '2167', descr => 'nearest integer >= value', + proname => 'ceiling', prorettype => 'numeric', proargtypes => 'numeric', + prosrc => 'numeric_ceil' }, +{ oid => '1712', descr => 'nearest integer <= value', + proname => 'floor', prorettype => 'numeric', proargtypes => 'numeric', + prosrc => 'numeric_floor' }, +{ oid => '1718', + proname => 'numeric_eq', prorettype => 'bool', + proargtypes => 'numeric numeric', prosrc => 'numeric_eq' }, +{ oid => '1719', + proname => 'numeric_ne', prorettype => 'bool', + proargtypes => 'numeric numeric', prosrc => 'numeric_ne' }, +{ oid => '1720', + proname => 'numeric_gt', prorettype => 'bool', + proargtypes => 'numeric numeric', prosrc => 'numeric_gt' }, +{ oid => '1721', + proname => 'numeric_ge', prorettype => 'bool', + proargtypes => 'numeric numeric', prosrc => 'numeric_ge' }, +{ oid => '1722', + proname => 'numeric_lt', prorettype => 'bool', + proargtypes => 'numeric numeric', prosrc => 'numeric_lt' }, +{ oid => '1723', + proname => 'numeric_le', prorettype => 'bool', + proargtypes => 'numeric numeric', prosrc => 'numeric_le' }, +{ oid => '1724', + proname => 'numeric_add', prorettype => 'numeric', + proargtypes => 'numeric numeric', prosrc => 'numeric_add' }, +{ oid => '1725', + proname => 'numeric_sub', prorettype => 'numeric', + proargtypes => 'numeric numeric', prosrc => 'numeric_sub' }, +{ oid => '1726', + proname => 'numeric_mul', prorettype => 'numeric', + proargtypes => 'numeric numeric', prosrc => 'numeric_mul' }, +{ oid => '1727', + proname => 'numeric_div', prorettype => 'numeric', + proargtypes => 'numeric numeric', prosrc => 'numeric_div' }, +{ oid => '1728', descr => 'modulus', + proname => 'mod', prorettype => 'numeric', proargtypes => 'numeric numeric', + prosrc => 'numeric_mod' }, +{ oid => '1729', + proname => 'numeric_mod', prorettype => 'numeric', + proargtypes => 'numeric numeric', prosrc => 'numeric_mod' }, +{ oid => '1730', descr => 'square root', + proname => 'sqrt', prorettype => 'numeric', proargtypes => 'numeric', + prosrc => 'numeric_sqrt' }, +{ oid => '1731', descr => 'square root', + proname => 'numeric_sqrt', prorettype => 'numeric', proargtypes => 'numeric', + prosrc => 'numeric_sqrt' }, +{ oid => '1732', descr => 'natural exponential (e^x)', + proname => 'exp', prorettype => 'numeric', proargtypes => 'numeric', + prosrc => 'numeric_exp' }, +{ oid => '1733', descr => 'natural exponential (e^x)', + proname => 'numeric_exp', prorettype => 'numeric', proargtypes => 'numeric', + prosrc => 'numeric_exp' }, +{ oid => '1734', descr => 'natural logarithm', + proname => 'ln', prorettype => 'numeric', proargtypes => 'numeric', + prosrc => 'numeric_ln' }, +{ oid => '1735', descr => 'natural logarithm', + proname => 'numeric_ln', prorettype => 'numeric', proargtypes => 'numeric', + prosrc => 'numeric_ln' }, +{ oid => '1736', descr => 'logarithm base m of n', + proname => 'log', prorettype => 'numeric', proargtypes => 'numeric numeric', + prosrc => 'numeric_log' }, +{ oid => '1737', descr => 'logarithm base m of n', + proname => 'numeric_log', prorettype => 'numeric', + proargtypes => 'numeric numeric', prosrc => 'numeric_log' }, +{ oid => '1738', descr => 'exponentiation', + proname => 'pow', prorettype => 'numeric', proargtypes => 'numeric numeric', + prosrc => 'numeric_power' }, +{ oid => '2169', descr => 'exponentiation', + proname => 'power', prorettype => 'numeric', proargtypes => 'numeric numeric', + prosrc => 'numeric_power' }, +{ oid => '1739', + proname => 'numeric_power', prorettype => 'numeric', + proargtypes => 'numeric numeric', prosrc => 'numeric_power' }, +{ oid => '3281', descr => 'number of decimal digits in the fractional part', + proname => 'scale', prorettype => 'int4', proargtypes => 'numeric', + prosrc => 'numeric_scale' }, +{ oid => '1740', descr => 'convert int4 to numeric', + proname => 'numeric', prorettype => 'numeric', proargtypes => 'int4', + prosrc => 'int4_numeric' }, +{ oid => '1741', descr => 'base 10 logarithm', + proname => 'log', prolang => '14', prorettype => 'numeric', + proargtypes => 'numeric', prosrc => 'select pg_catalog.log(10, $1)' }, +{ oid => '1742', descr => 'convert float4 to numeric', + proname => 'numeric', prorettype => 'numeric', proargtypes => 'float4', + prosrc => 'float4_numeric' }, +{ oid => '1743', descr => 'convert float8 to numeric', + proname => 'numeric', prorettype => 'numeric', proargtypes => 'float8', + prosrc => 'float8_numeric' }, +{ oid => '1744', descr => 'convert numeric to int4', + proname => 'int4', prorettype => 'int4', proargtypes => 'numeric', + prosrc => 'numeric_int4' }, +{ oid => '1745', descr => 'convert numeric to float4', + proname => 'float4', prorettype => 'float4', proargtypes => 'numeric', + prosrc => 'numeric_float4' }, +{ oid => '1746', descr => 'convert numeric to float8', + proname => 'float8', prorettype => 'float8', proargtypes => 'numeric', + prosrc => 'numeric_float8' }, +{ oid => '1973', descr => 'trunc(x/y)', + proname => 'div', prorettype => 'numeric', proargtypes => 'numeric numeric', + prosrc => 'numeric_div_trunc' }, +{ oid => '1980', descr => 'trunc(x/y)', + proname => 'numeric_div_trunc', prorettype => 'numeric', + proargtypes => 'numeric numeric', prosrc => 'numeric_div_trunc' }, +{ oid => '2170', descr => 'bucket number of operand in equal-width histogram', + proname => 'width_bucket', prorettype => 'int4', + proargtypes => 'numeric numeric numeric int4', + prosrc => 'width_bucket_numeric' }, + +{ oid => '1747', + proname => 'time_pl_interval', prorettype => 'time', + proargtypes => 'time interval', prosrc => 'time_pl_interval' }, +{ oid => '1748', + proname => 'time_mi_interval', prorettype => 'time', + proargtypes => 'time interval', prosrc => 'time_mi_interval' }, +{ oid => '1749', + proname => 'timetz_pl_interval', prorettype => 'timetz', + proargtypes => 'timetz interval', prosrc => 'timetz_pl_interval' }, +{ oid => '1750', + proname => 'timetz_mi_interval', prorettype => 'timetz', + proargtypes => 'timetz interval', prosrc => 'timetz_mi_interval' }, + +{ oid => '1764', descr => 'increment by one', + proname => 'numeric_inc', prorettype => 'numeric', proargtypes => 'numeric', + prosrc => 'numeric_inc' }, +{ oid => '1766', descr => 'smaller of two', + proname => 'numeric_smaller', prorettype => 'numeric', + proargtypes => 'numeric numeric', prosrc => 'numeric_smaller' }, +{ oid => '1767', descr => 'larger of two', + proname => 'numeric_larger', prorettype => 'numeric', + proargtypes => 'numeric numeric', prosrc => 'numeric_larger' }, +{ oid => '1769', descr => 'less-equal-greater', + proname => 'numeric_cmp', prorettype => 'int4', + proargtypes => 'numeric numeric', prosrc => 'numeric_cmp' }, +{ oid => '3283', descr => 'sort support', + proname => 'numeric_sortsupport', prorettype => 'void', + proargtypes => 'internal', prosrc => 'numeric_sortsupport' }, +{ oid => '1771', + proname => 'numeric_uminus', prorettype => 'numeric', + proargtypes => 'numeric', prosrc => 'numeric_uminus' }, +{ oid => '1779', descr => 'convert numeric to int8', + proname => 'int8', prorettype => 'int8', proargtypes => 'numeric', + prosrc => 'numeric_int8' }, +{ oid => '1781', descr => 'convert int8 to numeric', + proname => 'numeric', prorettype => 'numeric', proargtypes => 'int8', + prosrc => 'int8_numeric' }, +{ oid => '1782', descr => 'convert int2 to numeric', + proname => 'numeric', prorettype => 'numeric', proargtypes => 'int2', + prosrc => 'int2_numeric' }, +{ oid => '1783', descr => 'convert numeric to int2', + proname => 'int2', prorettype => 'int2', proargtypes => 'numeric', + prosrc => 'numeric_int2' }, + +{ oid => '3556', descr => 'convert jsonb to boolean', + proname => 'bool', prorettype => 'bool', proargtypes => 'jsonb', + prosrc => 'jsonb_bool' }, +{ oid => '3449', descr => 'convert jsonb to numeric', + proname => 'numeric', prorettype => 'numeric', proargtypes => 'jsonb', + prosrc => 'jsonb_numeric' }, +{ oid => '3450', descr => 'convert jsonb to int2', + proname => 'int2', prorettype => 'int2', proargtypes => 'jsonb', + prosrc => 'jsonb_int2' }, +{ oid => '3451', descr => 'convert jsonb to int4', + proname => 'int4', prorettype => 'int4', proargtypes => 'jsonb', + prosrc => 'jsonb_int4' }, +{ oid => '3452', descr => 'convert jsonb to int8', + proname => 'int8', prorettype => 'int8', proargtypes => 'jsonb', + prosrc => 'jsonb_int8' }, +{ oid => '3453', descr => 'convert jsonb to float4', + proname => 'float4', prorettype => 'float4', proargtypes => 'jsonb', + prosrc => 'jsonb_float4' }, +{ oid => '2580', descr => 'convert jsonb to float8', + proname => 'float8', prorettype => 'float8', proargtypes => 'jsonb', + prosrc => 'jsonb_float8' }, + +# formatting +{ oid => '1770', descr => 'format timestamp with time zone to text', + proname => 'to_char', provolatile => 's', prorettype => 'text', + proargtypes => 'timestamptz text', prosrc => 'timestamptz_to_char' }, +{ oid => '1772', descr => 'format numeric to text', + proname => 'to_char', provolatile => 's', prorettype => 'text', + proargtypes => 'numeric text', prosrc => 'numeric_to_char' }, +{ oid => '1773', descr => 'format int4 to text', + proname => 'to_char', provolatile => 's', prorettype => 'text', + proargtypes => 'int4 text', prosrc => 'int4_to_char' }, +{ oid => '1774', descr => 'format int8 to text', + proname => 'to_char', provolatile => 's', prorettype => 'text', + proargtypes => 'int8 text', prosrc => 'int8_to_char' }, +{ oid => '1775', descr => 'format float4 to text', + proname => 'to_char', provolatile => 's', prorettype => 'text', + proargtypes => 'float4 text', prosrc => 'float4_to_char' }, +{ oid => '1776', descr => 'format float8 to text', + proname => 'to_char', provolatile => 's', prorettype => 'text', + proargtypes => 'float8 text', prosrc => 'float8_to_char' }, +{ oid => '1777', descr => 'convert text to numeric', + proname => 'to_number', provolatile => 's', prorettype => 'numeric', + proargtypes => 'text text', prosrc => 'numeric_to_number' }, +{ oid => '1778', descr => 'convert text to timestamp with time zone', + proname => 'to_timestamp', provolatile => 's', prorettype => 'timestamptz', + proargtypes => 'text text', prosrc => 'to_timestamp' }, +{ oid => '1780', descr => 'convert text to date', + proname => 'to_date', provolatile => 's', prorettype => 'date', + proargtypes => 'text text', prosrc => 'to_date' }, +{ oid => '1768', descr => 'format interval to text', + proname => 'to_char', provolatile => 's', prorettype => 'text', + proargtypes => 'interval text', prosrc => 'interval_to_char' }, + +{ oid => '1282', descr => 'quote an identifier for usage in a querystring', + proname => 'quote_ident', prorettype => 'text', proargtypes => 'text', + prosrc => 'quote_ident' }, +{ oid => '1283', descr => 'quote a literal for usage in a querystring', + proname => 'quote_literal', prorettype => 'text', proargtypes => 'text', + prosrc => 'quote_literal' }, +{ oid => '1285', descr => 'quote a data value for usage in a querystring', + proname => 'quote_literal', prolang => '14', provolatile => 's', + prorettype => 'text', proargtypes => 'anyelement', + prosrc => 'select pg_catalog.quote_literal($1::pg_catalog.text)' }, +{ oid => '1289', + descr => 'quote a possibly-null literal for usage in a querystring', + proname => 'quote_nullable', proisstrict => 'f', prorettype => 'text', + proargtypes => 'text', prosrc => 'quote_nullable' }, +{ oid => '1290', + descr => 'quote a possibly-null data value for usage in a querystring', + proname => 'quote_nullable', prolang => '14', proisstrict => 'f', + provolatile => 's', prorettype => 'text', proargtypes => 'anyelement', + prosrc => 'select pg_catalog.quote_nullable($1::pg_catalog.text)' }, + +{ oid => '1798', descr => 'I/O', + proname => 'oidin', prorettype => 'oid', proargtypes => 'cstring', + prosrc => 'oidin' }, +{ oid => '1799', descr => 'I/O', + proname => 'oidout', prorettype => 'cstring', proargtypes => 'oid', + prosrc => 'oidout' }, + +{ oid => '3058', descr => 'concatenate values', + proname => 'concat', provariadic => 'any', proisstrict => 'f', + provolatile => 's', prorettype => 'text', proargtypes => 'any', + proallargtypes => '{any}', proargmodes => '{v}', prosrc => 'text_concat' }, +{ oid => '3059', descr => 'concatenate values with separators', + proname => 'concat_ws', provariadic => 'any', proisstrict => 'f', + provolatile => 's', prorettype => 'text', proargtypes => 'text any', + proallargtypes => '{text,any}', proargmodes => '{i,v}', + prosrc => 'text_concat_ws' }, +{ oid => '3060', descr => 'extract the first n characters', + proname => 'left', prorettype => 'text', proargtypes => 'text int4', + prosrc => 'text_left' }, +{ oid => '3061', descr => 'extract the last n characters', + proname => 'right', prorettype => 'text', proargtypes => 'text int4', + prosrc => 'text_right' }, +{ oid => '3062', descr => 'reverse text', + proname => 'reverse', prorettype => 'text', proargtypes => 'text', + prosrc => 'text_reverse' }, +{ oid => '3539', descr => 'format text message', + proname => 'format', provariadic => 'any', proisstrict => 'f', + provolatile => 's', prorettype => 'text', proargtypes => 'text any', + proallargtypes => '{text,any}', proargmodes => '{i,v}', + prosrc => 'text_format' }, +{ oid => '3540', descr => 'format text message', + proname => 'format', proisstrict => 'f', provolatile => 's', + prorettype => 'text', proargtypes => 'text', prosrc => 'text_format_nv' }, + +{ oid => '1810', descr => 'length in bits', + proname => 'bit_length', prolang => '14', prorettype => 'int4', + proargtypes => 'bytea', prosrc => 'select pg_catalog.octet_length($1) * 8' }, +{ oid => '1811', descr => 'length in bits', + proname => 'bit_length', prolang => '14', prorettype => 'int4', + proargtypes => 'text', prosrc => 'select pg_catalog.octet_length($1) * 8' }, +{ oid => '1812', descr => 'length in bits', + proname => 'bit_length', prolang => '14', prorettype => 'int4', + proargtypes => 'bit', prosrc => 'select pg_catalog.length($1)' }, + +# Selectivity estimators for LIKE and related operators +{ oid => '1814', descr => 'restriction selectivity of ILIKE', + proname => 'iclikesel', provolatile => 's', prorettype => 'float8', + proargtypes => 'internal oid internal int4', prosrc => 'iclikesel' }, +{ oid => '1815', descr => 'restriction selectivity of NOT ILIKE', + proname => 'icnlikesel', provolatile => 's', prorettype => 'float8', + proargtypes => 'internal oid internal int4', prosrc => 'icnlikesel' }, +{ oid => '1816', descr => 'join selectivity of ILIKE', + proname => 'iclikejoinsel', provolatile => 's', prorettype => 'float8', + proargtypes => 'internal oid internal int2 internal', + prosrc => 'iclikejoinsel' }, +{ oid => '1817', descr => 'join selectivity of NOT ILIKE', + proname => 'icnlikejoinsel', provolatile => 's', prorettype => 'float8', + proargtypes => 'internal oid internal int2 internal', + prosrc => 'icnlikejoinsel' }, +{ oid => '1818', descr => 'restriction selectivity of regex match', + proname => 'regexeqsel', provolatile => 's', prorettype => 'float8', + proargtypes => 'internal oid internal int4', prosrc => 'regexeqsel' }, +{ oid => '1819', descr => 'restriction selectivity of LIKE', + proname => 'likesel', provolatile => 's', prorettype => 'float8', + proargtypes => 'internal oid internal int4', prosrc => 'likesel' }, +{ oid => '1820', + descr => 'restriction selectivity of case-insensitive regex match', + proname => 'icregexeqsel', provolatile => 's', prorettype => 'float8', + proargtypes => 'internal oid internal int4', prosrc => 'icregexeqsel' }, +{ oid => '1821', descr => 'restriction selectivity of regex non-match', + proname => 'regexnesel', provolatile => 's', prorettype => 'float8', + proargtypes => 'internal oid internal int4', prosrc => 'regexnesel' }, +{ oid => '1822', descr => 'restriction selectivity of NOT LIKE', + proname => 'nlikesel', provolatile => 's', prorettype => 'float8', + proargtypes => 'internal oid internal int4', prosrc => 'nlikesel' }, +{ oid => '1823', + descr => 'restriction selectivity of case-insensitive regex non-match', + proname => 'icregexnesel', provolatile => 's', prorettype => 'float8', + proargtypes => 'internal oid internal int4', prosrc => 'icregexnesel' }, +{ oid => '1824', descr => 'join selectivity of regex match', + proname => 'regexeqjoinsel', provolatile => 's', prorettype => 'float8', + proargtypes => 'internal oid internal int2 internal', + prosrc => 'regexeqjoinsel' }, +{ oid => '1825', descr => 'join selectivity of LIKE', + proname => 'likejoinsel', provolatile => 's', prorettype => 'float8', + proargtypes => 'internal oid internal int2 internal', + prosrc => 'likejoinsel' }, +{ oid => '1826', descr => 'join selectivity of case-insensitive regex match', + proname => 'icregexeqjoinsel', provolatile => 's', prorettype => 'float8', + proargtypes => 'internal oid internal int2 internal', + prosrc => 'icregexeqjoinsel' }, +{ oid => '1827', descr => 'join selectivity of regex non-match', + proname => 'regexnejoinsel', provolatile => 's', prorettype => 'float8', + proargtypes => 'internal oid internal int2 internal', + prosrc => 'regexnejoinsel' }, +{ oid => '1828', descr => 'join selectivity of NOT LIKE', + proname => 'nlikejoinsel', provolatile => 's', prorettype => 'float8', + proargtypes => 'internal oid internal int2 internal', + prosrc => 'nlikejoinsel' }, +{ oid => '1829', + descr => 'join selectivity of case-insensitive regex non-match', + proname => 'icregexnejoinsel', provolatile => 's', prorettype => 'float8', + proargtypes => 'internal oid internal int2 internal', + prosrc => 'icregexnejoinsel' }, +{ oid => '3437', descr => 'restriction selectivity of exact prefix', + proname => 'prefixsel', provolatile => 's', prorettype => 'float8', + proargtypes => 'internal oid internal int4', prosrc => 'prefixsel' }, +{ oid => '3438', descr => 'join selectivity of exact prefix', + proname => 'prefixjoinsel', provolatile => 's', prorettype => 'float8', + proargtypes => 'internal oid internal int2 internal', + prosrc => 'prefixjoinsel' }, + +# Aggregate-related functions +{ oid => '1830', descr => 'aggregate final function', + proname => 'float8_avg', prorettype => 'float8', proargtypes => '_float8', + prosrc => 'float8_avg' }, +{ oid => '2512', descr => 'aggregate final function', + proname => 'float8_var_pop', prorettype => 'float8', proargtypes => '_float8', + prosrc => 'float8_var_pop' }, +{ oid => '1831', descr => 'aggregate final function', + proname => 'float8_var_samp', prorettype => 'float8', + proargtypes => '_float8', prosrc => 'float8_var_samp' }, +{ oid => '2513', descr => 'aggregate final function', + proname => 'float8_stddev_pop', prorettype => 'float8', + proargtypes => '_float8', prosrc => 'float8_stddev_pop' }, +{ oid => '1832', descr => 'aggregate final function', + proname => 'float8_stddev_samp', prorettype => 'float8', + proargtypes => '_float8', prosrc => 'float8_stddev_samp' }, +{ oid => '1833', descr => 'aggregate transition function', + proname => 'numeric_accum', proisstrict => 'f', prorettype => 'internal', + proargtypes => 'internal numeric', prosrc => 'numeric_accum' }, +{ oid => '3341', descr => 'aggregate combine function', + proname => 'numeric_combine', proisstrict => 'f', prorettype => 'internal', + proargtypes => 'internal internal', prosrc => 'numeric_combine' }, +{ oid => '2858', descr => 'aggregate transition function', + proname => 'numeric_avg_accum', proisstrict => 'f', prorettype => 'internal', + proargtypes => 'internal numeric', prosrc => 'numeric_avg_accum' }, +{ oid => '3337', descr => 'aggregate combine function', + proname => 'numeric_avg_combine', proisstrict => 'f', + prorettype => 'internal', proargtypes => 'internal internal', + prosrc => 'numeric_avg_combine' }, +{ oid => '2740', descr => 'aggregate serial function', + proname => 'numeric_avg_serialize', prorettype => 'bytea', + proargtypes => 'internal', prosrc => 'numeric_avg_serialize' }, +{ oid => '2741', descr => 'aggregate deserial function', + proname => 'numeric_avg_deserialize', prorettype => 'internal', + proargtypes => 'bytea internal', prosrc => 'numeric_avg_deserialize' }, +{ oid => '3335', descr => 'aggregate serial function', + proname => 'numeric_serialize', prorettype => 'bytea', + proargtypes => 'internal', prosrc => 'numeric_serialize' }, +{ oid => '3336', descr => 'aggregate deserial function', + proname => 'numeric_deserialize', prorettype => 'internal', + proargtypes => 'bytea internal', prosrc => 'numeric_deserialize' }, +{ oid => '3548', descr => 'aggregate transition function', + proname => 'numeric_accum_inv', proisstrict => 'f', prorettype => 'internal', + proargtypes => 'internal numeric', prosrc => 'numeric_accum_inv' }, +{ oid => '1834', descr => 'aggregate transition function', + proname => 'int2_accum', proisstrict => 'f', prorettype => 'internal', + proargtypes => 'internal int2', prosrc => 'int2_accum' }, +{ oid => '1835', descr => 'aggregate transition function', + proname => 'int4_accum', proisstrict => 'f', prorettype => 'internal', + proargtypes => 'internal int4', prosrc => 'int4_accum' }, +{ oid => '1836', descr => 'aggregate transition function', + proname => 'int8_accum', proisstrict => 'f', prorettype => 'internal', + proargtypes => 'internal int8', prosrc => 'int8_accum' }, +{ oid => '3338', descr => 'aggregate combine function', + proname => 'numeric_poly_combine', proisstrict => 'f', + prorettype => 'internal', proargtypes => 'internal internal', + prosrc => 'numeric_poly_combine' }, +{ oid => '3339', descr => 'aggregate serial function', + proname => 'numeric_poly_serialize', prorettype => 'bytea', + proargtypes => 'internal', prosrc => 'numeric_poly_serialize' }, +{ oid => '3340', descr => 'aggregate deserial function', + proname => 'numeric_poly_deserialize', prorettype => 'internal', + proargtypes => 'bytea internal', prosrc => 'numeric_poly_deserialize' }, +{ oid => '2746', descr => 'aggregate transition function', + proname => 'int8_avg_accum', proisstrict => 'f', prorettype => 'internal', + proargtypes => 'internal int8', prosrc => 'int8_avg_accum' }, +{ oid => '3567', descr => 'aggregate transition function', + proname => 'int2_accum_inv', proisstrict => 'f', prorettype => 'internal', + proargtypes => 'internal int2', prosrc => 'int2_accum_inv' }, +{ oid => '3568', descr => 'aggregate transition function', + proname => 'int4_accum_inv', proisstrict => 'f', prorettype => 'internal', + proargtypes => 'internal int4', prosrc => 'int4_accum_inv' }, +{ oid => '3569', descr => 'aggregate transition function', + proname => 'int8_accum_inv', proisstrict => 'f', prorettype => 'internal', + proargtypes => 'internal int8', prosrc => 'int8_accum_inv' }, +{ oid => '3387', descr => 'aggregate transition function', + proname => 'int8_avg_accum_inv', proisstrict => 'f', prorettype => 'internal', + proargtypes => 'internal int8', prosrc => 'int8_avg_accum_inv' }, +{ oid => '2785', descr => 'aggregate combine function', + proname => 'int8_avg_combine', proisstrict => 'f', prorettype => 'internal', + proargtypes => 'internal internal', prosrc => 'int8_avg_combine' }, +{ oid => '2786', descr => 'aggregate serial function', + proname => 'int8_avg_serialize', prorettype => 'bytea', + proargtypes => 'internal', prosrc => 'int8_avg_serialize' }, +{ oid => '2787', descr => 'aggregate deserial function', + proname => 'int8_avg_deserialize', prorettype => 'internal', + proargtypes => 'bytea internal', prosrc => 'int8_avg_deserialize' }, +{ oid => '3324', descr => 'aggregate combine function', + proname => 'int4_avg_combine', prorettype => '_int8', + proargtypes => '_int8 _int8', prosrc => 'int4_avg_combine' }, +{ oid => '3178', descr => 'aggregate final function', + proname => 'numeric_sum', proisstrict => 'f', prorettype => 'numeric', + proargtypes => 'internal', prosrc => 'numeric_sum' }, +{ oid => '1837', descr => 'aggregate final function', + proname => 'numeric_avg', proisstrict => 'f', prorettype => 'numeric', + proargtypes => 'internal', prosrc => 'numeric_avg' }, +{ oid => '2514', descr => 'aggregate final function', + proname => 'numeric_var_pop', proisstrict => 'f', prorettype => 'numeric', + proargtypes => 'internal', prosrc => 'numeric_var_pop' }, +{ oid => '1838', descr => 'aggregate final function', + proname => 'numeric_var_samp', proisstrict => 'f', prorettype => 'numeric', + proargtypes => 'internal', prosrc => 'numeric_var_samp' }, +{ oid => '2596', descr => 'aggregate final function', + proname => 'numeric_stddev_pop', proisstrict => 'f', prorettype => 'numeric', + proargtypes => 'internal', prosrc => 'numeric_stddev_pop' }, +{ oid => '1839', descr => 'aggregate final function', + proname => 'numeric_stddev_samp', proisstrict => 'f', prorettype => 'numeric', + proargtypes => 'internal', prosrc => 'numeric_stddev_samp' }, +{ oid => '1840', descr => 'aggregate transition function', + proname => 'int2_sum', proisstrict => 'f', prorettype => 'int8', + proargtypes => 'int8 int2', prosrc => 'int2_sum' }, +{ oid => '1841', descr => 'aggregate transition function', + proname => 'int4_sum', proisstrict => 'f', prorettype => 'int8', + proargtypes => 'int8 int4', prosrc => 'int4_sum' }, +{ oid => '1842', descr => 'aggregate transition function', + proname => 'int8_sum', proisstrict => 'f', prorettype => 'numeric', + proargtypes => 'numeric int8', prosrc => 'int8_sum' }, +{ oid => '3388', descr => 'aggregate final function', + proname => 'numeric_poly_sum', proisstrict => 'f', prorettype => 'numeric', + proargtypes => 'internal', prosrc => 'numeric_poly_sum' }, +{ oid => '3389', descr => 'aggregate final function', + proname => 'numeric_poly_avg', proisstrict => 'f', prorettype => 'numeric', + proargtypes => 'internal', prosrc => 'numeric_poly_avg' }, +{ oid => '3390', descr => 'aggregate final function', + proname => 'numeric_poly_var_pop', proisstrict => 'f', + prorettype => 'numeric', proargtypes => 'internal', + prosrc => 'numeric_poly_var_pop' }, +{ oid => '3391', descr => 'aggregate final function', + proname => 'numeric_poly_var_samp', proisstrict => 'f', + prorettype => 'numeric', proargtypes => 'internal', + prosrc => 'numeric_poly_var_samp' }, +{ oid => '3392', descr => 'aggregate final function', + proname => 'numeric_poly_stddev_pop', proisstrict => 'f', + prorettype => 'numeric', proargtypes => 'internal', + prosrc => 'numeric_poly_stddev_pop' }, +{ oid => '3393', descr => 'aggregate final function', + proname => 'numeric_poly_stddev_samp', proisstrict => 'f', + prorettype => 'numeric', proargtypes => 'internal', + prosrc => 'numeric_poly_stddev_samp' }, + +{ oid => '1843', descr => 'aggregate transition function', + proname => 'interval_accum', prorettype => '_interval', + proargtypes => '_interval interval', prosrc => 'interval_accum' }, +{ oid => '3325', descr => 'aggregate combine function', + proname => 'interval_combine', prorettype => '_interval', + proargtypes => '_interval _interval', prosrc => 'interval_combine' }, +{ oid => '3549', descr => 'aggregate transition function', + proname => 'interval_accum_inv', prorettype => '_interval', + proargtypes => '_interval interval', prosrc => 'interval_accum_inv' }, +{ oid => '1844', descr => 'aggregate final function', + proname => 'interval_avg', prorettype => 'interval', + proargtypes => '_interval', prosrc => 'interval_avg' }, +{ oid => '1962', descr => 'aggregate transition function', + proname => 'int2_avg_accum', prorettype => '_int8', + proargtypes => '_int8 int2', prosrc => 'int2_avg_accum' }, +{ oid => '1963', descr => 'aggregate transition function', + proname => 'int4_avg_accum', prorettype => '_int8', + proargtypes => '_int8 int4', prosrc => 'int4_avg_accum' }, +{ oid => '3570', descr => 'aggregate transition function', + proname => 'int2_avg_accum_inv', prorettype => '_int8', + proargtypes => '_int8 int2', prosrc => 'int2_avg_accum_inv' }, +{ oid => '3571', descr => 'aggregate transition function', + proname => 'int4_avg_accum_inv', prorettype => '_int8', + proargtypes => '_int8 int4', prosrc => 'int4_avg_accum_inv' }, +{ oid => '1964', descr => 'aggregate final function', + proname => 'int8_avg', prorettype => 'numeric', proargtypes => '_int8', + prosrc => 'int8_avg' }, +{ oid => '3572', descr => 'aggregate final function', + proname => 'int2int4_sum', prorettype => 'int8', proargtypes => '_int8', + prosrc => 'int2int4_sum' }, +{ oid => '2805', descr => 'aggregate transition function', + proname => 'int8inc_float8_float8', prorettype => 'int8', + proargtypes => 'int8 float8 float8', prosrc => 'int8inc_float8_float8' }, +{ oid => '2806', descr => 'aggregate transition function', + proname => 'float8_regr_accum', prorettype => '_float8', + proargtypes => '_float8 float8 float8', prosrc => 'float8_regr_accum' }, +{ oid => '3342', descr => 'aggregate combine function', + proname => 'float8_regr_combine', prorettype => '_float8', + proargtypes => '_float8 _float8', prosrc => 'float8_regr_combine' }, +{ oid => '2807', descr => 'aggregate final function', + proname => 'float8_regr_sxx', prorettype => 'float8', + proargtypes => '_float8', prosrc => 'float8_regr_sxx' }, +{ oid => '2808', descr => 'aggregate final function', + proname => 'float8_regr_syy', prorettype => 'float8', + proargtypes => '_float8', prosrc => 'float8_regr_syy' }, +{ oid => '2809', descr => 'aggregate final function', + proname => 'float8_regr_sxy', prorettype => 'float8', + proargtypes => '_float8', prosrc => 'float8_regr_sxy' }, +{ oid => '2810', descr => 'aggregate final function', + proname => 'float8_regr_avgx', prorettype => 'float8', + proargtypes => '_float8', prosrc => 'float8_regr_avgx' }, +{ oid => '2811', descr => 'aggregate final function', + proname => 'float8_regr_avgy', prorettype => 'float8', + proargtypes => '_float8', prosrc => 'float8_regr_avgy' }, +{ oid => '2812', descr => 'aggregate final function', + proname => 'float8_regr_r2', prorettype => 'float8', proargtypes => '_float8', + prosrc => 'float8_regr_r2' }, +{ oid => '2813', descr => 'aggregate final function', + proname => 'float8_regr_slope', prorettype => 'float8', + proargtypes => '_float8', prosrc => 'float8_regr_slope' }, +{ oid => '2814', descr => 'aggregate final function', + proname => 'float8_regr_intercept', prorettype => 'float8', + proargtypes => '_float8', prosrc => 'float8_regr_intercept' }, +{ oid => '2815', descr => 'aggregate final function', + proname => 'float8_covar_pop', prorettype => 'float8', + proargtypes => '_float8', prosrc => 'float8_covar_pop' }, +{ oid => '2816', descr => 'aggregate final function', + proname => 'float8_covar_samp', prorettype => 'float8', + proargtypes => '_float8', prosrc => 'float8_covar_samp' }, +{ oid => '2817', descr => 'aggregate final function', + proname => 'float8_corr', prorettype => 'float8', proargtypes => '_float8', + prosrc => 'float8_corr' }, + +{ oid => '3535', descr => 'aggregate transition function', + proname => 'string_agg_transfn', proisstrict => 'f', prorettype => 'internal', + proargtypes => 'internal text text', prosrc => 'string_agg_transfn' }, +{ oid => '3536', descr => 'aggregate final function', + proname => 'string_agg_finalfn', proisstrict => 'f', prorettype => 'text', + proargtypes => 'internal', prosrc => 'string_agg_finalfn' }, +{ oid => '3538', descr => 'concatenate aggregate input into a string', + proname => 'string_agg', prokind => 'a', proisstrict => 'f', + prorettype => 'text', proargtypes => 'text text', + prosrc => 'aggregate_dummy' }, +{ oid => '3543', descr => 'aggregate transition function', + proname => 'bytea_string_agg_transfn', proisstrict => 'f', + prorettype => 'internal', proargtypes => 'internal bytea bytea', + prosrc => 'bytea_string_agg_transfn' }, +{ oid => '3544', descr => 'aggregate final function', + proname => 'bytea_string_agg_finalfn', proisstrict => 'f', + prorettype => 'bytea', proargtypes => 'internal', + prosrc => 'bytea_string_agg_finalfn' }, +{ oid => '3545', descr => 'concatenate aggregate input into a bytea', + proname => 'string_agg', prokind => 'a', proisstrict => 'f', + prorettype => 'bytea', proargtypes => 'bytea bytea', + prosrc => 'aggregate_dummy' }, + +# To ASCII conversion +{ oid => '1845', descr => 'encode text from DB encoding to ASCII text', + proname => 'to_ascii', prorettype => 'text', proargtypes => 'text', + prosrc => 'to_ascii_default' }, +{ oid => '1846', descr => 'encode text from encoding to ASCII text', + proname => 'to_ascii', prorettype => 'text', proargtypes => 'text int4', + prosrc => 'to_ascii_enc' }, +{ oid => '1847', descr => 'encode text from encoding to ASCII text', + proname => 'to_ascii', prorettype => 'text', proargtypes => 'text name', + prosrc => 'to_ascii_encname' }, + +{ oid => '1848', + proname => 'interval_pl_time', prolang => '14', prorettype => 'time', + proargtypes => 'interval time', prosrc => 'select $2 + $1' }, + +{ oid => '1850', + proname => 'int28eq', proleakproof => 't', prorettype => 'bool', + proargtypes => 'int2 int8', prosrc => 'int28eq' }, +{ oid => '1851', + proname => 'int28ne', proleakproof => 't', prorettype => 'bool', + proargtypes => 'int2 int8', prosrc => 'int28ne' }, +{ oid => '1852', + proname => 'int28lt', proleakproof => 't', prorettype => 'bool', + proargtypes => 'int2 int8', prosrc => 'int28lt' }, +{ oid => '1853', + proname => 'int28gt', proleakproof => 't', prorettype => 'bool', + proargtypes => 'int2 int8', prosrc => 'int28gt' }, +{ oid => '1854', + proname => 'int28le', proleakproof => 't', prorettype => 'bool', + proargtypes => 'int2 int8', prosrc => 'int28le' }, +{ oid => '1855', + proname => 'int28ge', proleakproof => 't', prorettype => 'bool', + proargtypes => 'int2 int8', prosrc => 'int28ge' }, + +{ oid => '1856', + proname => 'int82eq', proleakproof => 't', prorettype => 'bool', + proargtypes => 'int8 int2', prosrc => 'int82eq' }, +{ oid => '1857', + proname => 'int82ne', proleakproof => 't', prorettype => 'bool', + proargtypes => 'int8 int2', prosrc => 'int82ne' }, +{ oid => '1858', + proname => 'int82lt', proleakproof => 't', prorettype => 'bool', + proargtypes => 'int8 int2', prosrc => 'int82lt' }, +{ oid => '1859', + proname => 'int82gt', proleakproof => 't', prorettype => 'bool', + proargtypes => 'int8 int2', prosrc => 'int82gt' }, +{ oid => '1860', + proname => 'int82le', proleakproof => 't', prorettype => 'bool', + proargtypes => 'int8 int2', prosrc => 'int82le' }, +{ oid => '1861', + proname => 'int82ge', proleakproof => 't', prorettype => 'bool', + proargtypes => 'int8 int2', prosrc => 'int82ge' }, + +{ oid => '1892', + proname => 'int2and', prorettype => 'int2', proargtypes => 'int2 int2', + prosrc => 'int2and' }, +{ oid => '1893', + proname => 'int2or', prorettype => 'int2', proargtypes => 'int2 int2', + prosrc => 'int2or' }, +{ oid => '1894', + proname => 'int2xor', prorettype => 'int2', proargtypes => 'int2 int2', + prosrc => 'int2xor' }, +{ oid => '1895', + proname => 'int2not', prorettype => 'int2', proargtypes => 'int2', + prosrc => 'int2not' }, +{ oid => '1896', + proname => 'int2shl', prorettype => 'int2', proargtypes => 'int2 int4', + prosrc => 'int2shl' }, +{ oid => '1897', + proname => 'int2shr', prorettype => 'int2', proargtypes => 'int2 int4', + prosrc => 'int2shr' }, + +{ oid => '1898', + proname => 'int4and', prorettype => 'int4', proargtypes => 'int4 int4', + prosrc => 'int4and' }, +{ oid => '1899', + proname => 'int4or', prorettype => 'int4', proargtypes => 'int4 int4', + prosrc => 'int4or' }, +{ oid => '1900', + proname => 'int4xor', prorettype => 'int4', proargtypes => 'int4 int4', + prosrc => 'int4xor' }, +{ oid => '1901', + proname => 'int4not', prorettype => 'int4', proargtypes => 'int4', + prosrc => 'int4not' }, +{ oid => '1902', + proname => 'int4shl', prorettype => 'int4', proargtypes => 'int4 int4', + prosrc => 'int4shl' }, +{ oid => '1903', + proname => 'int4shr', prorettype => 'int4', proargtypes => 'int4 int4', + prosrc => 'int4shr' }, + +{ oid => '1904', + proname => 'int8and', prorettype => 'int8', proargtypes => 'int8 int8', + prosrc => 'int8and' }, +{ oid => '1905', + proname => 'int8or', prorettype => 'int8', proargtypes => 'int8 int8', + prosrc => 'int8or' }, +{ oid => '1906', + proname => 'int8xor', prorettype => 'int8', proargtypes => 'int8 int8', + prosrc => 'int8xor' }, +{ oid => '1907', + proname => 'int8not', prorettype => 'int8', proargtypes => 'int8', + prosrc => 'int8not' }, +{ oid => '1908', + proname => 'int8shl', prorettype => 'int8', proargtypes => 'int8 int4', + prosrc => 'int8shl' }, +{ oid => '1909', + proname => 'int8shr', prorettype => 'int8', proargtypes => 'int8 int4', + prosrc => 'int8shr' }, + +{ oid => '1910', + proname => 'int8up', prorettype => 'int8', proargtypes => 'int8', + prosrc => 'int8up' }, +{ oid => '1911', + proname => 'int2up', prorettype => 'int2', proargtypes => 'int2', + prosrc => 'int2up' }, +{ oid => '1912', + proname => 'int4up', prorettype => 'int4', proargtypes => 'int4', + prosrc => 'int4up' }, +{ oid => '1913', + proname => 'float4up', prorettype => 'float4', proargtypes => 'float4', + prosrc => 'float4up' }, +{ oid => '1914', + proname => 'float8up', prorettype => 'float8', proargtypes => 'float8', + prosrc => 'float8up' }, +{ oid => '1915', + proname => 'numeric_uplus', prorettype => 'numeric', proargtypes => 'numeric', + prosrc => 'numeric_uplus' }, + +{ oid => '1922', descr => 'user privilege on relation by username, rel name', + proname => 'has_table_privilege', provolatile => 's', prorettype => 'bool', + proargtypes => 'name text text', prosrc => 'has_table_privilege_name_name' }, +{ oid => '1923', descr => 'user privilege on relation by username, rel oid', + proname => 'has_table_privilege', provolatile => 's', prorettype => 'bool', + proargtypes => 'name oid text', prosrc => 'has_table_privilege_name_id' }, +{ oid => '1924', descr => 'user privilege on relation by user oid, rel name', + proname => 'has_table_privilege', provolatile => 's', prorettype => 'bool', + proargtypes => 'oid text text', prosrc => 'has_table_privilege_id_name' }, +{ oid => '1925', descr => 'user privilege on relation by user oid, rel oid', + proname => 'has_table_privilege', provolatile => 's', prorettype => 'bool', + proargtypes => 'oid oid text', prosrc => 'has_table_privilege_id_id' }, +{ oid => '1926', descr => 'current user privilege on relation by rel name', + proname => 'has_table_privilege', provolatile => 's', prorettype => 'bool', + proargtypes => 'text text', prosrc => 'has_table_privilege_name' }, +{ oid => '1927', descr => 'current user privilege on relation by rel oid', + proname => 'has_table_privilege', provolatile => 's', prorettype => 'bool', + proargtypes => 'oid text', prosrc => 'has_table_privilege_id' }, + +{ oid => '2181', descr => 'user privilege on sequence by username, seq name', + proname => 'has_sequence_privilege', provolatile => 's', prorettype => 'bool', + proargtypes => 'name text text', + prosrc => 'has_sequence_privilege_name_name' }, +{ oid => '2182', descr => 'user privilege on sequence by username, seq oid', + proname => 'has_sequence_privilege', provolatile => 's', prorettype => 'bool', + proargtypes => 'name oid text', prosrc => 'has_sequence_privilege_name_id' }, +{ oid => '2183', descr => 'user privilege on sequence by user oid, seq name', + proname => 'has_sequence_privilege', provolatile => 's', prorettype => 'bool', + proargtypes => 'oid text text', prosrc => 'has_sequence_privilege_id_name' }, +{ oid => '2184', descr => 'user privilege on sequence by user oid, seq oid', + proname => 'has_sequence_privilege', provolatile => 's', prorettype => 'bool', + proargtypes => 'oid oid text', prosrc => 'has_sequence_privilege_id_id' }, +{ oid => '2185', descr => 'current user privilege on sequence by seq name', + proname => 'has_sequence_privilege', provolatile => 's', prorettype => 'bool', + proargtypes => 'text text', prosrc => 'has_sequence_privilege_name' }, +{ oid => '2186', descr => 'current user privilege on sequence by seq oid', + proname => 'has_sequence_privilege', provolatile => 's', prorettype => 'bool', + proargtypes => 'oid text', prosrc => 'has_sequence_privilege_id' }, + +{ oid => '3012', + descr => 'user privilege on column by username, rel name, col name', + proname => 'has_column_privilege', provolatile => 's', prorettype => 'bool', + proargtypes => 'name text text text', + prosrc => 'has_column_privilege_name_name_name' }, +{ oid => '3013', + descr => 'user privilege on column by username, rel name, col attnum', + proname => 'has_column_privilege', provolatile => 's', prorettype => 'bool', + proargtypes => 'name text int2 text', + prosrc => 'has_column_privilege_name_name_attnum' }, +{ oid => '3014', + descr => 'user privilege on column by username, rel oid, col name', + proname => 'has_column_privilege', provolatile => 's', prorettype => 'bool', + proargtypes => 'name oid text text', + prosrc => 'has_column_privilege_name_id_name' }, +{ oid => '3015', + descr => 'user privilege on column by username, rel oid, col attnum', + proname => 'has_column_privilege', provolatile => 's', prorettype => 'bool', + proargtypes => 'name oid int2 text', + prosrc => 'has_column_privilege_name_id_attnum' }, +{ oid => '3016', + descr => 'user privilege on column by user oid, rel name, col name', + proname => 'has_column_privilege', provolatile => 's', prorettype => 'bool', + proargtypes => 'oid text text text', + prosrc => 'has_column_privilege_id_name_name' }, +{ oid => '3017', + descr => 'user privilege on column by user oid, rel name, col attnum', + proname => 'has_column_privilege', provolatile => 's', prorettype => 'bool', + proargtypes => 'oid text int2 text', + prosrc => 'has_column_privilege_id_name_attnum' }, +{ oid => '3018', + descr => 'user privilege on column by user oid, rel oid, col name', + proname => 'has_column_privilege', provolatile => 's', prorettype => 'bool', + proargtypes => 'oid oid text text', + prosrc => 'has_column_privilege_id_id_name' }, +{ oid => '3019', + descr => 'user privilege on column by user oid, rel oid, col attnum', + proname => 'has_column_privilege', provolatile => 's', prorettype => 'bool', + proargtypes => 'oid oid int2 text', + prosrc => 'has_column_privilege_id_id_attnum' }, +{ oid => '3020', + descr => 'current user privilege on column by rel name, col name', + proname => 'has_column_privilege', provolatile => 's', prorettype => 'bool', + proargtypes => 'text text text', prosrc => 'has_column_privilege_name_name' }, +{ oid => '3021', + descr => 'current user privilege on column by rel name, col attnum', + proname => 'has_column_privilege', provolatile => 's', prorettype => 'bool', + proargtypes => 'text int2 text', + prosrc => 'has_column_privilege_name_attnum' }, +{ oid => '3022', + descr => 'current user privilege on column by rel oid, col name', + proname => 'has_column_privilege', provolatile => 's', prorettype => 'bool', + proargtypes => 'oid text text', prosrc => 'has_column_privilege_id_name' }, +{ oid => '3023', + descr => 'current user privilege on column by rel oid, col attnum', + proname => 'has_column_privilege', provolatile => 's', prorettype => 'bool', + proargtypes => 'oid int2 text', prosrc => 'has_column_privilege_id_attnum' }, + +{ oid => '3024', + descr => 'user privilege on any column by username, rel name', + proname => 'has_any_column_privilege', procost => '10', provolatile => 's', + prorettype => 'bool', proargtypes => 'name text text', + prosrc => 'has_any_column_privilege_name_name' }, +{ oid => '3025', descr => 'user privilege on any column by username, rel oid', + proname => 'has_any_column_privilege', procost => '10', provolatile => 's', + prorettype => 'bool', proargtypes => 'name oid text', + prosrc => 'has_any_column_privilege_name_id' }, +{ oid => '3026', + descr => 'user privilege on any column by user oid, rel name', + proname => 'has_any_column_privilege', procost => '10', provolatile => 's', + prorettype => 'bool', proargtypes => 'oid text text', + prosrc => 'has_any_column_privilege_id_name' }, +{ oid => '3027', descr => 'user privilege on any column by user oid, rel oid', + proname => 'has_any_column_privilege', procost => '10', provolatile => 's', + prorettype => 'bool', proargtypes => 'oid oid text', + prosrc => 'has_any_column_privilege_id_id' }, +{ oid => '3028', descr => 'current user privilege on any column by rel name', + proname => 'has_any_column_privilege', procost => '10', provolatile => 's', + prorettype => 'bool', proargtypes => 'text text', + prosrc => 'has_any_column_privilege_name' }, +{ oid => '3029', descr => 'current user privilege on any column by rel oid', + proname => 'has_any_column_privilege', procost => '10', provolatile => 's', + prorettype => 'bool', proargtypes => 'oid text', + prosrc => 'has_any_column_privilege_id' }, + +{ oid => '3355', descr => 'I/O', + proname => 'pg_ndistinct_in', prorettype => 'pg_ndistinct', + proargtypes => 'cstring', prosrc => 'pg_ndistinct_in' }, +{ oid => '3356', descr => 'I/O', + proname => 'pg_ndistinct_out', prorettype => 'cstring', + proargtypes => 'pg_ndistinct', prosrc => 'pg_ndistinct_out' }, +{ oid => '3357', descr => 'I/O', + proname => 'pg_ndistinct_recv', provolatile => 's', + prorettype => 'pg_ndistinct', proargtypes => 'internal', + prosrc => 'pg_ndistinct_recv' }, +{ oid => '3358', descr => 'I/O', + proname => 'pg_ndistinct_send', provolatile => 's', prorettype => 'bytea', + proargtypes => 'pg_ndistinct', prosrc => 'pg_ndistinct_send' }, + +{ oid => '3404', descr => 'I/O', + proname => 'pg_dependencies_in', prorettype => 'pg_dependencies', + proargtypes => 'cstring', prosrc => 'pg_dependencies_in' }, +{ oid => '3405', descr => 'I/O', + proname => 'pg_dependencies_out', prorettype => 'cstring', + proargtypes => 'pg_dependencies', prosrc => 'pg_dependencies_out' }, +{ oid => '3406', descr => 'I/O', + proname => 'pg_dependencies_recv', provolatile => 's', + prorettype => 'pg_dependencies', proargtypes => 'internal', + prosrc => 'pg_dependencies_recv' }, +{ oid => '3407', descr => 'I/O', + proname => 'pg_dependencies_send', provolatile => 's', prorettype => 'bytea', + proargtypes => 'pg_dependencies', prosrc => 'pg_dependencies_send' }, + +{ oid => '1928', descr => 'statistics: number of scans done for table/index', + proname => 'pg_stat_get_numscans', provolatile => 's', proparallel => 'r', + prorettype => 'int8', proargtypes => 'oid', + prosrc => 'pg_stat_get_numscans' }, +{ oid => '1929', descr => 'statistics: number of tuples read by seqscan', + proname => 'pg_stat_get_tuples_returned', provolatile => 's', + proparallel => 'r', prorettype => 'int8', proargtypes => 'oid', + prosrc => 'pg_stat_get_tuples_returned' }, +{ oid => '1930', descr => 'statistics: number of tuples fetched by idxscan', + proname => 'pg_stat_get_tuples_fetched', provolatile => 's', + proparallel => 'r', prorettype => 'int8', proargtypes => 'oid', + prosrc => 'pg_stat_get_tuples_fetched' }, +{ oid => '1931', descr => 'statistics: number of tuples inserted', + proname => 'pg_stat_get_tuples_inserted', provolatile => 's', + proparallel => 'r', prorettype => 'int8', proargtypes => 'oid', + prosrc => 'pg_stat_get_tuples_inserted' }, +{ oid => '1932', descr => 'statistics: number of tuples updated', + proname => 'pg_stat_get_tuples_updated', provolatile => 's', + proparallel => 'r', prorettype => 'int8', proargtypes => 'oid', + prosrc => 'pg_stat_get_tuples_updated' }, +{ oid => '1933', descr => 'statistics: number of tuples deleted', + proname => 'pg_stat_get_tuples_deleted', provolatile => 's', + proparallel => 'r', prorettype => 'int8', proargtypes => 'oid', + prosrc => 'pg_stat_get_tuples_deleted' }, +{ oid => '1972', descr => 'statistics: number of tuples hot updated', + proname => 'pg_stat_get_tuples_hot_updated', provolatile => 's', + proparallel => 'r', prorettype => 'int8', proargtypes => 'oid', + prosrc => 'pg_stat_get_tuples_hot_updated' }, +{ oid => '2878', descr => 'statistics: number of live tuples', + proname => 'pg_stat_get_live_tuples', provolatile => 's', proparallel => 'r', + prorettype => 'int8', proargtypes => 'oid', + prosrc => 'pg_stat_get_live_tuples' }, +{ oid => '2879', descr => 'statistics: number of dead tuples', + proname => 'pg_stat_get_dead_tuples', provolatile => 's', proparallel => 'r', + prorettype => 'int8', proargtypes => 'oid', + prosrc => 'pg_stat_get_dead_tuples' }, +{ oid => '3177', + descr => 'statistics: number of tuples changed since last analyze', + proname => 'pg_stat_get_mod_since_analyze', provolatile => 's', + proparallel => 'r', prorettype => 'int8', proargtypes => 'oid', + prosrc => 'pg_stat_get_mod_since_analyze' }, +{ oid => '1934', descr => 'statistics: number of blocks fetched', + proname => 'pg_stat_get_blocks_fetched', provolatile => 's', + proparallel => 'r', prorettype => 'int8', proargtypes => 'oid', + prosrc => 'pg_stat_get_blocks_fetched' }, +{ oid => '1935', descr => 'statistics: number of blocks found in cache', + proname => 'pg_stat_get_blocks_hit', provolatile => 's', proparallel => 'r', + prorettype => 'int8', proargtypes => 'oid', + prosrc => 'pg_stat_get_blocks_hit' }, +{ oid => '2781', descr => 'statistics: last manual vacuum time for a table', + proname => 'pg_stat_get_last_vacuum_time', provolatile => 's', + proparallel => 'r', prorettype => 'timestamptz', proargtypes => 'oid', + prosrc => 'pg_stat_get_last_vacuum_time' }, +{ oid => '2782', descr => 'statistics: last auto vacuum time for a table', + proname => 'pg_stat_get_last_autovacuum_time', provolatile => 's', + proparallel => 'r', prorettype => 'timestamptz', proargtypes => 'oid', + prosrc => 'pg_stat_get_last_autovacuum_time' }, +{ oid => '2783', descr => 'statistics: last manual analyze time for a table', + proname => 'pg_stat_get_last_analyze_time', provolatile => 's', + proparallel => 'r', prorettype => 'timestamptz', proargtypes => 'oid', + prosrc => 'pg_stat_get_last_analyze_time' }, +{ oid => '2784', descr => 'statistics: last auto analyze time for a table', + proname => 'pg_stat_get_last_autoanalyze_time', provolatile => 's', + proparallel => 'r', prorettype => 'timestamptz', proargtypes => 'oid', + prosrc => 'pg_stat_get_last_autoanalyze_time' }, +{ oid => '3054', descr => 'statistics: number of manual vacuums for a table', + proname => 'pg_stat_get_vacuum_count', provolatile => 's', proparallel => 'r', + prorettype => 'int8', proargtypes => 'oid', + prosrc => 'pg_stat_get_vacuum_count' }, +{ oid => '3055', descr => 'statistics: number of auto vacuums for a table', + proname => 'pg_stat_get_autovacuum_count', provolatile => 's', + proparallel => 'r', prorettype => 'int8', proargtypes => 'oid', + prosrc => 'pg_stat_get_autovacuum_count' }, +{ oid => '3056', descr => 'statistics: number of manual analyzes for a table', + proname => 'pg_stat_get_analyze_count', provolatile => 's', + proparallel => 'r', prorettype => 'int8', proargtypes => 'oid', + prosrc => 'pg_stat_get_analyze_count' }, +{ oid => '3057', descr => 'statistics: number of auto analyzes for a table', + proname => 'pg_stat_get_autoanalyze_count', provolatile => 's', + proparallel => 'r', prorettype => 'int8', proargtypes => 'oid', + prosrc => 'pg_stat_get_autoanalyze_count' }, +{ oid => '1936', descr => 'statistics: currently active backend IDs', + proname => 'pg_stat_get_backend_idset', prorows => '100', proretset => 't', + provolatile => 's', proparallel => 'r', prorettype => 'int4', + proargtypes => '', prosrc => 'pg_stat_get_backend_idset' }, +{ oid => '2022', + descr => 'statistics: information about currently active backends', + proname => 'pg_stat_get_activity', prorows => '100', proisstrict => 'f', + proretset => 't', provolatile => 's', proparallel => 'r', + prorettype => 'record', proargtypes => 'int4', + proallargtypes => '{int4,oid,int4,oid,text,text,text,text,text,timestamptz,timestamptz,timestamptz,timestamptz,inet,text,int4,xid,xid,text,bool,text,text,int4,bool,text}', + proargmodes => '{i,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o}', + proargnames => '{pid,datid,pid,usesysid,application_name,state,query,wait_event_type,wait_event,xact_start,query_start,backend_start,state_change,client_addr,client_hostname,client_port,backend_xid,backend_xmin,backend_type,ssl,sslversion,sslcipher,sslbits,sslcompression,sslclientdn}', + prosrc => 'pg_stat_get_activity' }, +{ oid => '3318', + descr => 'statistics: information about progress of backends running maintenance command', + proname => 'pg_stat_get_progress_info', prorows => '100', proretset => 't', + provolatile => 's', proparallel => 'r', prorettype => 'record', + proargtypes => 'text', + proallargtypes => '{text,int4,oid,oid,int8,int8,int8,int8,int8,int8,int8,int8,int8,int8}', + proargmodes => '{i,o,o,o,o,o,o,o,o,o,o,o,o,o}', + proargnames => '{cmdtype,pid,datid,relid,param1,param2,param3,param4,param5,param6,param7,param8,param9,param10}', + prosrc => 'pg_stat_get_progress_info' }, +{ oid => '3099', + descr => 'statistics: information about currently active replication', + proname => 'pg_stat_get_wal_senders', prorows => '10', proisstrict => 'f', + proretset => 't', provolatile => 's', proparallel => 'r', + prorettype => 'record', proargtypes => '', + proallargtypes => '{int4,text,pg_lsn,pg_lsn,pg_lsn,pg_lsn,interval,interval,interval,int4,text}', + proargmodes => '{o,o,o,o,o,o,o,o,o,o,o}', + proargnames => '{pid,state,sent_lsn,write_lsn,flush_lsn,replay_lsn,write_lag,flush_lag,replay_lag,sync_priority,sync_state}', + prosrc => 'pg_stat_get_wal_senders' }, +{ oid => '3317', descr => 'statistics: information about WAL receiver', + proname => 'pg_stat_get_wal_receiver', proisstrict => 'f', provolatile => 's', + proparallel => 'r', prorettype => 'record', proargtypes => '', + proallargtypes => '{int4,text,pg_lsn,int4,pg_lsn,int4,timestamptz,timestamptz,pg_lsn,timestamptz,text,text,int4,text}', + proargmodes => '{o,o,o,o,o,o,o,o,o,o,o,o,o,o}', + proargnames => '{pid,status,receive_start_lsn,receive_start_tli,received_lsn,received_tli,last_msg_send_time,last_msg_receipt_time,latest_end_lsn,latest_end_time,slot_name,sender_host,sender_port,conninfo}', + prosrc => 'pg_stat_get_wal_receiver' }, +{ oid => '6118', descr => 'statistics: information about subscription', + proname => 'pg_stat_get_subscription', proisstrict => 'f', provolatile => 's', + proparallel => 'r', prorettype => 'record', proargtypes => 'oid', + proallargtypes => '{oid,oid,oid,int4,pg_lsn,timestamptz,timestamptz,pg_lsn,timestamptz}', + proargmodes => '{i,o,o,o,o,o,o,o,o}', + proargnames => '{subid,subid,relid,pid,received_lsn,last_msg_send_time,last_msg_receipt_time,latest_end_lsn,latest_end_time}', + prosrc => 'pg_stat_get_subscription' }, +{ oid => '2026', descr => 'statistics: current backend PID', + proname => 'pg_backend_pid', provolatile => 's', proparallel => 'r', + prorettype => 'int4', proargtypes => '', prosrc => 'pg_backend_pid' }, +{ oid => '1937', descr => 'statistics: PID of backend', + proname => 'pg_stat_get_backend_pid', provolatile => 's', proparallel => 'r', + prorettype => 'int4', proargtypes => 'int4', + prosrc => 'pg_stat_get_backend_pid' }, +{ oid => '1938', descr => 'statistics: database ID of backend', + proname => 'pg_stat_get_backend_dbid', provolatile => 's', proparallel => 'r', + prorettype => 'oid', proargtypes => 'int4', + prosrc => 'pg_stat_get_backend_dbid' }, +{ oid => '1939', descr => 'statistics: user ID of backend', + proname => 'pg_stat_get_backend_userid', provolatile => 's', + proparallel => 'r', prorettype => 'oid', proargtypes => 'int4', + prosrc => 'pg_stat_get_backend_userid' }, +{ oid => '1940', descr => 'statistics: current query of backend', + proname => 'pg_stat_get_backend_activity', provolatile => 's', + proparallel => 'r', prorettype => 'text', proargtypes => 'int4', + prosrc => 'pg_stat_get_backend_activity' }, +{ oid => '2788', + descr => 'statistics: wait event type on which backend is currently waiting', + proname => 'pg_stat_get_backend_wait_event_type', provolatile => 's', + proparallel => 'r', prorettype => 'text', proargtypes => 'int4', + prosrc => 'pg_stat_get_backend_wait_event_type' }, +{ oid => '2853', + descr => 'statistics: wait event on which backend is currently waiting', + proname => 'pg_stat_get_backend_wait_event', provolatile => 's', + proparallel => 'r', prorettype => 'text', proargtypes => 'int4', + prosrc => 'pg_stat_get_backend_wait_event' }, +{ oid => '2094', + descr => 'statistics: start time for current query of backend', + proname => 'pg_stat_get_backend_activity_start', provolatile => 's', + proparallel => 'r', prorettype => 'timestamptz', proargtypes => 'int4', + prosrc => 'pg_stat_get_backend_activity_start' }, +{ oid => '2857', + descr => 'statistics: start time for backend\'s current transaction', + proname => 'pg_stat_get_backend_xact_start', provolatile => 's', + proparallel => 'r', prorettype => 'timestamptz', proargtypes => 'int4', + prosrc => 'pg_stat_get_backend_xact_start' }, +{ oid => '1391', + descr => 'statistics: start time for current backend session', + proname => 'pg_stat_get_backend_start', provolatile => 's', + proparallel => 'r', prorettype => 'timestamptz', proargtypes => 'int4', + prosrc => 'pg_stat_get_backend_start' }, +{ oid => '1392', + descr => 'statistics: address of client connected to backend', + proname => 'pg_stat_get_backend_client_addr', provolatile => 's', + proparallel => 'r', prorettype => 'inet', proargtypes => 'int4', + prosrc => 'pg_stat_get_backend_client_addr' }, +{ oid => '1393', + descr => 'statistics: port number of client connected to backend', + proname => 'pg_stat_get_backend_client_port', provolatile => 's', + proparallel => 'r', prorettype => 'int4', proargtypes => 'int4', + prosrc => 'pg_stat_get_backend_client_port' }, +{ oid => '1941', descr => 'statistics: number of backends in database', + proname => 'pg_stat_get_db_numbackends', provolatile => 's', + proparallel => 'r', prorettype => 'int4', proargtypes => 'oid', + prosrc => 'pg_stat_get_db_numbackends' }, +{ oid => '1942', descr => 'statistics: transactions committed', + proname => 'pg_stat_get_db_xact_commit', provolatile => 's', + proparallel => 'r', prorettype => 'int8', proargtypes => 'oid', + prosrc => 'pg_stat_get_db_xact_commit' }, +{ oid => '1943', descr => 'statistics: transactions rolled back', + proname => 'pg_stat_get_db_xact_rollback', provolatile => 's', + proparallel => 'r', prorettype => 'int8', proargtypes => 'oid', + prosrc => 'pg_stat_get_db_xact_rollback' }, +{ oid => '1944', descr => 'statistics: blocks fetched for database', + proname => 'pg_stat_get_db_blocks_fetched', provolatile => 's', + proparallel => 'r', prorettype => 'int8', proargtypes => 'oid', + prosrc => 'pg_stat_get_db_blocks_fetched' }, +{ oid => '1945', descr => 'statistics: blocks found in cache for database', + proname => 'pg_stat_get_db_blocks_hit', provolatile => 's', + proparallel => 'r', prorettype => 'int8', proargtypes => 'oid', + prosrc => 'pg_stat_get_db_blocks_hit' }, +{ oid => '2758', descr => 'statistics: tuples returned for database', + proname => 'pg_stat_get_db_tuples_returned', provolatile => 's', + proparallel => 'r', prorettype => 'int8', proargtypes => 'oid', + prosrc => 'pg_stat_get_db_tuples_returned' }, +{ oid => '2759', descr => 'statistics: tuples fetched for database', + proname => 'pg_stat_get_db_tuples_fetched', provolatile => 's', + proparallel => 'r', prorettype => 'int8', proargtypes => 'oid', + prosrc => 'pg_stat_get_db_tuples_fetched' }, +{ oid => '2760', descr => 'statistics: tuples inserted in database', + proname => 'pg_stat_get_db_tuples_inserted', provolatile => 's', + proparallel => 'r', prorettype => 'int8', proargtypes => 'oid', + prosrc => 'pg_stat_get_db_tuples_inserted' }, +{ oid => '2761', descr => 'statistics: tuples updated in database', + proname => 'pg_stat_get_db_tuples_updated', provolatile => 's', + proparallel => 'r', prorettype => 'int8', proargtypes => 'oid', + prosrc => 'pg_stat_get_db_tuples_updated' }, +{ oid => '2762', descr => 'statistics: tuples deleted in database', + proname => 'pg_stat_get_db_tuples_deleted', provolatile => 's', + proparallel => 'r', prorettype => 'int8', proargtypes => 'oid', + prosrc => 'pg_stat_get_db_tuples_deleted' }, +{ oid => '3065', + descr => 'statistics: recovery conflicts in database caused by drop tablespace', + proname => 'pg_stat_get_db_conflict_tablespace', provolatile => 's', + proparallel => 'r', prorettype => 'int8', proargtypes => 'oid', + prosrc => 'pg_stat_get_db_conflict_tablespace' }, +{ oid => '3066', + descr => 'statistics: recovery conflicts in database caused by relation lock', + proname => 'pg_stat_get_db_conflict_lock', provolatile => 's', + proparallel => 'r', prorettype => 'int8', proargtypes => 'oid', + prosrc => 'pg_stat_get_db_conflict_lock' }, +{ oid => '3067', + descr => 'statistics: recovery conflicts in database caused by snapshot expiry', + proname => 'pg_stat_get_db_conflict_snapshot', provolatile => 's', + proparallel => 'r', prorettype => 'int8', proargtypes => 'oid', + prosrc => 'pg_stat_get_db_conflict_snapshot' }, +{ oid => '3068', + descr => 'statistics: recovery conflicts in database caused by shared buffer pin', + proname => 'pg_stat_get_db_conflict_bufferpin', provolatile => 's', + proparallel => 'r', prorettype => 'int8', proargtypes => 'oid', + prosrc => 'pg_stat_get_db_conflict_bufferpin' }, +{ oid => '3069', + descr => 'statistics: recovery conflicts in database caused by buffer deadlock', + proname => 'pg_stat_get_db_conflict_startup_deadlock', provolatile => 's', + proparallel => 'r', prorettype => 'int8', proargtypes => 'oid', + prosrc => 'pg_stat_get_db_conflict_startup_deadlock' }, +{ oid => '3070', descr => 'statistics: recovery conflicts in database', + proname => 'pg_stat_get_db_conflict_all', provolatile => 's', + proparallel => 'r', prorettype => 'int8', proargtypes => 'oid', + prosrc => 'pg_stat_get_db_conflict_all' }, +{ oid => '3152', descr => 'statistics: deadlocks detected in database', + proname => 'pg_stat_get_db_deadlocks', provolatile => 's', proparallel => 'r', + prorettype => 'int8', proargtypes => 'oid', + prosrc => 'pg_stat_get_db_deadlocks' }, +{ oid => '3074', descr => 'statistics: last reset for a database', + proname => 'pg_stat_get_db_stat_reset_time', provolatile => 's', + proparallel => 'r', prorettype => 'timestamptz', proargtypes => 'oid', + prosrc => 'pg_stat_get_db_stat_reset_time' }, +{ oid => '3150', descr => 'statistics: number of temporary files written', + proname => 'pg_stat_get_db_temp_files', provolatile => 's', + proparallel => 'r', prorettype => 'int8', proargtypes => 'oid', + prosrc => 'pg_stat_get_db_temp_files' }, +{ oid => '3151', + descr => 'statistics: number of bytes in temporary files written', + proname => 'pg_stat_get_db_temp_bytes', provolatile => 's', + proparallel => 'r', prorettype => 'int8', proargtypes => 'oid', + prosrc => 'pg_stat_get_db_temp_bytes' }, +{ oid => '2844', descr => 'statistics: block read time, in milliseconds', + proname => 'pg_stat_get_db_blk_read_time', provolatile => 's', + proparallel => 'r', prorettype => 'float8', proargtypes => 'oid', + prosrc => 'pg_stat_get_db_blk_read_time' }, +{ oid => '2845', descr => 'statistics: block write time, in milliseconds', + proname => 'pg_stat_get_db_blk_write_time', provolatile => 's', + proparallel => 'r', prorettype => 'float8', proargtypes => 'oid', + prosrc => 'pg_stat_get_db_blk_write_time' }, +{ oid => '3195', descr => 'statistics: information about WAL archiver', + proname => 'pg_stat_get_archiver', proisstrict => 'f', provolatile => 's', + proparallel => 'r', prorettype => 'record', proargtypes => '', + proallargtypes => '{int8,text,timestamptz,int8,text,timestamptz,timestamptz}', + proargmodes => '{o,o,o,o,o,o,o}', + proargnames => '{archived_count,last_archived_wal,last_archived_time,failed_count,last_failed_wal,last_failed_time,stats_reset}', + prosrc => 'pg_stat_get_archiver' }, +{ oid => '2769', + descr => 'statistics: number of timed checkpoints started by the bgwriter', + proname => 'pg_stat_get_bgwriter_timed_checkpoints', provolatile => 's', + proparallel => 'r', prorettype => 'int8', proargtypes => '', + prosrc => 'pg_stat_get_bgwriter_timed_checkpoints' }, +{ oid => '2770', + descr => 'statistics: number of backend requested checkpoints started by the bgwriter', + proname => 'pg_stat_get_bgwriter_requested_checkpoints', provolatile => 's', + proparallel => 'r', prorettype => 'int8', proargtypes => '', + prosrc => 'pg_stat_get_bgwriter_requested_checkpoints' }, +{ oid => '2771', + descr => 'statistics: number of buffers written by the bgwriter during checkpoints', + proname => 'pg_stat_get_bgwriter_buf_written_checkpoints', provolatile => 's', + proparallel => 'r', prorettype => 'int8', proargtypes => '', + prosrc => 'pg_stat_get_bgwriter_buf_written_checkpoints' }, +{ oid => '2772', + descr => 'statistics: number of buffers written by the bgwriter for cleaning dirty buffers', + proname => 'pg_stat_get_bgwriter_buf_written_clean', provolatile => 's', + proparallel => 'r', prorettype => 'int8', proargtypes => '', + prosrc => 'pg_stat_get_bgwriter_buf_written_clean' }, +{ oid => '2773', + descr => 'statistics: number of times the bgwriter stopped processing when it had written too many buffers while cleaning', + proname => 'pg_stat_get_bgwriter_maxwritten_clean', provolatile => 's', + proparallel => 'r', prorettype => 'int8', proargtypes => '', + prosrc => 'pg_stat_get_bgwriter_maxwritten_clean' }, +{ oid => '3075', descr => 'statistics: last reset for the bgwriter', + proname => 'pg_stat_get_bgwriter_stat_reset_time', provolatile => 's', + proparallel => 'r', prorettype => 'timestamptz', proargtypes => '', + prosrc => 'pg_stat_get_bgwriter_stat_reset_time' }, +{ oid => '3160', + descr => 'statistics: checkpoint time spent writing buffers to disk, in milliseconds', + proname => 'pg_stat_get_checkpoint_write_time', provolatile => 's', + proparallel => 'r', prorettype => 'float8', proargtypes => '', + prosrc => 'pg_stat_get_checkpoint_write_time' }, +{ oid => '3161', + descr => 'statistics: checkpoint time spent synchronizing buffers to disk, in milliseconds', + proname => 'pg_stat_get_checkpoint_sync_time', provolatile => 's', + proparallel => 'r', prorettype => 'float8', proargtypes => '', + prosrc => 'pg_stat_get_checkpoint_sync_time' }, +{ oid => '2775', descr => 'statistics: number of buffers written by backends', + proname => 'pg_stat_get_buf_written_backend', provolatile => 's', + proparallel => 'r', prorettype => 'int8', proargtypes => '', + prosrc => 'pg_stat_get_buf_written_backend' }, +{ oid => '3063', + descr => 'statistics: number of backend buffer writes that did their own fsync', + proname => 'pg_stat_get_buf_fsync_backend', provolatile => 's', + proparallel => 'r', prorettype => 'int8', proargtypes => '', + prosrc => 'pg_stat_get_buf_fsync_backend' }, +{ oid => '2859', descr => 'statistics: number of buffer allocations', + proname => 'pg_stat_get_buf_alloc', provolatile => 's', proparallel => 'r', + prorettype => 'int8', proargtypes => '', prosrc => 'pg_stat_get_buf_alloc' }, + +{ oid => '2978', descr => 'statistics: number of function calls', + proname => 'pg_stat_get_function_calls', provolatile => 's', + proparallel => 'r', prorettype => 'int8', proargtypes => 'oid', + prosrc => 'pg_stat_get_function_calls' }, +{ oid => '2979', + descr => 'statistics: total execution time of function, in milliseconds', + proname => 'pg_stat_get_function_total_time', provolatile => 's', + proparallel => 'r', prorettype => 'float8', proargtypes => 'oid', + prosrc => 'pg_stat_get_function_total_time' }, +{ oid => '2980', + descr => 'statistics: self execution time of function, in milliseconds', + proname => 'pg_stat_get_function_self_time', provolatile => 's', + proparallel => 'r', prorettype => 'float8', proargtypes => 'oid', + prosrc => 'pg_stat_get_function_self_time' }, + +{ oid => '3037', + descr => 'statistics: number of scans done for table/index in current transaction', + proname => 'pg_stat_get_xact_numscans', provolatile => 'v', + proparallel => 'r', prorettype => 'int8', proargtypes => 'oid', + prosrc => 'pg_stat_get_xact_numscans' }, +{ oid => '3038', + descr => 'statistics: number of tuples read by seqscan in current transaction', + proname => 'pg_stat_get_xact_tuples_returned', provolatile => 'v', + proparallel => 'r', prorettype => 'int8', proargtypes => 'oid', + prosrc => 'pg_stat_get_xact_tuples_returned' }, +{ oid => '3039', + descr => 'statistics: number of tuples fetched by idxscan in current transaction', + proname => 'pg_stat_get_xact_tuples_fetched', provolatile => 'v', + proparallel => 'r', prorettype => 'int8', proargtypes => 'oid', + prosrc => 'pg_stat_get_xact_tuples_fetched' }, +{ oid => '3040', + descr => 'statistics: number of tuples inserted in current transaction', + proname => 'pg_stat_get_xact_tuples_inserted', provolatile => 'v', + proparallel => 'r', prorettype => 'int8', proargtypes => 'oid', + prosrc => 'pg_stat_get_xact_tuples_inserted' }, +{ oid => '3041', + descr => 'statistics: number of tuples updated in current transaction', + proname => 'pg_stat_get_xact_tuples_updated', provolatile => 'v', + proparallel => 'r', prorettype => 'int8', proargtypes => 'oid', + prosrc => 'pg_stat_get_xact_tuples_updated' }, +{ oid => '3042', + descr => 'statistics: number of tuples deleted in current transaction', + proname => 'pg_stat_get_xact_tuples_deleted', provolatile => 'v', + proparallel => 'r', prorettype => 'int8', proargtypes => 'oid', + prosrc => 'pg_stat_get_xact_tuples_deleted' }, +{ oid => '3043', + descr => 'statistics: number of tuples hot updated in current transaction', + proname => 'pg_stat_get_xact_tuples_hot_updated', provolatile => 'v', + proparallel => 'r', prorettype => 'int8', proargtypes => 'oid', + prosrc => 'pg_stat_get_xact_tuples_hot_updated' }, +{ oid => '3044', + descr => 'statistics: number of blocks fetched in current transaction', + proname => 'pg_stat_get_xact_blocks_fetched', provolatile => 'v', + proparallel => 'r', prorettype => 'int8', proargtypes => 'oid', + prosrc => 'pg_stat_get_xact_blocks_fetched' }, +{ oid => '3045', + descr => 'statistics: number of blocks found in cache in current transaction', + proname => 'pg_stat_get_xact_blocks_hit', provolatile => 'v', + proparallel => 'r', prorettype => 'int8', proargtypes => 'oid', + prosrc => 'pg_stat_get_xact_blocks_hit' }, +{ oid => '3046', + descr => 'statistics: number of function calls in current transaction', + proname => 'pg_stat_get_xact_function_calls', provolatile => 'v', + proparallel => 'r', prorettype => 'int8', proargtypes => 'oid', + prosrc => 'pg_stat_get_xact_function_calls' }, +{ oid => '3047', + descr => 'statistics: total execution time of function in current transaction, in milliseconds', + proname => 'pg_stat_get_xact_function_total_time', provolatile => 'v', + proparallel => 'r', prorettype => 'float8', proargtypes => 'oid', + prosrc => 'pg_stat_get_xact_function_total_time' }, +{ oid => '3048', + descr => 'statistics: self execution time of function in current transaction, in milliseconds', + proname => 'pg_stat_get_xact_function_self_time', provolatile => 'v', + proparallel => 'r', prorettype => 'float8', proargtypes => 'oid', + prosrc => 'pg_stat_get_xact_function_self_time' }, + +{ oid => '3788', + descr => 'statistics: timestamp of the current statistics snapshot', + proname => 'pg_stat_get_snapshot_timestamp', provolatile => 's', + proparallel => 'r', prorettype => 'timestamptz', proargtypes => '', + prosrc => 'pg_stat_get_snapshot_timestamp' }, +{ oid => '2230', + descr => 'statistics: discard current transaction\'s statistics snapshot', + proname => 'pg_stat_clear_snapshot', proisstrict => 'f', provolatile => 'v', + proparallel => 'r', prorettype => 'void', proargtypes => '', + prosrc => 'pg_stat_clear_snapshot' }, +{ oid => '2274', + descr => 'statistics: reset collected statistics for current database', + proname => 'pg_stat_reset', proisstrict => 'f', provolatile => 'v', + prorettype => 'void', proargtypes => '', prosrc => 'pg_stat_reset' }, +{ oid => '3775', + descr => 'statistics: reset collected statistics shared across the cluster', + proname => 'pg_stat_reset_shared', provolatile => 'v', prorettype => 'void', + proargtypes => 'text', prosrc => 'pg_stat_reset_shared' }, +{ oid => '3776', + descr => 'statistics: reset collected statistics for a single table or index in the current database', + proname => 'pg_stat_reset_single_table_counters', provolatile => 'v', + prorettype => 'void', proargtypes => 'oid', + prosrc => 'pg_stat_reset_single_table_counters' }, +{ oid => '3777', + descr => 'statistics: reset collected statistics for a single function in the current database', + proname => 'pg_stat_reset_single_function_counters', provolatile => 'v', + prorettype => 'void', proargtypes => 'oid', + prosrc => 'pg_stat_reset_single_function_counters' }, + +{ oid => '3163', descr => 'current trigger depth', + proname => 'pg_trigger_depth', provolatile => 's', proparallel => 'r', + prorettype => 'int4', proargtypes => '', prosrc => 'pg_trigger_depth' }, + +{ oid => '3778', descr => 'tablespace location', + proname => 'pg_tablespace_location', provolatile => 's', prorettype => 'text', + proargtypes => 'oid', prosrc => 'pg_tablespace_location' }, + +{ oid => '1946', + descr => 'convert bytea value into some ascii-only text string', + proname => 'encode', prorettype => 'text', proargtypes => 'bytea text', + prosrc => 'binary_encode' }, +{ oid => '1947', + descr => 'convert ascii-encoded text string into bytea value', + proname => 'decode', prorettype => 'bytea', proargtypes => 'text text', + prosrc => 'binary_decode' }, + +{ oid => '1948', + proname => 'byteaeq', proleakproof => 't', prorettype => 'bool', + proargtypes => 'bytea bytea', prosrc => 'byteaeq' }, +{ oid => '1949', + proname => 'bytealt', proleakproof => 't', prorettype => 'bool', + proargtypes => 'bytea bytea', prosrc => 'bytealt' }, +{ oid => '1950', + proname => 'byteale', proleakproof => 't', prorettype => 'bool', + proargtypes => 'bytea bytea', prosrc => 'byteale' }, +{ oid => '1951', + proname => 'byteagt', proleakproof => 't', prorettype => 'bool', + proargtypes => 'bytea bytea', prosrc => 'byteagt' }, +{ oid => '1952', + proname => 'byteage', proleakproof => 't', prorettype => 'bool', + proargtypes => 'bytea bytea', prosrc => 'byteage' }, +{ oid => '1953', + proname => 'byteane', proleakproof => 't', prorettype => 'bool', + proargtypes => 'bytea bytea', prosrc => 'byteane' }, +{ oid => '1954', descr => 'less-equal-greater', + proname => 'byteacmp', prorettype => 'int4', proargtypes => 'bytea bytea', + prosrc => 'byteacmp' }, +{ oid => '3331', descr => 'sort support', + proname => 'bytea_sortsupport', prorettype => 'void', + proargtypes => 'internal', prosrc => 'bytea_sortsupport' }, + +{ oid => '3917', descr => 'transform a timestamp length coercion', + proname => 'timestamp_transform', prorettype => 'internal', + proargtypes => 'internal', prosrc => 'timestamp_transform' }, +{ oid => '3944', descr => 'transform a time length coercion', + proname => 'time_transform', prorettype => 'internal', + proargtypes => 'internal', prosrc => 'time_transform' }, + +{ oid => '1961', descr => 'adjust timestamp precision', + proname => 'timestamp', protransform => 'timestamp_transform', + prorettype => 'timestamp', proargtypes => 'timestamp int4', + prosrc => 'timestamp_scale' }, + +{ oid => '1965', descr => 'larger of two', + proname => 'oidlarger', prorettype => 'oid', proargtypes => 'oid oid', + prosrc => 'oidlarger' }, +{ oid => '1966', descr => 'smaller of two', + proname => 'oidsmaller', prorettype => 'oid', proargtypes => 'oid oid', + prosrc => 'oidsmaller' }, + +{ oid => '1967', descr => 'adjust timestamptz precision', + proname => 'timestamptz', protransform => 'timestamp_transform', + prorettype => 'timestamptz', proargtypes => 'timestamptz int4', + prosrc => 'timestamptz_scale' }, +{ oid => '1968', descr => 'adjust time precision', + proname => 'time', protransform => 'time_transform', prorettype => 'time', + proargtypes => 'time int4', prosrc => 'time_scale' }, +{ oid => '1969', descr => 'adjust time with time zone precision', + proname => 'timetz', protransform => 'time_transform', prorettype => 'timetz', + proargtypes => 'timetz int4', prosrc => 'timetz_scale' }, + +{ oid => '2003', + proname => 'textanycat', prolang => '14', provolatile => 's', + prorettype => 'text', proargtypes => 'text anynonarray', + prosrc => 'select $1 || $2::pg_catalog.text' }, +{ oid => '2004', + proname => 'anytextcat', prolang => '14', provolatile => 's', + prorettype => 'text', proargtypes => 'anynonarray text', + prosrc => 'select $1::pg_catalog.text || $2' }, + +{ oid => '2005', + proname => 'bytealike', prorettype => 'bool', proargtypes => 'bytea bytea', + prosrc => 'bytealike' }, +{ oid => '2006', + proname => 'byteanlike', prorettype => 'bool', proargtypes => 'bytea bytea', + prosrc => 'byteanlike' }, +{ oid => '2007', descr => 'matches LIKE expression', + proname => 'like', prorettype => 'bool', proargtypes => 'bytea bytea', + prosrc => 'bytealike' }, +{ oid => '2008', descr => 'does not match LIKE expression', + proname => 'notlike', prorettype => 'bool', proargtypes => 'bytea bytea', + prosrc => 'byteanlike' }, +{ oid => '2009', descr => 'convert LIKE pattern to use backslash escapes', + proname => 'like_escape', prorettype => 'bytea', proargtypes => 'bytea bytea', + prosrc => 'like_escape_bytea' }, +{ oid => '2010', descr => 'octet length', + proname => 'length', prorettype => 'int4', proargtypes => 'bytea', + prosrc => 'byteaoctetlen' }, +{ oid => '2011', + proname => 'byteacat', prorettype => 'bytea', proargtypes => 'bytea bytea', + prosrc => 'byteacat' }, +{ oid => '2012', descr => 'extract portion of string', + proname => 'substring', prorettype => 'bytea', + proargtypes => 'bytea int4 int4', prosrc => 'bytea_substr' }, +{ oid => '2013', descr => 'extract portion of string', + proname => 'substring', prorettype => 'bytea', proargtypes => 'bytea int4', + prosrc => 'bytea_substr_no_len' }, +{ oid => '2085', descr => 'extract portion of string', + proname => 'substr', prorettype => 'bytea', proargtypes => 'bytea int4 int4', + prosrc => 'bytea_substr' }, +{ oid => '2086', descr => 'extract portion of string', + proname => 'substr', prorettype => 'bytea', proargtypes => 'bytea int4', + prosrc => 'bytea_substr_no_len' }, +{ oid => '2014', descr => 'position of substring', + proname => 'position', prorettype => 'int4', proargtypes => 'bytea bytea', + prosrc => 'byteapos' }, +{ oid => '2015', descr => 'trim both ends of string', + proname => 'btrim', prorettype => 'bytea', proargtypes => 'bytea bytea', + prosrc => 'byteatrim' }, + +{ oid => '2019', descr => 'convert timestamp with time zone to time', + proname => 'time', provolatile => 's', prorettype => 'time', + proargtypes => 'timestamptz', prosrc => 'timestamptz_time' }, +{ oid => '2020', descr => 'truncate timestamp to specified units', + proname => 'date_trunc', prorettype => 'timestamp', + proargtypes => 'text timestamp', prosrc => 'timestamp_trunc' }, +{ oid => '2021', descr => 'extract field from timestamp', + proname => 'date_part', prorettype => 'float8', + proargtypes => 'text timestamp', prosrc => 'timestamp_part' }, +{ oid => '2023', descr => 'convert abstime to timestamp', + proname => 'timestamp', provolatile => 's', prorettype => 'timestamp', + proargtypes => 'abstime', prosrc => 'abstime_timestamp' }, +{ oid => '2024', descr => 'convert date to timestamp', + proname => 'timestamp', prorettype => 'timestamp', proargtypes => 'date', + prosrc => 'date_timestamp' }, +{ oid => '2025', descr => 'convert date and time to timestamp', + proname => 'timestamp', prorettype => 'timestamp', proargtypes => 'date time', + prosrc => 'datetime_timestamp' }, +{ oid => '2027', descr => 'convert timestamp with time zone to timestamp', + proname => 'timestamp', provolatile => 's', prorettype => 'timestamp', + proargtypes => 'timestamptz', prosrc => 'timestamptz_timestamp' }, +{ oid => '2028', descr => 'convert timestamp to timestamp with time zone', + proname => 'timestamptz', provolatile => 's', prorettype => 'timestamptz', + proargtypes => 'timestamp', prosrc => 'timestamp_timestamptz' }, +{ oid => '2029', descr => 'convert timestamp to date', + proname => 'date', prorettype => 'date', proargtypes => 'timestamp', + prosrc => 'timestamp_date' }, +{ oid => '2030', descr => 'convert timestamp to abstime', + proname => 'abstime', provolatile => 's', prorettype => 'abstime', + proargtypes => 'timestamp', prosrc => 'timestamp_abstime' }, +{ oid => '2031', + proname => 'timestamp_mi', prorettype => 'interval', + proargtypes => 'timestamp timestamp', prosrc => 'timestamp_mi' }, +{ oid => '2032', + proname => 'timestamp_pl_interval', prorettype => 'timestamp', + proargtypes => 'timestamp interval', prosrc => 'timestamp_pl_interval' }, +{ oid => '2033', + proname => 'timestamp_mi_interval', prorettype => 'timestamp', + proargtypes => 'timestamp interval', prosrc => 'timestamp_mi_interval' }, +{ oid => '2035', descr => 'smaller of two', + proname => 'timestamp_smaller', prorettype => 'timestamp', + proargtypes => 'timestamp timestamp', prosrc => 'timestamp_smaller' }, +{ oid => '2036', descr => 'larger of two', + proname => 'timestamp_larger', prorettype => 'timestamp', + proargtypes => 'timestamp timestamp', prosrc => 'timestamp_larger' }, +{ oid => '2037', descr => 'adjust time with time zone to new zone', + proname => 'timezone', provolatile => 'v', prorettype => 'timetz', + proargtypes => 'text timetz', prosrc => 'timetz_zone' }, +{ oid => '2038', descr => 'adjust time with time zone to new zone', + proname => 'timezone', prorettype => 'timetz', + proargtypes => 'interval timetz', prosrc => 'timetz_izone' }, +{ oid => '2039', descr => 'hash', + proname => 'timestamp_hash', prorettype => 'int4', proargtypes => 'timestamp', + prosrc => 'timestamp_hash' }, +{ oid => '3411', descr => 'hash', + proname => 'timestamp_hash_extended', prorettype => 'int8', + proargtypes => 'timestamp int8', prosrc => 'timestamp_hash_extended' }, +{ oid => '2041', descr => 'intervals overlap?', + proname => 'overlaps', proisstrict => 'f', prorettype => 'bool', + proargtypes => 'timestamp timestamp timestamp timestamp', + prosrc => 'overlaps_timestamp' }, +{ oid => '2042', descr => 'intervals overlap?', + proname => 'overlaps', prolang => '14', proisstrict => 'f', + prorettype => 'bool', proargtypes => 'timestamp interval timestamp interval', + prosrc => 'select ($1, ($1 + $2)) overlaps ($3, ($3 + $4))' }, +{ oid => '2043', descr => 'intervals overlap?', + proname => 'overlaps', prolang => '14', proisstrict => 'f', + prorettype => 'bool', proargtypes => 'timestamp timestamp timestamp interval', + prosrc => 'select ($1, $2) overlaps ($3, ($3 + $4))' }, +{ oid => '2044', descr => 'intervals overlap?', + proname => 'overlaps', prolang => '14', proisstrict => 'f', + prorettype => 'bool', proargtypes => 'timestamp interval timestamp timestamp', + prosrc => 'select ($1, ($1 + $2)) overlaps ($3, $4)' }, +{ oid => '2045', descr => 'less-equal-greater', + proname => 'timestamp_cmp', prorettype => 'int4', + proargtypes => 'timestamp timestamp', prosrc => 'timestamp_cmp' }, +{ oid => '3137', descr => 'sort support', + proname => 'timestamp_sortsupport', prorettype => 'void', + proargtypes => 'internal', prosrc => 'timestamp_sortsupport' }, + +{ oid => '4134', descr => 'window RANGE support', + proname => 'in_range', prorettype => 'bool', + proargtypes => 'timestamp timestamp interval bool bool', + prosrc => 'in_range_timestamp_interval' }, +{ oid => '4135', descr => 'window RANGE support', + proname => 'in_range', provolatile => 's', prorettype => 'bool', + proargtypes => 'timestamptz timestamptz interval bool bool', + prosrc => 'in_range_timestamptz_interval' }, +{ oid => '4136', descr => 'window RANGE support', + proname => 'in_range', prorettype => 'bool', + proargtypes => 'interval interval interval bool bool', + prosrc => 'in_range_interval_interval' }, +{ oid => '4137', descr => 'window RANGE support', + proname => 'in_range', prorettype => 'bool', + proargtypes => 'time time interval bool bool', + prosrc => 'in_range_time_interval' }, +{ oid => '4138', descr => 'window RANGE support', + proname => 'in_range', prorettype => 'bool', + proargtypes => 'timetz timetz interval bool bool', + prosrc => 'in_range_timetz_interval' }, + +{ oid => '2046', descr => 'convert time with time zone to time', + proname => 'time', prorettype => 'time', proargtypes => 'timetz', + prosrc => 'timetz_time' }, +{ oid => '2047', descr => 'convert time to time with time zone', + proname => 'timetz', provolatile => 's', prorettype => 'timetz', + proargtypes => 'time', prosrc => 'time_timetz' }, +{ oid => '2048', descr => 'finite timestamp?', + proname => 'isfinite', prorettype => 'bool', proargtypes => 'timestamp', + prosrc => 'timestamp_finite' }, +{ oid => '2049', descr => 'format timestamp to text', + proname => 'to_char', provolatile => 's', prorettype => 'text', + proargtypes => 'timestamp text', prosrc => 'timestamp_to_char' }, +{ oid => '2052', + proname => 'timestamp_eq', proleakproof => 't', prorettype => 'bool', + proargtypes => 'timestamp timestamp', prosrc => 'timestamp_eq' }, +{ oid => '2053', + proname => 'timestamp_ne', proleakproof => 't', prorettype => 'bool', + proargtypes => 'timestamp timestamp', prosrc => 'timestamp_ne' }, +{ oid => '2054', + proname => 'timestamp_lt', proleakproof => 't', prorettype => 'bool', + proargtypes => 'timestamp timestamp', prosrc => 'timestamp_lt' }, +{ oid => '2055', + proname => 'timestamp_le', proleakproof => 't', prorettype => 'bool', + proargtypes => 'timestamp timestamp', prosrc => 'timestamp_le' }, +{ oid => '2056', + proname => 'timestamp_ge', proleakproof => 't', prorettype => 'bool', + proargtypes => 'timestamp timestamp', prosrc => 'timestamp_ge' }, +{ oid => '2057', + proname => 'timestamp_gt', proleakproof => 't', prorettype => 'bool', + proargtypes => 'timestamp timestamp', prosrc => 'timestamp_gt' }, +{ oid => '2058', descr => 'date difference preserving months and years', + proname => 'age', prorettype => 'interval', + proargtypes => 'timestamp timestamp', prosrc => 'timestamp_age' }, +{ oid => '2059', + descr => 'date difference from today preserving months and years', + proname => 'age', prolang => '14', provolatile => 's', + prorettype => 'interval', proargtypes => 'timestamp', + prosrc => 'select pg_catalog.age(cast(current_date as timestamp without time zone), $1)' }, + +{ oid => '2069', descr => 'adjust timestamp to new time zone', + proname => 'timezone', protransform => 'timestamp_zone_transform', + prorettype => 'timestamptz', proargtypes => 'text timestamp', + prosrc => 'timestamp_zone' }, +{ oid => '2070', descr => 'adjust timestamp to new time zone', + proname => 'timezone', protransform => 'timestamp_izone_transform', + prorettype => 'timestamptz', proargtypes => 'interval timestamp', + prosrc => 'timestamp_izone' }, +{ oid => '2071', + proname => 'date_pl_interval', prorettype => 'timestamp', + proargtypes => 'date interval', prosrc => 'date_pl_interval' }, +{ oid => '2072', + proname => 'date_mi_interval', prorettype => 'timestamp', + proargtypes => 'date interval', prosrc => 'date_mi_interval' }, + +{ oid => '2073', descr => 'extract text matching regular expression', + proname => 'substring', prorettype => 'text', proargtypes => 'text text', + prosrc => 'textregexsubstr' }, +{ oid => '2074', descr => 'extract text matching SQL99 regular expression', + proname => 'substring', prolang => '14', prorettype => 'text', + proargtypes => 'text text text', + prosrc => 'select pg_catalog.substring($1, pg_catalog.similar_escape($2, $3))' }, + +{ oid => '2075', descr => 'convert int8 to bitstring', + proname => 'bit', prorettype => 'bit', proargtypes => 'int8 int4', + prosrc => 'bitfromint8' }, +{ oid => '2076', descr => 'convert bitstring to int8', + proname => 'int8', prorettype => 'int8', proargtypes => 'bit', + prosrc => 'bittoint8' }, + +{ oid => '2077', descr => 'SHOW X as a function', + proname => 'current_setting', provolatile => 's', prorettype => 'text', + proargtypes => 'text', prosrc => 'show_config_by_name' }, +{ oid => '3294', + descr => 'SHOW X as a function, optionally no error for missing variable', + proname => 'current_setting', provolatile => 's', prorettype => 'text', + proargtypes => 'text bool', prosrc => 'show_config_by_name_missing_ok' }, +{ oid => '2078', descr => 'SET X as a function', + proname => 'set_config', proisstrict => 'f', provolatile => 'v', + proparallel => 'u', prorettype => 'text', proargtypes => 'text text bool', + prosrc => 'set_config_by_name' }, +{ oid => '2084', descr => 'SHOW ALL as a function', + proname => 'pg_show_all_settings', prorows => '1000', proretset => 't', + provolatile => 's', prorettype => 'record', proargtypes => '', + proallargtypes => '{text,text,text,text,text,text,text,text,text,text,text,_text,text,text,text,int4,bool}', + proargmodes => '{o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o}', + proargnames => '{name,setting,unit,category,short_desc,extra_desc,context,vartype,source,min_val,max_val,enumvals,boot_val,reset_val,sourcefile,sourceline,pending_restart}', + prosrc => 'show_all_settings' }, +{ oid => '3329', descr => 'show config file settings', + proname => 'pg_show_all_file_settings', prorows => '1000', proretset => 't', + provolatile => 'v', prorettype => 'record', proargtypes => '', + proallargtypes => '{text,int4,int4,text,text,bool,text}', + proargmodes => '{o,o,o,o,o,o,o}', + proargnames => '{sourcefile,sourceline,seqno,name,setting,applied,error}', + prosrc => 'show_all_file_settings' }, +{ oid => '3401', descr => 'show pg_hba.conf rules', + proname => 'pg_hba_file_rules', prorows => '1000', proretset => 't', + provolatile => 'v', prorettype => 'record', proargtypes => '', + proallargtypes => '{int4,text,_text,_text,text,text,text,_text,text}', + proargmodes => '{o,o,o,o,o,o,o,o,o}', + proargnames => '{line_number,type,database,user_name,address,netmask,auth_method,options,error}', + prosrc => 'pg_hba_file_rules' }, +{ oid => '1371', descr => 'view system lock information', + proname => 'pg_lock_status', prorows => '1000', proretset => 't', + provolatile => 'v', prorettype => 'record', proargtypes => '', + proallargtypes => '{text,oid,oid,int4,int2,text,xid,oid,oid,int2,text,int4,text,bool,bool}', + proargmodes => '{o,o,o,o,o,o,o,o,o,o,o,o,o,o,o}', + proargnames => '{locktype,database,relation,page,tuple,virtualxid,transactionid,classid,objid,objsubid,virtualtransaction,pid,mode,granted,fastpath}', + prosrc => 'pg_lock_status' }, +{ oid => '2561', + descr => 'get array of PIDs of sessions blocking specified backend PID from acquiring a heavyweight lock', + proname => 'pg_blocking_pids', provolatile => 'v', prorettype => '_int4', + proargtypes => 'int4', prosrc => 'pg_blocking_pids' }, +{ oid => '3376', + descr => 'get array of PIDs of sessions blocking specified backend PID from acquiring a safe snapshot', + proname => 'pg_safe_snapshot_blocking_pids', provolatile => 'v', + prorettype => '_int4', proargtypes => 'int4', + prosrc => 'pg_safe_snapshot_blocking_pids' }, +{ oid => '3378', descr => 'isolationtester support function', + proname => 'pg_isolation_test_session_is_blocked', provolatile => 'v', + prorettype => 'bool', proargtypes => 'int4 _int4', + prosrc => 'pg_isolation_test_session_is_blocked' }, +{ oid => '1065', descr => 'view two-phase transactions', + proname => 'pg_prepared_xact', prorows => '1000', proretset => 't', + provolatile => 'v', prorettype => 'record', proargtypes => '', + proallargtypes => '{xid,text,timestamptz,oid,oid}', + proargmodes => '{o,o,o,o,o}', + proargnames => '{transaction,gid,prepared,ownerid,dbid}', + prosrc => 'pg_prepared_xact' }, +{ oid => '3819', descr => 'view members of a multixactid', + proname => 'pg_get_multixact_members', prorows => '1000', proretset => 't', + provolatile => 'v', prorettype => 'record', proargtypes => 'xid', + proallargtypes => '{xid,xid,text}', proargmodes => '{i,o,o}', + proargnames => '{multixid,xid,mode}', prosrc => 'pg_get_multixact_members' }, + +{ oid => '3581', descr => 'get commit timestamp of a transaction', + proname => 'pg_xact_commit_timestamp', provolatile => 'v', + prorettype => 'timestamptz', proargtypes => 'xid', + prosrc => 'pg_xact_commit_timestamp' }, + +{ oid => '3583', + descr => 'get transaction Id and commit timestamp of latest transaction commit', + proname => 'pg_last_committed_xact', provolatile => 'v', + prorettype => 'record', proargtypes => '', + proallargtypes => '{xid,timestamptz}', proargmodes => '{o,o}', + proargnames => '{xid,timestamp}', prosrc => 'pg_last_committed_xact' }, + +{ oid => '3537', descr => 'get identification of SQL object', + proname => 'pg_describe_object', provolatile => 's', prorettype => 'text', + proargtypes => 'oid oid int4', prosrc => 'pg_describe_object' }, + +{ oid => '3839', + descr => 'get machine-parseable identification of SQL object', + proname => 'pg_identify_object', provolatile => 's', prorettype => 'record', + proargtypes => 'oid oid int4', + proallargtypes => '{oid,oid,int4,text,text,text,text}', + proargmodes => '{i,i,i,o,o,o,o}', + proargnames => '{classid,objid,objsubid,type,schema,name,identity}', + prosrc => 'pg_identify_object' }, + +{ oid => '3382', + descr => 'get identification of SQL object for pg_get_object_address()', + proname => 'pg_identify_object_as_address', provolatile => 's', + prorettype => 'record', proargtypes => 'oid oid int4', + proallargtypes => '{oid,oid,int4,text,_text,_text}', + proargmodes => '{i,i,i,o,o,o}', + proargnames => '{classid,objid,objsubid,type,object_names,object_args}', + prosrc => 'pg_identify_object_as_address' }, + +{ oid => '3954', + descr => 'get OID-based object address from name/args arrays', + proname => 'pg_get_object_address', provolatile => 's', + prorettype => 'record', proargtypes => 'text _text _text', + proallargtypes => '{text,_text,_text,oid,oid,int4}', + proargmodes => '{i,i,i,o,o,o}', + proargnames => '{type,name,args,classid,objid,objsubid}', + prosrc => 'pg_get_object_address' }, + +{ oid => '2079', descr => 'is table visible in search path?', + proname => 'pg_table_is_visible', procost => '10', provolatile => 's', + prorettype => 'bool', proargtypes => 'oid', prosrc => 'pg_table_is_visible' }, +{ oid => '2080', descr => 'is type visible in search path?', + proname => 'pg_type_is_visible', procost => '10', provolatile => 's', + prorettype => 'bool', proargtypes => 'oid', prosrc => 'pg_type_is_visible' }, +{ oid => '2081', descr => 'is function visible in search path?', + proname => 'pg_function_is_visible', procost => '10', provolatile => 's', + prorettype => 'bool', proargtypes => 'oid', + prosrc => 'pg_function_is_visible' }, +{ oid => '2082', descr => 'is operator visible in search path?', + proname => 'pg_operator_is_visible', procost => '10', provolatile => 's', + prorettype => 'bool', proargtypes => 'oid', + prosrc => 'pg_operator_is_visible' }, +{ oid => '2083', descr => 'is opclass visible in search path?', + proname => 'pg_opclass_is_visible', procost => '10', provolatile => 's', + prorettype => 'bool', proargtypes => 'oid', + prosrc => 'pg_opclass_is_visible' }, +{ oid => '3829', descr => 'is opfamily visible in search path?', + proname => 'pg_opfamily_is_visible', procost => '10', provolatile => 's', + prorettype => 'bool', proargtypes => 'oid', + prosrc => 'pg_opfamily_is_visible' }, +{ oid => '2093', descr => 'is conversion visible in search path?', + proname => 'pg_conversion_is_visible', procost => '10', provolatile => 's', + prorettype => 'bool', proargtypes => 'oid', + prosrc => 'pg_conversion_is_visible' }, +{ oid => '3403', descr => 'is statistics object visible in search path?', + proname => 'pg_statistics_obj_is_visible', procost => '10', + provolatile => 's', prorettype => 'bool', proargtypes => 'oid', + prosrc => 'pg_statistics_obj_is_visible' }, +{ oid => '3756', descr => 'is text search parser visible in search path?', + proname => 'pg_ts_parser_is_visible', procost => '10', provolatile => 's', + prorettype => 'bool', proargtypes => 'oid', + prosrc => 'pg_ts_parser_is_visible' }, +{ oid => '3757', descr => 'is text search dictionary visible in search path?', + proname => 'pg_ts_dict_is_visible', procost => '10', provolatile => 's', + prorettype => 'bool', proargtypes => 'oid', + prosrc => 'pg_ts_dict_is_visible' }, +{ oid => '3768', descr => 'is text search template visible in search path?', + proname => 'pg_ts_template_is_visible', procost => '10', provolatile => 's', + prorettype => 'bool', proargtypes => 'oid', + prosrc => 'pg_ts_template_is_visible' }, +{ oid => '3758', + descr => 'is text search configuration visible in search path?', + proname => 'pg_ts_config_is_visible', procost => '10', provolatile => 's', + prorettype => 'bool', proargtypes => 'oid', + prosrc => 'pg_ts_config_is_visible' }, +{ oid => '3815', descr => 'is collation visible in search path?', + proname => 'pg_collation_is_visible', procost => '10', provolatile => 's', + prorettype => 'bool', proargtypes => 'oid', + prosrc => 'pg_collation_is_visible' }, + +{ oid => '2854', descr => 'get OID of current session\'s temp schema, if any', + proname => 'pg_my_temp_schema', provolatile => 's', proparallel => 'r', + prorettype => 'oid', proargtypes => '', prosrc => 'pg_my_temp_schema' }, +{ oid => '2855', descr => 'is schema another session\'s temp schema?', + proname => 'pg_is_other_temp_schema', provolatile => 's', + prorettype => 'bool', proargtypes => 'oid', + prosrc => 'pg_is_other_temp_schema' }, + +{ oid => '2171', descr => 'cancel a server process\' current query', + proname => 'pg_cancel_backend', provolatile => 'v', prorettype => 'bool', + proargtypes => 'int4', prosrc => 'pg_cancel_backend' }, +{ oid => '2096', descr => 'terminate a server process', + proname => 'pg_terminate_backend', provolatile => 'v', prorettype => 'bool', + proargtypes => 'int4', prosrc => 'pg_terminate_backend' }, +{ oid => '2172', descr => 'prepare for taking an online backup', + proname => 'pg_start_backup', provolatile => 'v', proparallel => 'r', + prorettype => 'pg_lsn', proargtypes => 'text bool bool', + prosrc => 'pg_start_backup' }, +{ oid => '2173', descr => 'finish taking an online backup', + proname => 'pg_stop_backup', provolatile => 'v', proparallel => 'r', + prorettype => 'pg_lsn', proargtypes => '', prosrc => 'pg_stop_backup' }, +{ oid => '2739', descr => 'finish taking an online backup', + proname => 'pg_stop_backup', prorows => '1', proretset => 't', + provolatile => 'v', proparallel => 'r', prorettype => 'record', + proargtypes => 'bool bool', proallargtypes => '{bool,bool,pg_lsn,text,text}', + proargmodes => '{i,i,o,o,o}', + proargnames => '{exclusive,wait_for_archive,lsn,labelfile,spcmapfile}', + prosrc => 'pg_stop_backup_v2' }, +{ oid => '3813', descr => 'true if server is in online backup', + proname => 'pg_is_in_backup', provolatile => 'v', prorettype => 'bool', + proargtypes => '', prosrc => 'pg_is_in_backup' }, +{ oid => '3814', descr => 'start time of an online backup', + proname => 'pg_backup_start_time', provolatile => 's', + prorettype => 'timestamptz', proargtypes => '', + prosrc => 'pg_backup_start_time' }, +{ oid => '2848', descr => 'switch to new wal file', + proname => 'pg_switch_wal', provolatile => 'v', prorettype => 'pg_lsn', + proargtypes => '', prosrc => 'pg_switch_wal' }, +{ oid => '3098', descr => 'create a named restore point', + proname => 'pg_create_restore_point', provolatile => 'v', + prorettype => 'pg_lsn', proargtypes => 'text', + prosrc => 'pg_create_restore_point' }, +{ oid => '2849', descr => 'current wal write location', + proname => 'pg_current_wal_lsn', provolatile => 'v', prorettype => 'pg_lsn', + proargtypes => '', prosrc => 'pg_current_wal_lsn' }, +{ oid => '2852', descr => 'current wal insert location', + proname => 'pg_current_wal_insert_lsn', provolatile => 'v', + prorettype => 'pg_lsn', proargtypes => '', + prosrc => 'pg_current_wal_insert_lsn' }, +{ oid => '3330', descr => 'current wal flush location', + proname => 'pg_current_wal_flush_lsn', provolatile => 'v', + prorettype => 'pg_lsn', proargtypes => '', + prosrc => 'pg_current_wal_flush_lsn' }, +{ oid => '2850', + descr => 'wal filename and byte offset, given a wal location', + proname => 'pg_walfile_name_offset', prorettype => 'record', + proargtypes => 'pg_lsn', proallargtypes => '{pg_lsn,text,int4}', + proargmodes => '{i,o,o}', proargnames => '{lsn,file_name,file_offset}', + prosrc => 'pg_walfile_name_offset' }, +{ oid => '2851', descr => 'wal filename, given a wal location', + proname => 'pg_walfile_name', prorettype => 'text', proargtypes => 'pg_lsn', + prosrc => 'pg_walfile_name' }, + +{ oid => '3165', descr => 'difference in bytes, given two wal locations', + proname => 'pg_wal_lsn_diff', prorettype => 'numeric', + proargtypes => 'pg_lsn pg_lsn', prosrc => 'pg_wal_lsn_diff' }, + +{ oid => '3809', descr => 'export a snapshot', + proname => 'pg_export_snapshot', provolatile => 'v', proparallel => 'u', + prorettype => 'text', proargtypes => '', prosrc => 'pg_export_snapshot' }, + +{ oid => '3810', descr => 'true if server is in recovery', + proname => 'pg_is_in_recovery', provolatile => 'v', prorettype => 'bool', + proargtypes => '', prosrc => 'pg_is_in_recovery' }, + +{ oid => '3820', descr => 'current wal flush location', + proname => 'pg_last_wal_receive_lsn', provolatile => 'v', + prorettype => 'pg_lsn', proargtypes => '', + prosrc => 'pg_last_wal_receive_lsn' }, +{ oid => '3821', descr => 'last wal replay location', + proname => 'pg_last_wal_replay_lsn', provolatile => 'v', + prorettype => 'pg_lsn', proargtypes => '', + prosrc => 'pg_last_wal_replay_lsn' }, +{ oid => '3830', descr => 'timestamp of last replay xact', + proname => 'pg_last_xact_replay_timestamp', provolatile => 'v', + prorettype => 'timestamptz', proargtypes => '', + prosrc => 'pg_last_xact_replay_timestamp' }, + +{ oid => '3071', descr => 'pause wal replay', + proname => 'pg_wal_replay_pause', provolatile => 'v', prorettype => 'void', + proargtypes => '', prosrc => 'pg_wal_replay_pause' }, +{ oid => '3072', descr => 'resume wal replay, if it was paused', + proname => 'pg_wal_replay_resume', provolatile => 'v', prorettype => 'void', + proargtypes => '', prosrc => 'pg_wal_replay_resume' }, +{ oid => '3073', descr => 'true if wal replay is paused', + proname => 'pg_is_wal_replay_paused', provolatile => 'v', + prorettype => 'bool', proargtypes => '', + prosrc => 'pg_is_wal_replay_paused' }, + +{ oid => '2621', descr => 'reload configuration files', + proname => 'pg_reload_conf', provolatile => 'v', prorettype => 'bool', + proargtypes => '', prosrc => 'pg_reload_conf' }, +{ oid => '2622', descr => 'rotate log file', + proname => 'pg_rotate_logfile', provolatile => 'v', prorettype => 'bool', + proargtypes => '', prosrc => 'pg_rotate_logfile_v2' }, +{ oid => '4099', descr => 'rotate log file - old version for adminpack 1.0', + proname => 'pg_rotate_logfile_old', provolatile => 'v', prorettype => 'bool', + proargtypes => '', prosrc => 'pg_rotate_logfile' }, +{ oid => '3800', descr => 'current logging collector file location', + proname => 'pg_current_logfile', proisstrict => 'f', provolatile => 'v', + prorettype => 'text', proargtypes => '', prosrc => 'pg_current_logfile' }, +{ oid => '3801', descr => 'current logging collector file location', + proname => 'pg_current_logfile', proisstrict => 'f', provolatile => 'v', + prorettype => 'text', proargtypes => 'text', + prosrc => 'pg_current_logfile_1arg' }, + +{ oid => '2623', descr => 'get information about file', + proname => 'pg_stat_file', provolatile => 'v', prorettype => 'record', + proargtypes => 'text', + proallargtypes => '{text,int8,timestamptz,timestamptz,timestamptz,timestamptz,bool}', + proargmodes => '{i,o,o,o,o,o,o}', + proargnames => '{filename,size,access,modification,change,creation,isdir}', + prosrc => 'pg_stat_file_1arg' }, +{ oid => '3307', descr => 'get information about file', + proname => 'pg_stat_file', provolatile => 'v', prorettype => 'record', + proargtypes => 'text bool', + proallargtypes => '{text,bool,int8,timestamptz,timestamptz,timestamptz,timestamptz,bool}', + proargmodes => '{i,i,o,o,o,o,o,o}', + proargnames => '{filename,missing_ok,size,access,modification,change,creation,isdir}', + prosrc => 'pg_stat_file' }, +{ oid => '2624', descr => 'read text from a file', + proname => 'pg_read_file', provolatile => 'v', prorettype => 'text', + proargtypes => 'text int8 int8', prosrc => 'pg_read_file_off_len' }, +{ oid => '3293', descr => 'read text from a file', + proname => 'pg_read_file', provolatile => 'v', prorettype => 'text', + proargtypes => 'text int8 int8 bool', prosrc => 'pg_read_file_v2' }, +{ oid => '4100', + descr => 'read text from a file - old version for adminpack 1.0', + proname => 'pg_read_file_old', provolatile => 'v', prorettype => 'text', + proargtypes => 'text int8 int8', prosrc => 'pg_read_file' }, +{ oid => '3826', descr => 'read text from a file', + proname => 'pg_read_file', provolatile => 'v', prorettype => 'text', + proargtypes => 'text', prosrc => 'pg_read_file_all' }, +{ oid => '3827', descr => 'read bytea from a file', + proname => 'pg_read_binary_file', provolatile => 'v', prorettype => 'bytea', + proargtypes => 'text int8 int8', prosrc => 'pg_read_binary_file_off_len' }, +{ oid => '3295', descr => 'read bytea from a file', + proname => 'pg_read_binary_file', provolatile => 'v', prorettype => 'bytea', + proargtypes => 'text int8 int8 bool', prosrc => 'pg_read_binary_file' }, +{ oid => '3828', descr => 'read bytea from a file', + proname => 'pg_read_binary_file', provolatile => 'v', prorettype => 'bytea', + proargtypes => 'text', prosrc => 'pg_read_binary_file_all' }, +{ oid => '2625', descr => 'list all files in a directory', + proname => 'pg_ls_dir', prorows => '1000', proretset => 't', + provolatile => 'v', prorettype => 'text', proargtypes => 'text', + prosrc => 'pg_ls_dir_1arg' }, +{ oid => '3297', descr => 'list all files in a directory', + proname => 'pg_ls_dir', prorows => '1000', proretset => 't', + provolatile => 'v', prorettype => 'text', proargtypes => 'text bool bool', + prosrc => 'pg_ls_dir' }, +{ oid => '2626', descr => 'sleep for the specified time in seconds', + proname => 'pg_sleep', provolatile => 'v', prorettype => 'void', + proargtypes => 'float8', prosrc => 'pg_sleep' }, +{ oid => '3935', descr => 'sleep for the specified interval', + proname => 'pg_sleep_for', prolang => '14', provolatile => 'v', + prorettype => 'void', proargtypes => 'interval', + prosrc => 'select pg_catalog.pg_sleep(extract(epoch from pg_catalog.clock_timestamp() operator(pg_catalog.+) $1) operator(pg_catalog.-) extract(epoch from pg_catalog.clock_timestamp()))' }, +{ oid => '3936', descr => 'sleep until the specified time', + proname => 'pg_sleep_until', prolang => '14', provolatile => 'v', + prorettype => 'void', proargtypes => 'timestamptz', + prosrc => 'select pg_catalog.pg_sleep(extract(epoch from $1) operator(pg_catalog.-) extract(epoch from pg_catalog.clock_timestamp()))' }, +{ oid => '315', descr => 'Is JIT compilation available in this session?', + proname => 'pg_jit_available', provolatile => 'v', prorettype => 'bool', + proargtypes => '', prosrc => 'pg_jit_available' }, + +{ oid => '2971', descr => 'convert boolean to text', + proname => 'text', prorettype => 'text', proargtypes => 'bool', + prosrc => 'booltext' }, + +# Aggregates (moved here from pg_aggregate for 7.3) + +{ oid => '2100', + descr => 'the average (arithmetic mean) as numeric of all bigint values', + proname => 'avg', prokind => 'a', proisstrict => 'f', prorettype => 'numeric', + proargtypes => 'int8', prosrc => 'aggregate_dummy' }, +{ oid => '2101', + descr => 'the average (arithmetic mean) as numeric of all integer values', + proname => 'avg', prokind => 'a', proisstrict => 'f', prorettype => 'numeric', + proargtypes => 'int4', prosrc => 'aggregate_dummy' }, +{ oid => '2102', + descr => 'the average (arithmetic mean) as numeric of all smallint values', + proname => 'avg', prokind => 'a', proisstrict => 'f', prorettype => 'numeric', + proargtypes => 'int2', prosrc => 'aggregate_dummy' }, +{ oid => '2103', + descr => 'the average (arithmetic mean) as numeric of all numeric values', + proname => 'avg', prokind => 'a', proisstrict => 'f', prorettype => 'numeric', + proargtypes => 'numeric', prosrc => 'aggregate_dummy' }, +{ oid => '2104', + descr => 'the average (arithmetic mean) as float8 of all float4 values', + proname => 'avg', prokind => 'a', proisstrict => 'f', prorettype => 'float8', + proargtypes => 'float4', prosrc => 'aggregate_dummy' }, +{ oid => '2105', + descr => 'the average (arithmetic mean) as float8 of all float8 values', + proname => 'avg', prokind => 'a', proisstrict => 'f', prorettype => 'float8', + proargtypes => 'float8', prosrc => 'aggregate_dummy' }, +{ oid => '2106', + descr => 'the average (arithmetic mean) as interval of all interval values', + proname => 'avg', prokind => 'a', proisstrict => 'f', + prorettype => 'interval', proargtypes => 'interval', + prosrc => 'aggregate_dummy' }, + +{ oid => '2107', descr => 'sum as numeric across all bigint input values', + proname => 'sum', prokind => 'a', proisstrict => 'f', prorettype => 'numeric', + proargtypes => 'int8', prosrc => 'aggregate_dummy' }, +{ oid => '2108', descr => 'sum as bigint across all integer input values', + proname => 'sum', prokind => 'a', proisstrict => 'f', prorettype => 'int8', + proargtypes => 'int4', prosrc => 'aggregate_dummy' }, +{ oid => '2109', descr => 'sum as bigint across all smallint input values', + proname => 'sum', prokind => 'a', proisstrict => 'f', prorettype => 'int8', + proargtypes => 'int2', prosrc => 'aggregate_dummy' }, +{ oid => '2110', descr => 'sum as float4 across all float4 input values', + proname => 'sum', prokind => 'a', proisstrict => 'f', prorettype => 'float4', + proargtypes => 'float4', prosrc => 'aggregate_dummy' }, +{ oid => '2111', descr => 'sum as float8 across all float8 input values', + proname => 'sum', prokind => 'a', proisstrict => 'f', prorettype => 'float8', + proargtypes => 'float8', prosrc => 'aggregate_dummy' }, +{ oid => '2112', descr => 'sum as money across all money input values', + proname => 'sum', prokind => 'a', proisstrict => 'f', prorettype => 'money', + proargtypes => 'money', prosrc => 'aggregate_dummy' }, +{ oid => '2113', descr => 'sum as interval across all interval input values', + proname => 'sum', prokind => 'a', proisstrict => 'f', + prorettype => 'interval', proargtypes => 'interval', + prosrc => 'aggregate_dummy' }, +{ oid => '2114', descr => 'sum as numeric across all numeric input values', + proname => 'sum', prokind => 'a', proisstrict => 'f', prorettype => 'numeric', + proargtypes => 'numeric', prosrc => 'aggregate_dummy' }, + +{ oid => '2115', descr => 'maximum value of all bigint input values', + proname => 'max', prokind => 'a', proisstrict => 'f', prorettype => 'int8', + proargtypes => 'int8', prosrc => 'aggregate_dummy' }, +{ oid => '2116', descr => 'maximum value of all integer input values', + proname => 'max', prokind => 'a', proisstrict => 'f', prorettype => 'int4', + proargtypes => 'int4', prosrc => 'aggregate_dummy' }, +{ oid => '2117', descr => 'maximum value of all smallint input values', + proname => 'max', prokind => 'a', proisstrict => 'f', prorettype => 'int2', + proargtypes => 'int2', prosrc => 'aggregate_dummy' }, +{ oid => '2118', descr => 'maximum value of all oid input values', + proname => 'max', prokind => 'a', proisstrict => 'f', prorettype => 'oid', + proargtypes => 'oid', prosrc => 'aggregate_dummy' }, +{ oid => '2119', descr => 'maximum value of all float4 input values', + proname => 'max', prokind => 'a', proisstrict => 'f', prorettype => 'float4', + proargtypes => 'float4', prosrc => 'aggregate_dummy' }, +{ oid => '2120', descr => 'maximum value of all float8 input values', + proname => 'max', prokind => 'a', proisstrict => 'f', prorettype => 'float8', + proargtypes => 'float8', prosrc => 'aggregate_dummy' }, +{ oid => '2121', descr => 'maximum value of all abstime input values', + proname => 'max', prokind => 'a', proisstrict => 'f', prorettype => 'abstime', + proargtypes => 'abstime', prosrc => 'aggregate_dummy' }, +{ oid => '2122', descr => 'maximum value of all date input values', + proname => 'max', prokind => 'a', proisstrict => 'f', prorettype => 'date', + proargtypes => 'date', prosrc => 'aggregate_dummy' }, +{ oid => '2123', descr => 'maximum value of all time input values', + proname => 'max', prokind => 'a', proisstrict => 'f', prorettype => 'time', + proargtypes => 'time', prosrc => 'aggregate_dummy' }, +{ oid => '2124', + descr => 'maximum value of all time with time zone input values', + proname => 'max', prokind => 'a', proisstrict => 'f', prorettype => 'timetz', + proargtypes => 'timetz', prosrc => 'aggregate_dummy' }, +{ oid => '2125', descr => 'maximum value of all money input values', + proname => 'max', prokind => 'a', proisstrict => 'f', prorettype => 'money', + proargtypes => 'money', prosrc => 'aggregate_dummy' }, +{ oid => '2126', descr => 'maximum value of all timestamp input values', + proname => 'max', prokind => 'a', proisstrict => 'f', + prorettype => 'timestamp', proargtypes => 'timestamp', + prosrc => 'aggregate_dummy' }, +{ oid => '2127', + descr => 'maximum value of all timestamp with time zone input values', + proname => 'max', prokind => 'a', proisstrict => 'f', + prorettype => 'timestamptz', proargtypes => 'timestamptz', + prosrc => 'aggregate_dummy' }, +{ oid => '2128', descr => 'maximum value of all interval input values', + proname => 'max', prokind => 'a', proisstrict => 'f', + prorettype => 'interval', proargtypes => 'interval', + prosrc => 'aggregate_dummy' }, +{ oid => '2129', descr => 'maximum value of all text input values', + proname => 'max', prokind => 'a', proisstrict => 'f', prorettype => 'text', + proargtypes => 'text', prosrc => 'aggregate_dummy' }, +{ oid => '2130', descr => 'maximum value of all numeric input values', + proname => 'max', prokind => 'a', proisstrict => 'f', prorettype => 'numeric', + proargtypes => 'numeric', prosrc => 'aggregate_dummy' }, +{ oid => '2050', descr => 'maximum value of all anyarray input values', + proname => 'max', prokind => 'a', proisstrict => 'f', + prorettype => 'anyarray', proargtypes => 'anyarray', + prosrc => 'aggregate_dummy' }, +{ oid => '2244', descr => 'maximum value of all bpchar input values', + proname => 'max', prokind => 'a', proisstrict => 'f', prorettype => 'bpchar', + proargtypes => 'bpchar', prosrc => 'aggregate_dummy' }, +{ oid => '2797', descr => 'maximum value of all tid input values', + proname => 'max', prokind => 'a', proisstrict => 'f', prorettype => 'tid', + proargtypes => 'tid', prosrc => 'aggregate_dummy' }, +{ oid => '3564', descr => 'maximum value of all inet input values', + proname => 'max', prokind => 'a', proisstrict => 'f', prorettype => 'inet', + proargtypes => 'inet', prosrc => 'aggregate_dummy' }, + +{ oid => '2131', descr => 'minimum value of all bigint input values', + proname => 'min', prokind => 'a', proisstrict => 'f', prorettype => 'int8', + proargtypes => 'int8', prosrc => 'aggregate_dummy' }, +{ oid => '2132', descr => 'minimum value of all integer input values', + proname => 'min', prokind => 'a', proisstrict => 'f', prorettype => 'int4', + proargtypes => 'int4', prosrc => 'aggregate_dummy' }, +{ oid => '2133', descr => 'minimum value of all smallint input values', + proname => 'min', prokind => 'a', proisstrict => 'f', prorettype => 'int2', + proargtypes => 'int2', prosrc => 'aggregate_dummy' }, +{ oid => '2134', descr => 'minimum value of all oid input values', + proname => 'min', prokind => 'a', proisstrict => 'f', prorettype => 'oid', + proargtypes => 'oid', prosrc => 'aggregate_dummy' }, +{ oid => '2135', descr => 'minimum value of all float4 input values', + proname => 'min', prokind => 'a', proisstrict => 'f', prorettype => 'float4', + proargtypes => 'float4', prosrc => 'aggregate_dummy' }, +{ oid => '2136', descr => 'minimum value of all float8 input values', + proname => 'min', prokind => 'a', proisstrict => 'f', prorettype => 'float8', + proargtypes => 'float8', prosrc => 'aggregate_dummy' }, +{ oid => '2137', descr => 'minimum value of all abstime input values', + proname => 'min', prokind => 'a', proisstrict => 'f', prorettype => 'abstime', + proargtypes => 'abstime', prosrc => 'aggregate_dummy' }, +{ oid => '2138', descr => 'minimum value of all date input values', + proname => 'min', prokind => 'a', proisstrict => 'f', prorettype => 'date', + proargtypes => 'date', prosrc => 'aggregate_dummy' }, +{ oid => '2139', descr => 'minimum value of all time input values', + proname => 'min', prokind => 'a', proisstrict => 'f', prorettype => 'time', + proargtypes => 'time', prosrc => 'aggregate_dummy' }, +{ oid => '2140', + descr => 'minimum value of all time with time zone input values', + proname => 'min', prokind => 'a', proisstrict => 'f', prorettype => 'timetz', + proargtypes => 'timetz', prosrc => 'aggregate_dummy' }, +{ oid => '2141', descr => 'minimum value of all money input values', + proname => 'min', prokind => 'a', proisstrict => 'f', prorettype => 'money', + proargtypes => 'money', prosrc => 'aggregate_dummy' }, +{ oid => '2142', descr => 'minimum value of all timestamp input values', + proname => 'min', prokind => 'a', proisstrict => 'f', + prorettype => 'timestamp', proargtypes => 'timestamp', + prosrc => 'aggregate_dummy' }, +{ oid => '2143', + descr => 'minimum value of all timestamp with time zone input values', + proname => 'min', prokind => 'a', proisstrict => 'f', + prorettype => 'timestamptz', proargtypes => 'timestamptz', + prosrc => 'aggregate_dummy' }, +{ oid => '2144', descr => 'minimum value of all interval input values', + proname => 'min', prokind => 'a', proisstrict => 'f', + prorettype => 'interval', proargtypes => 'interval', + prosrc => 'aggregate_dummy' }, +{ oid => '2145', descr => 'minimum value of all text values', + proname => 'min', prokind => 'a', proisstrict => 'f', prorettype => 'text', + proargtypes => 'text', prosrc => 'aggregate_dummy' }, +{ oid => '2146', descr => 'minimum value of all numeric input values', + proname => 'min', prokind => 'a', proisstrict => 'f', prorettype => 'numeric', + proargtypes => 'numeric', prosrc => 'aggregate_dummy' }, +{ oid => '2051', descr => 'minimum value of all anyarray input values', + proname => 'min', prokind => 'a', proisstrict => 'f', + prorettype => 'anyarray', proargtypes => 'anyarray', + prosrc => 'aggregate_dummy' }, +{ oid => '2245', descr => 'minimum value of all bpchar input values', + proname => 'min', prokind => 'a', proisstrict => 'f', prorettype => 'bpchar', + proargtypes => 'bpchar', prosrc => 'aggregate_dummy' }, +{ oid => '2798', descr => 'minimum value of all tid input values', + proname => 'min', prokind => 'a', proisstrict => 'f', prorettype => 'tid', + proargtypes => 'tid', prosrc => 'aggregate_dummy' }, +{ oid => '3565', descr => 'minimum value of all inet input values', + proname => 'min', prokind => 'a', proisstrict => 'f', prorettype => 'inet', + proargtypes => 'inet', prosrc => 'aggregate_dummy' }, + +# count has two forms: count(any) and count(*) +{ oid => '2147', + descr => 'number of input rows for which the input expression is not null', + proname => 'count', prokind => 'a', proisstrict => 'f', prorettype => 'int8', + proargtypes => 'any', prosrc => 'aggregate_dummy' }, +{ oid => '2803', descr => 'number of input rows', + proname => 'count', prokind => 'a', proisstrict => 'f', prorettype => 'int8', + proargtypes => '', prosrc => 'aggregate_dummy' }, + +{ oid => '2718', + descr => 'population variance of bigint input values (square of the population standard deviation)', + proname => 'var_pop', prokind => 'a', proisstrict => 'f', + prorettype => 'numeric', proargtypes => 'int8', prosrc => 'aggregate_dummy' }, +{ oid => '2719', + descr => 'population variance of integer input values (square of the population standard deviation)', + proname => 'var_pop', prokind => 'a', proisstrict => 'f', + prorettype => 'numeric', proargtypes => 'int4', prosrc => 'aggregate_dummy' }, +{ oid => '2720', + descr => 'population variance of smallint input values (square of the population standard deviation)', + proname => 'var_pop', prokind => 'a', proisstrict => 'f', + prorettype => 'numeric', proargtypes => 'int2', prosrc => 'aggregate_dummy' }, +{ oid => '2721', + descr => 'population variance of float4 input values (square of the population standard deviation)', + proname => 'var_pop', prokind => 'a', proisstrict => 'f', + prorettype => 'float8', proargtypes => 'float4', + prosrc => 'aggregate_dummy' }, +{ oid => '2722', + descr => 'population variance of float8 input values (square of the population standard deviation)', + proname => 'var_pop', prokind => 'a', proisstrict => 'f', + prorettype => 'float8', proargtypes => 'float8', + prosrc => 'aggregate_dummy' }, +{ oid => '2723', + descr => 'population variance of numeric input values (square of the population standard deviation)', + proname => 'var_pop', prokind => 'a', proisstrict => 'f', + prorettype => 'numeric', proargtypes => 'numeric', + prosrc => 'aggregate_dummy' }, + +{ oid => '2641', + descr => 'sample variance of bigint input values (square of the sample standard deviation)', + proname => 'var_samp', prokind => 'a', proisstrict => 'f', + prorettype => 'numeric', proargtypes => 'int8', prosrc => 'aggregate_dummy' }, +{ oid => '2642', + descr => 'sample variance of integer input values (square of the sample standard deviation)', + proname => 'var_samp', prokind => 'a', proisstrict => 'f', + prorettype => 'numeric', proargtypes => 'int4', prosrc => 'aggregate_dummy' }, +{ oid => '2643', + descr => 'sample variance of smallint input values (square of the sample standard deviation)', + proname => 'var_samp', prokind => 'a', proisstrict => 'f', + prorettype => 'numeric', proargtypes => 'int2', prosrc => 'aggregate_dummy' }, +{ oid => '2644', + descr => 'sample variance of float4 input values (square of the sample standard deviation)', + proname => 'var_samp', prokind => 'a', proisstrict => 'f', + prorettype => 'float8', proargtypes => 'float4', + prosrc => 'aggregate_dummy' }, + +{ oid => '2645', + descr => 'sample variance of float8 input values (square of the sample standard deviation)', + proname => 'var_samp', prokind => 'a', proisstrict => 'f', + prorettype => 'float8', proargtypes => 'float8', + prosrc => 'aggregate_dummy' }, +{ oid => '2646', + descr => 'sample variance of numeric input values (square of the sample standard deviation)', + proname => 'var_samp', prokind => 'a', proisstrict => 'f', + prorettype => 'numeric', proargtypes => 'numeric', + prosrc => 'aggregate_dummy' }, + +{ oid => '2148', descr => 'historical alias for var_samp', + proname => 'variance', prokind => 'a', proisstrict => 'f', + prorettype => 'numeric', proargtypes => 'int8', prosrc => 'aggregate_dummy' }, +{ oid => '2149', descr => 'historical alias for var_samp', + proname => 'variance', prokind => 'a', proisstrict => 'f', + prorettype => 'numeric', proargtypes => 'int4', prosrc => 'aggregate_dummy' }, +{ oid => '2150', descr => 'historical alias for var_samp', + proname => 'variance', prokind => 'a', proisstrict => 'f', + prorettype => 'numeric', proargtypes => 'int2', prosrc => 'aggregate_dummy' }, +{ oid => '2151', descr => 'historical alias for var_samp', + proname => 'variance', prokind => 'a', proisstrict => 'f', + prorettype => 'float8', proargtypes => 'float4', + prosrc => 'aggregate_dummy' }, +{ oid => '2152', descr => 'historical alias for var_samp', + proname => 'variance', prokind => 'a', proisstrict => 'f', + prorettype => 'float8', proargtypes => 'float8', + prosrc => 'aggregate_dummy' }, +{ oid => '2153', descr => 'historical alias for var_samp', + proname => 'variance', prokind => 'a', proisstrict => 'f', + prorettype => 'numeric', proargtypes => 'numeric', + prosrc => 'aggregate_dummy' }, + +{ oid => '2724', + descr => 'population standard deviation of bigint input values', + proname => 'stddev_pop', prokind => 'a', proisstrict => 'f', + prorettype => 'numeric', proargtypes => 'int8', prosrc => 'aggregate_dummy' }, +{ oid => '2725', + descr => 'population standard deviation of integer input values', + proname => 'stddev_pop', prokind => 'a', proisstrict => 'f', + prorettype => 'numeric', proargtypes => 'int4', prosrc => 'aggregate_dummy' }, +{ oid => '2726', + descr => 'population standard deviation of smallint input values', + proname => 'stddev_pop', prokind => 'a', proisstrict => 'f', + prorettype => 'numeric', proargtypes => 'int2', prosrc => 'aggregate_dummy' }, +{ oid => '2727', + descr => 'population standard deviation of float4 input values', + proname => 'stddev_pop', prokind => 'a', proisstrict => 'f', + prorettype => 'float8', proargtypes => 'float4', + prosrc => 'aggregate_dummy' }, +{ oid => '2728', + descr => 'population standard deviation of float8 input values', + proname => 'stddev_pop', prokind => 'a', proisstrict => 'f', + prorettype => 'float8', proargtypes => 'float8', + prosrc => 'aggregate_dummy' }, +{ oid => '2729', + descr => 'population standard deviation of numeric input values', + proname => 'stddev_pop', prokind => 'a', proisstrict => 'f', + prorettype => 'numeric', proargtypes => 'numeric', + prosrc => 'aggregate_dummy' }, + +{ oid => '2712', descr => 'sample standard deviation of bigint input values', + proname => 'stddev_samp', prokind => 'a', proisstrict => 'f', + prorettype => 'numeric', proargtypes => 'int8', prosrc => 'aggregate_dummy' }, +{ oid => '2713', descr => 'sample standard deviation of integer input values', + proname => 'stddev_samp', prokind => 'a', proisstrict => 'f', + prorettype => 'numeric', proargtypes => 'int4', prosrc => 'aggregate_dummy' }, +{ oid => '2714', + descr => 'sample standard deviation of smallint input values', + proname => 'stddev_samp', prokind => 'a', proisstrict => 'f', + prorettype => 'numeric', proargtypes => 'int2', prosrc => 'aggregate_dummy' }, +{ oid => '2715', descr => 'sample standard deviation of float4 input values', + proname => 'stddev_samp', prokind => 'a', proisstrict => 'f', + prorettype => 'float8', proargtypes => 'float4', + prosrc => 'aggregate_dummy' }, +{ oid => '2716', descr => 'sample standard deviation of float8 input values', + proname => 'stddev_samp', prokind => 'a', proisstrict => 'f', + prorettype => 'float8', proargtypes => 'float8', + prosrc => 'aggregate_dummy' }, +{ oid => '2717', descr => 'sample standard deviation of numeric input values', + proname => 'stddev_samp', prokind => 'a', proisstrict => 'f', + prorettype => 'numeric', proargtypes => 'numeric', + prosrc => 'aggregate_dummy' }, + +{ oid => '2154', descr => 'historical alias for stddev_samp', + proname => 'stddev', prokind => 'a', proisstrict => 'f', + prorettype => 'numeric', proargtypes => 'int8', prosrc => 'aggregate_dummy' }, +{ oid => '2155', descr => 'historical alias for stddev_samp', + proname => 'stddev', prokind => 'a', proisstrict => 'f', + prorettype => 'numeric', proargtypes => 'int4', prosrc => 'aggregate_dummy' }, +{ oid => '2156', descr => 'historical alias for stddev_samp', + proname => 'stddev', prokind => 'a', proisstrict => 'f', + prorettype => 'numeric', proargtypes => 'int2', prosrc => 'aggregate_dummy' }, +{ oid => '2157', descr => 'historical alias for stddev_samp', + proname => 'stddev', prokind => 'a', proisstrict => 'f', + prorettype => 'float8', proargtypes => 'float4', + prosrc => 'aggregate_dummy' }, +{ oid => '2158', descr => 'historical alias for stddev_samp', + proname => 'stddev', prokind => 'a', proisstrict => 'f', + prorettype => 'float8', proargtypes => 'float8', + prosrc => 'aggregate_dummy' }, +{ oid => '2159', descr => 'historical alias for stddev_samp', + proname => 'stddev', prokind => 'a', proisstrict => 'f', + prorettype => 'numeric', proargtypes => 'numeric', + prosrc => 'aggregate_dummy' }, + +{ oid => '2818', + descr => 'number of input rows in which both expressions are not null', + proname => 'regr_count', prokind => 'a', proisstrict => 'f', + prorettype => 'int8', proargtypes => 'float8 float8', + prosrc => 'aggregate_dummy' }, +{ oid => '2819', + descr => 'sum of squares of the independent variable (sum(X^2) - sum(X)^2/N)', + proname => 'regr_sxx', prokind => 'a', proisstrict => 'f', + prorettype => 'float8', proargtypes => 'float8 float8', + prosrc => 'aggregate_dummy' }, +{ oid => '2820', + descr => 'sum of squares of the dependent variable (sum(Y^2) - sum(Y)^2/N)', + proname => 'regr_syy', prokind => 'a', proisstrict => 'f', + prorettype => 'float8', proargtypes => 'float8 float8', + prosrc => 'aggregate_dummy' }, +{ oid => '2821', + descr => 'sum of products of independent times dependent variable (sum(X*Y) - sum(X) * sum(Y)/N)', + proname => 'regr_sxy', prokind => 'a', proisstrict => 'f', + prorettype => 'float8', proargtypes => 'float8 float8', + prosrc => 'aggregate_dummy' }, +{ oid => '2822', descr => 'average of the independent variable (sum(X)/N)', + proname => 'regr_avgx', prokind => 'a', proisstrict => 'f', + prorettype => 'float8', proargtypes => 'float8 float8', + prosrc => 'aggregate_dummy' }, +{ oid => '2823', descr => 'average of the dependent variable (sum(Y)/N)', + proname => 'regr_avgy', prokind => 'a', proisstrict => 'f', + prorettype => 'float8', proargtypes => 'float8 float8', + prosrc => 'aggregate_dummy' }, +{ oid => '2824', descr => 'square of the correlation coefficient', + proname => 'regr_r2', prokind => 'a', proisstrict => 'f', + prorettype => 'float8', proargtypes => 'float8 float8', + prosrc => 'aggregate_dummy' }, +{ oid => '2825', + descr => 'slope of the least-squares-fit linear equation determined by the (X, Y) pairs', + proname => 'regr_slope', prokind => 'a', proisstrict => 'f', + prorettype => 'float8', proargtypes => 'float8 float8', + prosrc => 'aggregate_dummy' }, +{ oid => '2826', + descr => 'y-intercept of the least-squares-fit linear equation determined by the (X, Y) pairs', + proname => 'regr_intercept', prokind => 'a', proisstrict => 'f', + prorettype => 'float8', proargtypes => 'float8 float8', + prosrc => 'aggregate_dummy' }, + +{ oid => '2827', descr => 'population covariance', + proname => 'covar_pop', prokind => 'a', proisstrict => 'f', + prorettype => 'float8', proargtypes => 'float8 float8', + prosrc => 'aggregate_dummy' }, +{ oid => '2828', descr => 'sample covariance', + proname => 'covar_samp', prokind => 'a', proisstrict => 'f', + prorettype => 'float8', proargtypes => 'float8 float8', + prosrc => 'aggregate_dummy' }, +{ oid => '2829', descr => 'correlation coefficient', + proname => 'corr', prokind => 'a', proisstrict => 'f', prorettype => 'float8', + proargtypes => 'float8 float8', prosrc => 'aggregate_dummy' }, + +{ oid => '2160', + proname => 'text_pattern_lt', prorettype => 'bool', + proargtypes => 'text text', prosrc => 'text_pattern_lt' }, +{ oid => '2161', + proname => 'text_pattern_le', prorettype => 'bool', + proargtypes => 'text text', prosrc => 'text_pattern_le' }, +{ oid => '2163', + proname => 'text_pattern_ge', prorettype => 'bool', + proargtypes => 'text text', prosrc => 'text_pattern_ge' }, +{ oid => '2164', + proname => 'text_pattern_gt', prorettype => 'bool', + proargtypes => 'text text', prosrc => 'text_pattern_gt' }, +{ oid => '2166', descr => 'less-equal-greater', + proname => 'bttext_pattern_cmp', prorettype => 'int4', + proargtypes => 'text text', prosrc => 'bttext_pattern_cmp' }, +{ oid => '3332', descr => 'sort support', + proname => 'bttext_pattern_sortsupport', prorettype => 'void', + proargtypes => 'internal', prosrc => 'bttext_pattern_sortsupport' }, + +{ oid => '2174', + proname => 'bpchar_pattern_lt', prorettype => 'bool', + proargtypes => 'bpchar bpchar', prosrc => 'bpchar_pattern_lt' }, +{ oid => '2175', + proname => 'bpchar_pattern_le', prorettype => 'bool', + proargtypes => 'bpchar bpchar', prosrc => 'bpchar_pattern_le' }, +{ oid => '2177', + proname => 'bpchar_pattern_ge', prorettype => 'bool', + proargtypes => 'bpchar bpchar', prosrc => 'bpchar_pattern_ge' }, +{ oid => '2178', + proname => 'bpchar_pattern_gt', prorettype => 'bool', + proargtypes => 'bpchar bpchar', prosrc => 'bpchar_pattern_gt' }, +{ oid => '2180', descr => 'less-equal-greater', + proname => 'btbpchar_pattern_cmp', prorettype => 'int4', + proargtypes => 'bpchar bpchar', prosrc => 'btbpchar_pattern_cmp' }, +{ oid => '3333', descr => 'sort support', + proname => 'btbpchar_pattern_sortsupport', prorettype => 'void', + proargtypes => 'internal', prosrc => 'btbpchar_pattern_sortsupport' }, + +{ oid => '2188', descr => 'less-equal-greater', + proname => 'btint48cmp', prorettype => 'int4', proargtypes => 'int4 int8', + prosrc => 'btint48cmp' }, +{ oid => '2189', descr => 'less-equal-greater', + proname => 'btint84cmp', prorettype => 'int4', proargtypes => 'int8 int4', + prosrc => 'btint84cmp' }, +{ oid => '2190', descr => 'less-equal-greater', + proname => 'btint24cmp', prorettype => 'int4', proargtypes => 'int2 int4', + prosrc => 'btint24cmp' }, +{ oid => '2191', descr => 'less-equal-greater', + proname => 'btint42cmp', prorettype => 'int4', proargtypes => 'int4 int2', + prosrc => 'btint42cmp' }, +{ oid => '2192', descr => 'less-equal-greater', + proname => 'btint28cmp', prorettype => 'int4', proargtypes => 'int2 int8', + prosrc => 'btint28cmp' }, +{ oid => '2193', descr => 'less-equal-greater', + proname => 'btint82cmp', prorettype => 'int4', proargtypes => 'int8 int2', + prosrc => 'btint82cmp' }, +{ oid => '2194', descr => 'less-equal-greater', + proname => 'btfloat48cmp', prorettype => 'int4', + proargtypes => 'float4 float8', prosrc => 'btfloat48cmp' }, +{ oid => '2195', descr => 'less-equal-greater', + proname => 'btfloat84cmp', prorettype => 'int4', + proargtypes => 'float8 float4', prosrc => 'btfloat84cmp' }, + +{ oid => '2212', descr => 'I/O', + proname => 'regprocedurein', provolatile => 's', prorettype => 'regprocedure', + proargtypes => 'cstring', prosrc => 'regprocedurein' }, +{ oid => '2213', descr => 'I/O', + proname => 'regprocedureout', provolatile => 's', prorettype => 'cstring', + proargtypes => 'regprocedure', prosrc => 'regprocedureout' }, +{ oid => '2214', descr => 'I/O', + proname => 'regoperin', provolatile => 's', prorettype => 'regoper', + proargtypes => 'cstring', prosrc => 'regoperin' }, +{ oid => '2215', descr => 'I/O', + proname => 'regoperout', provolatile => 's', prorettype => 'cstring', + proargtypes => 'regoper', prosrc => 'regoperout' }, +{ oid => '3492', descr => 'convert operator name to regoper', + proname => 'to_regoper', provolatile => 's', prorettype => 'regoper', + proargtypes => 'text', prosrc => 'to_regoper' }, +{ oid => '3476', descr => 'convert operator name to regoperator', + proname => 'to_regoperator', provolatile => 's', prorettype => 'regoperator', + proargtypes => 'text', prosrc => 'to_regoperator' }, +{ oid => '2216', descr => 'I/O', + proname => 'regoperatorin', provolatile => 's', prorettype => 'regoperator', + proargtypes => 'cstring', prosrc => 'regoperatorin' }, +{ oid => '2217', descr => 'I/O', + proname => 'regoperatorout', provolatile => 's', prorettype => 'cstring', + proargtypes => 'regoperator', prosrc => 'regoperatorout' }, +{ oid => '2218', descr => 'I/O', + proname => 'regclassin', provolatile => 's', prorettype => 'regclass', + proargtypes => 'cstring', prosrc => 'regclassin' }, +{ oid => '2219', descr => 'I/O', + proname => 'regclassout', provolatile => 's', prorettype => 'cstring', + proargtypes => 'regclass', prosrc => 'regclassout' }, +{ oid => '3495', descr => 'convert classname to regclass', + proname => 'to_regclass', provolatile => 's', prorettype => 'regclass', + proargtypes => 'text', prosrc => 'to_regclass' }, +{ oid => '2220', descr => 'I/O', + proname => 'regtypein', provolatile => 's', prorettype => 'regtype', + proargtypes => 'cstring', prosrc => 'regtypein' }, +{ oid => '2221', descr => 'I/O', + proname => 'regtypeout', provolatile => 's', prorettype => 'cstring', + proargtypes => 'regtype', prosrc => 'regtypeout' }, +{ oid => '3493', descr => 'convert type name to regtype', + proname => 'to_regtype', provolatile => 's', prorettype => 'regtype', + proargtypes => 'text', prosrc => 'to_regtype' }, +{ oid => '1079', descr => 'convert text to regclass', + proname => 'regclass', provolatile => 's', prorettype => 'regclass', + proargtypes => 'text', prosrc => 'text_regclass' }, + +{ oid => '4098', descr => 'I/O', + proname => 'regrolein', provolatile => 's', prorettype => 'regrole', + proargtypes => 'cstring', prosrc => 'regrolein' }, +{ oid => '4092', descr => 'I/O', + proname => 'regroleout', provolatile => 's', prorettype => 'cstring', + proargtypes => 'regrole', prosrc => 'regroleout' }, +{ oid => '4093', descr => 'convert role name to regrole', + proname => 'to_regrole', provolatile => 's', prorettype => 'regrole', + proargtypes => 'text', prosrc => 'to_regrole' }, + +{ oid => '4084', descr => 'I/O', + proname => 'regnamespacein', provolatile => 's', prorettype => 'regnamespace', + proargtypes => 'cstring', prosrc => 'regnamespacein' }, +{ oid => '4085', descr => 'I/O', + proname => 'regnamespaceout', provolatile => 's', prorettype => 'cstring', + proargtypes => 'regnamespace', prosrc => 'regnamespaceout' }, +{ oid => '4086', descr => 'convert namespace name to regnamespace', + proname => 'to_regnamespace', provolatile => 's', + prorettype => 'regnamespace', proargtypes => 'text', + prosrc => 'to_regnamespace' }, + +{ oid => '1268', + descr => 'parse qualified identifier to array of identifiers', + proname => 'parse_ident', prorettype => '_text', proargtypes => 'text bool', + proargnames => '{str,strict}', prosrc => 'parse_ident' }, + +{ oid => '2246', descr => '(internal)', + proname => 'fmgr_internal_validator', provolatile => 's', + prorettype => 'void', proargtypes => 'oid', + prosrc => 'fmgr_internal_validator' }, +{ oid => '2247', descr => '(internal)', + proname => 'fmgr_c_validator', provolatile => 's', prorettype => 'void', + proargtypes => 'oid', prosrc => 'fmgr_c_validator' }, +{ oid => '2248', descr => '(internal)', + proname => 'fmgr_sql_validator', provolatile => 's', prorettype => 'void', + proargtypes => 'oid', prosrc => 'fmgr_sql_validator' }, + +{ oid => '2250', + descr => 'user privilege on database by username, database name', + proname => 'has_database_privilege', provolatile => 's', prorettype => 'bool', + proargtypes => 'name text text', + prosrc => 'has_database_privilege_name_name' }, +{ oid => '2251', + descr => 'user privilege on database by username, database oid', + proname => 'has_database_privilege', provolatile => 's', prorettype => 'bool', + proargtypes => 'name oid text', prosrc => 'has_database_privilege_name_id' }, +{ oid => '2252', + descr => 'user privilege on database by user oid, database name', + proname => 'has_database_privilege', provolatile => 's', prorettype => 'bool', + proargtypes => 'oid text text', prosrc => 'has_database_privilege_id_name' }, +{ oid => '2253', + descr => 'user privilege on database by user oid, database oid', + proname => 'has_database_privilege', provolatile => 's', prorettype => 'bool', + proargtypes => 'oid oid text', prosrc => 'has_database_privilege_id_id' }, +{ oid => '2254', + descr => 'current user privilege on database by database name', + proname => 'has_database_privilege', provolatile => 's', prorettype => 'bool', + proargtypes => 'text text', prosrc => 'has_database_privilege_name' }, +{ oid => '2255', + descr => 'current user privilege on database by database oid', + proname => 'has_database_privilege', provolatile => 's', prorettype => 'bool', + proargtypes => 'oid text', prosrc => 'has_database_privilege_id' }, + +{ oid => '2256', + descr => 'user privilege on function by username, function name', + proname => 'has_function_privilege', provolatile => 's', prorettype => 'bool', + proargtypes => 'name text text', + prosrc => 'has_function_privilege_name_name' }, +{ oid => '2257', + descr => 'user privilege on function by username, function oid', + proname => 'has_function_privilege', provolatile => 's', prorettype => 'bool', + proargtypes => 'name oid text', prosrc => 'has_function_privilege_name_id' }, +{ oid => '2258', + descr => 'user privilege on function by user oid, function name', + proname => 'has_function_privilege', provolatile => 's', prorettype => 'bool', + proargtypes => 'oid text text', prosrc => 'has_function_privilege_id_name' }, +{ oid => '2259', + descr => 'user privilege on function by user oid, function oid', + proname => 'has_function_privilege', provolatile => 's', prorettype => 'bool', + proargtypes => 'oid oid text', prosrc => 'has_function_privilege_id_id' }, +{ oid => '2260', + descr => 'current user privilege on function by function name', + proname => 'has_function_privilege', provolatile => 's', prorettype => 'bool', + proargtypes => 'text text', prosrc => 'has_function_privilege_name' }, +{ oid => '2261', + descr => 'current user privilege on function by function oid', + proname => 'has_function_privilege', provolatile => 's', prorettype => 'bool', + proargtypes => 'oid text', prosrc => 'has_function_privilege_id' }, + +{ oid => '2262', + descr => 'user privilege on language by username, language name', + proname => 'has_language_privilege', provolatile => 's', prorettype => 'bool', + proargtypes => 'name text text', + prosrc => 'has_language_privilege_name_name' }, +{ oid => '2263', + descr => 'user privilege on language by username, language oid', + proname => 'has_language_privilege', provolatile => 's', prorettype => 'bool', + proargtypes => 'name oid text', prosrc => 'has_language_privilege_name_id' }, +{ oid => '2264', + descr => 'user privilege on language by user oid, language name', + proname => 'has_language_privilege', provolatile => 's', prorettype => 'bool', + proargtypes => 'oid text text', prosrc => 'has_language_privilege_id_name' }, +{ oid => '2265', + descr => 'user privilege on language by user oid, language oid', + proname => 'has_language_privilege', provolatile => 's', prorettype => 'bool', + proargtypes => 'oid oid text', prosrc => 'has_language_privilege_id_id' }, +{ oid => '2266', + descr => 'current user privilege on language by language name', + proname => 'has_language_privilege', provolatile => 's', prorettype => 'bool', + proargtypes => 'text text', prosrc => 'has_language_privilege_name' }, +{ oid => '2267', + descr => 'current user privilege on language by language oid', + proname => 'has_language_privilege', provolatile => 's', prorettype => 'bool', + proargtypes => 'oid text', prosrc => 'has_language_privilege_id' }, + +{ oid => '2268', descr => 'user privilege on schema by username, schema name', + proname => 'has_schema_privilege', provolatile => 's', prorettype => 'bool', + proargtypes => 'name text text', prosrc => 'has_schema_privilege_name_name' }, +{ oid => '2269', descr => 'user privilege on schema by username, schema oid', + proname => 'has_schema_privilege', provolatile => 's', prorettype => 'bool', + proargtypes => 'name oid text', prosrc => 'has_schema_privilege_name_id' }, +{ oid => '2270', descr => 'user privilege on schema by user oid, schema name', + proname => 'has_schema_privilege', provolatile => 's', prorettype => 'bool', + proargtypes => 'oid text text', prosrc => 'has_schema_privilege_id_name' }, +{ oid => '2271', descr => 'user privilege on schema by user oid, schema oid', + proname => 'has_schema_privilege', provolatile => 's', prorettype => 'bool', + proargtypes => 'oid oid text', prosrc => 'has_schema_privilege_id_id' }, +{ oid => '2272', descr => 'current user privilege on schema by schema name', + proname => 'has_schema_privilege', provolatile => 's', prorettype => 'bool', + proargtypes => 'text text', prosrc => 'has_schema_privilege_name' }, +{ oid => '2273', descr => 'current user privilege on schema by schema oid', + proname => 'has_schema_privilege', provolatile => 's', prorettype => 'bool', + proargtypes => 'oid text', prosrc => 'has_schema_privilege_id' }, + +{ oid => '2390', + descr => 'user privilege on tablespace by username, tablespace name', + proname => 'has_tablespace_privilege', provolatile => 's', + prorettype => 'bool', proargtypes => 'name text text', + prosrc => 'has_tablespace_privilege_name_name' }, +{ oid => '2391', + descr => 'user privilege on tablespace by username, tablespace oid', + proname => 'has_tablespace_privilege', provolatile => 's', + prorettype => 'bool', proargtypes => 'name oid text', + prosrc => 'has_tablespace_privilege_name_id' }, +{ oid => '2392', + descr => 'user privilege on tablespace by user oid, tablespace name', + proname => 'has_tablespace_privilege', provolatile => 's', + prorettype => 'bool', proargtypes => 'oid text text', + prosrc => 'has_tablespace_privilege_id_name' }, +{ oid => '2393', + descr => 'user privilege on tablespace by user oid, tablespace oid', + proname => 'has_tablespace_privilege', provolatile => 's', + prorettype => 'bool', proargtypes => 'oid oid text', + prosrc => 'has_tablespace_privilege_id_id' }, +{ oid => '2394', + descr => 'current user privilege on tablespace by tablespace name', + proname => 'has_tablespace_privilege', provolatile => 's', + prorettype => 'bool', proargtypes => 'text text', + prosrc => 'has_tablespace_privilege_name' }, +{ oid => '2395', + descr => 'current user privilege on tablespace by tablespace oid', + proname => 'has_tablespace_privilege', provolatile => 's', + prorettype => 'bool', proargtypes => 'oid text', + prosrc => 'has_tablespace_privilege_id' }, + +{ oid => '3000', + descr => 'user privilege on foreign data wrapper by username, foreign data wrapper name', + proname => 'has_foreign_data_wrapper_privilege', provolatile => 's', + prorettype => 'bool', proargtypes => 'name text text', + prosrc => 'has_foreign_data_wrapper_privilege_name_name' }, +{ oid => '3001', + descr => 'user privilege on foreign data wrapper by username, foreign data wrapper oid', + proname => 'has_foreign_data_wrapper_privilege', provolatile => 's', + prorettype => 'bool', proargtypes => 'name oid text', + prosrc => 'has_foreign_data_wrapper_privilege_name_id' }, +{ oid => '3002', + descr => 'user privilege on foreign data wrapper by user oid, foreign data wrapper name', + proname => 'has_foreign_data_wrapper_privilege', provolatile => 's', + prorettype => 'bool', proargtypes => 'oid text text', + prosrc => 'has_foreign_data_wrapper_privilege_id_name' }, +{ oid => '3003', + descr => 'user privilege on foreign data wrapper by user oid, foreign data wrapper oid', + proname => 'has_foreign_data_wrapper_privilege', provolatile => 's', + prorettype => 'bool', proargtypes => 'oid oid text', + prosrc => 'has_foreign_data_wrapper_privilege_id_id' }, +{ oid => '3004', + descr => 'current user privilege on foreign data wrapper by foreign data wrapper name', + proname => 'has_foreign_data_wrapper_privilege', provolatile => 's', + prorettype => 'bool', proargtypes => 'text text', + prosrc => 'has_foreign_data_wrapper_privilege_name' }, +{ oid => '3005', + descr => 'current user privilege on foreign data wrapper by foreign data wrapper oid', + proname => 'has_foreign_data_wrapper_privilege', provolatile => 's', + prorettype => 'bool', proargtypes => 'oid text', + prosrc => 'has_foreign_data_wrapper_privilege_id' }, + +{ oid => '3006', descr => 'user privilege on server by username, server name', + proname => 'has_server_privilege', provolatile => 's', prorettype => 'bool', + proargtypes => 'name text text', prosrc => 'has_server_privilege_name_name' }, +{ oid => '3007', descr => 'user privilege on server by username, server oid', + proname => 'has_server_privilege', provolatile => 's', prorettype => 'bool', + proargtypes => 'name oid text', prosrc => 'has_server_privilege_name_id' }, +{ oid => '3008', descr => 'user privilege on server by user oid, server name', + proname => 'has_server_privilege', provolatile => 's', prorettype => 'bool', + proargtypes => 'oid text text', prosrc => 'has_server_privilege_id_name' }, +{ oid => '3009', descr => 'user privilege on server by user oid, server oid', + proname => 'has_server_privilege', provolatile => 's', prorettype => 'bool', + proargtypes => 'oid oid text', prosrc => 'has_server_privilege_id_id' }, +{ oid => '3010', descr => 'current user privilege on server by server name', + proname => 'has_server_privilege', provolatile => 's', prorettype => 'bool', + proargtypes => 'text text', prosrc => 'has_server_privilege_name' }, +{ oid => '3011', descr => 'current user privilege on server by server oid', + proname => 'has_server_privilege', provolatile => 's', prorettype => 'bool', + proargtypes => 'oid text', prosrc => 'has_server_privilege_id' }, + +{ oid => '3138', descr => 'user privilege on type by username, type name', + proname => 'has_type_privilege', provolatile => 's', prorettype => 'bool', + proargtypes => 'name text text', prosrc => 'has_type_privilege_name_name' }, +{ oid => '3139', descr => 'user privilege on type by username, type oid', + proname => 'has_type_privilege', provolatile => 's', prorettype => 'bool', + proargtypes => 'name oid text', prosrc => 'has_type_privilege_name_id' }, +{ oid => '3140', descr => 'user privilege on type by user oid, type name', + proname => 'has_type_privilege', provolatile => 's', prorettype => 'bool', + proargtypes => 'oid text text', prosrc => 'has_type_privilege_id_name' }, +{ oid => '3141', descr => 'user privilege on type by user oid, type oid', + proname => 'has_type_privilege', provolatile => 's', prorettype => 'bool', + proargtypes => 'oid oid text', prosrc => 'has_type_privilege_id_id' }, +{ oid => '3142', descr => 'current user privilege on type by type name', + proname => 'has_type_privilege', provolatile => 's', prorettype => 'bool', + proargtypes => 'text text', prosrc => 'has_type_privilege_name' }, +{ oid => '3143', descr => 'current user privilege on type by type oid', + proname => 'has_type_privilege', provolatile => 's', prorettype => 'bool', + proargtypes => 'oid text', prosrc => 'has_type_privilege_id' }, + +{ oid => '2705', descr => 'user privilege on role by username, role name', + proname => 'pg_has_role', provolatile => 's', prorettype => 'bool', + proargtypes => 'name name text', prosrc => 'pg_has_role_name_name' }, +{ oid => '2706', descr => 'user privilege on role by username, role oid', + proname => 'pg_has_role', provolatile => 's', prorettype => 'bool', + proargtypes => 'name oid text', prosrc => 'pg_has_role_name_id' }, +{ oid => '2707', descr => 'user privilege on role by user oid, role name', + proname => 'pg_has_role', provolatile => 's', prorettype => 'bool', + proargtypes => 'oid name text', prosrc => 'pg_has_role_id_name' }, +{ oid => '2708', descr => 'user privilege on role by user oid, role oid', + proname => 'pg_has_role', provolatile => 's', prorettype => 'bool', + proargtypes => 'oid oid text', prosrc => 'pg_has_role_id_id' }, +{ oid => '2709', descr => 'current user privilege on role by role name', + proname => 'pg_has_role', provolatile => 's', prorettype => 'bool', + proargtypes => 'name text', prosrc => 'pg_has_role_name' }, +{ oid => '2710', descr => 'current user privilege on role by role oid', + proname => 'pg_has_role', provolatile => 's', prorettype => 'bool', + proargtypes => 'oid text', prosrc => 'pg_has_role_id' }, + +{ oid => '1269', + descr => 'bytes required to store the value, perhaps with compression', + proname => 'pg_column_size', provolatile => 's', prorettype => 'int4', + proargtypes => 'any', prosrc => 'pg_column_size' }, +{ oid => '2322', + descr => 'total disk space usage for the specified tablespace', + proname => 'pg_tablespace_size', provolatile => 'v', prorettype => 'int8', + proargtypes => 'oid', prosrc => 'pg_tablespace_size_oid' }, +{ oid => '2323', + descr => 'total disk space usage for the specified tablespace', + proname => 'pg_tablespace_size', provolatile => 'v', prorettype => 'int8', + proargtypes => 'name', prosrc => 'pg_tablespace_size_name' }, +{ oid => '2324', descr => 'total disk space usage for the specified database', + proname => 'pg_database_size', provolatile => 'v', prorettype => 'int8', + proargtypes => 'oid', prosrc => 'pg_database_size_oid' }, +{ oid => '2168', descr => 'total disk space usage for the specified database', + proname => 'pg_database_size', provolatile => 'v', prorettype => 'int8', + proargtypes => 'name', prosrc => 'pg_database_size_name' }, +{ oid => '2325', + descr => 'disk space usage for the main fork of the specified table or index', + proname => 'pg_relation_size', prolang => '14', provolatile => 'v', + prorettype => 'int8', proargtypes => 'regclass', + prosrc => 'select pg_catalog.pg_relation_size($1, \'\'main\'\')' }, +{ oid => '2332', + descr => 'disk space usage for the specified fork of a table or index', + proname => 'pg_relation_size', provolatile => 'v', prorettype => 'int8', + proargtypes => 'regclass text', prosrc => 'pg_relation_size' }, +{ oid => '2286', + descr => 'total disk space usage for the specified table and associated indexes', + proname => 'pg_total_relation_size', provolatile => 'v', prorettype => 'int8', + proargtypes => 'regclass', prosrc => 'pg_total_relation_size' }, +{ oid => '2288', + descr => 'convert a long int to a human readable text using size units', + proname => 'pg_size_pretty', prorettype => 'text', proargtypes => 'int8', + prosrc => 'pg_size_pretty' }, +{ oid => '3166', + descr => 'convert a numeric to a human readable text using size units', + proname => 'pg_size_pretty', prorettype => 'text', proargtypes => 'numeric', + prosrc => 'pg_size_pretty_numeric' }, +{ oid => '3334', + descr => 'convert a size in human-readable format with size units into bytes', + proname => 'pg_size_bytes', prorettype => 'int8', proargtypes => 'text', + prosrc => 'pg_size_bytes' }, +{ oid => '2997', + descr => 'disk space usage for the specified table, including TOAST, free space and visibility map', + proname => 'pg_table_size', provolatile => 'v', prorettype => 'int8', + proargtypes => 'regclass', prosrc => 'pg_table_size' }, +{ oid => '2998', + descr => 'disk space usage for all indexes attached to the specified table', + proname => 'pg_indexes_size', provolatile => 'v', prorettype => 'int8', + proargtypes => 'regclass', prosrc => 'pg_indexes_size' }, +{ oid => '2999', descr => 'filenode identifier of relation', + proname => 'pg_relation_filenode', provolatile => 's', prorettype => 'oid', + proargtypes => 'regclass', prosrc => 'pg_relation_filenode' }, +{ oid => '3454', descr => 'relation OID for filenode and tablespace', + proname => 'pg_filenode_relation', provolatile => 's', + prorettype => 'regclass', proargtypes => 'oid oid', + prosrc => 'pg_filenode_relation' }, +{ oid => '3034', descr => 'file path of relation', + proname => 'pg_relation_filepath', provolatile => 's', prorettype => 'text', + proargtypes => 'regclass', prosrc => 'pg_relation_filepath' }, + +{ oid => '2316', descr => '(internal)', + proname => 'postgresql_fdw_validator', prorettype => 'bool', + proargtypes => '_text oid', prosrc => 'postgresql_fdw_validator' }, + +{ oid => '2290', descr => 'I/O', + proname => 'record_in', provolatile => 's', prorettype => 'record', + proargtypes => 'cstring oid int4', prosrc => 'record_in' }, +{ oid => '2291', descr => 'I/O', + proname => 'record_out', provolatile => 's', prorettype => 'cstring', + proargtypes => 'record', prosrc => 'record_out' }, +{ oid => '2292', descr => 'I/O', + proname => 'cstring_in', prorettype => 'cstring', proargtypes => 'cstring', + prosrc => 'cstring_in' }, +{ oid => '2293', descr => 'I/O', + proname => 'cstring_out', prorettype => 'cstring', proargtypes => 'cstring', + prosrc => 'cstring_out' }, +{ oid => '2294', descr => 'I/O', + proname => 'any_in', prorettype => 'any', proargtypes => 'cstring', + prosrc => 'any_in' }, +{ oid => '2295', descr => 'I/O', + proname => 'any_out', prorettype => 'cstring', proargtypes => 'any', + prosrc => 'any_out' }, +{ oid => '2296', descr => 'I/O', + proname => 'anyarray_in', prorettype => 'anyarray', proargtypes => 'cstring', + prosrc => 'anyarray_in' }, +{ oid => '2297', descr => 'I/O', + proname => 'anyarray_out', provolatile => 's', prorettype => 'cstring', + proargtypes => 'anyarray', prosrc => 'anyarray_out' }, +{ oid => '2298', descr => 'I/O', + proname => 'void_in', prorettype => 'void', proargtypes => 'cstring', + prosrc => 'void_in' }, +{ oid => '2299', descr => 'I/O', + proname => 'void_out', prorettype => 'cstring', proargtypes => 'void', + prosrc => 'void_out' }, +{ oid => '2300', descr => 'I/O', + proname => 'trigger_in', proisstrict => 'f', prorettype => 'trigger', + proargtypes => 'cstring', prosrc => 'trigger_in' }, +{ oid => '2301', descr => 'I/O', + proname => 'trigger_out', prorettype => 'cstring', proargtypes => 'trigger', + prosrc => 'trigger_out' }, +{ oid => '3594', descr => 'I/O', + proname => 'event_trigger_in', proisstrict => 'f', + prorettype => 'event_trigger', proargtypes => 'cstring', + prosrc => 'event_trigger_in' }, +{ oid => '3595', descr => 'I/O', + proname => 'event_trigger_out', prorettype => 'cstring', + proargtypes => 'event_trigger', prosrc => 'event_trigger_out' }, +{ oid => '2302', descr => 'I/O', + proname => 'language_handler_in', proisstrict => 'f', + prorettype => 'language_handler', proargtypes => 'cstring', + prosrc => 'language_handler_in' }, +{ oid => '2303', descr => 'I/O', + proname => 'language_handler_out', prorettype => 'cstring', + proargtypes => 'language_handler', prosrc => 'language_handler_out' }, +{ oid => '2304', descr => 'I/O', + proname => 'internal_in', proisstrict => 'f', prorettype => 'internal', + proargtypes => 'cstring', prosrc => 'internal_in' }, +{ oid => '2305', descr => 'I/O', + proname => 'internal_out', prorettype => 'cstring', proargtypes => 'internal', + prosrc => 'internal_out' }, +{ oid => '2306', descr => 'I/O', + proname => 'opaque_in', proisstrict => 'f', prorettype => 'opaque', + proargtypes => 'cstring', prosrc => 'opaque_in' }, +{ oid => '2307', descr => 'I/O', + proname => 'opaque_out', prorettype => 'cstring', proargtypes => 'opaque', + prosrc => 'opaque_out' }, +{ oid => '2312', descr => 'I/O', + proname => 'anyelement_in', prorettype => 'anyelement', + proargtypes => 'cstring', prosrc => 'anyelement_in' }, +{ oid => '2313', descr => 'I/O', + proname => 'anyelement_out', prorettype => 'cstring', + proargtypes => 'anyelement', prosrc => 'anyelement_out' }, +{ oid => '2398', descr => 'I/O', + proname => 'shell_in', proisstrict => 'f', prorettype => 'opaque', + proargtypes => 'cstring', prosrc => 'shell_in' }, +{ oid => '2399', descr => 'I/O', + proname => 'shell_out', prorettype => 'cstring', proargtypes => 'opaque', + prosrc => 'shell_out' }, +{ oid => '2597', descr => 'I/O', + proname => 'domain_in', proisstrict => 'f', provolatile => 's', + prorettype => 'any', proargtypes => 'cstring oid int4', + prosrc => 'domain_in' }, +{ oid => '2598', descr => 'I/O', + proname => 'domain_recv', proisstrict => 'f', provolatile => 's', + prorettype => 'any', proargtypes => 'internal oid int4', + prosrc => 'domain_recv' }, +{ oid => '2777', descr => 'I/O', + proname => 'anynonarray_in', prorettype => 'anynonarray', + proargtypes => 'cstring', prosrc => 'anynonarray_in' }, +{ oid => '2778', descr => 'I/O', + proname => 'anynonarray_out', prorettype => 'cstring', + proargtypes => 'anynonarray', prosrc => 'anynonarray_out' }, +{ oid => '3116', descr => 'I/O', + proname => 'fdw_handler_in', proisstrict => 'f', prorettype => 'fdw_handler', + proargtypes => 'cstring', prosrc => 'fdw_handler_in' }, +{ oid => '3117', descr => 'I/O', + proname => 'fdw_handler_out', prorettype => 'cstring', + proargtypes => 'fdw_handler', prosrc => 'fdw_handler_out' }, +{ oid => '326', descr => 'I/O', + proname => 'index_am_handler_in', proisstrict => 'f', + prorettype => 'index_am_handler', proargtypes => 'cstring', + prosrc => 'index_am_handler_in' }, +{ oid => '327', descr => 'I/O', + proname => 'index_am_handler_out', prorettype => 'cstring', + proargtypes => 'index_am_handler', prosrc => 'index_am_handler_out' }, +{ oid => '3311', descr => 'I/O', + proname => 'tsm_handler_in', proisstrict => 'f', prorettype => 'tsm_handler', + proargtypes => 'cstring', prosrc => 'tsm_handler_in' }, +{ oid => '3312', descr => 'I/O', + proname => 'tsm_handler_out', prorettype => 'cstring', + proargtypes => 'tsm_handler', prosrc => 'tsm_handler_out' }, + +# tablesample method handlers +{ oid => '3313', descr => 'BERNOULLI tablesample method handler', + proname => 'bernoulli', provolatile => 'v', prorettype => 'tsm_handler', + proargtypes => 'internal', prosrc => 'tsm_bernoulli_handler' }, +{ oid => '3314', descr => 'SYSTEM tablesample method handler', + proname => 'system', provolatile => 'v', prorettype => 'tsm_handler', + proargtypes => 'internal', prosrc => 'tsm_system_handler' }, + +# cryptographic +{ oid => '2311', descr => 'MD5 hash', + proname => 'md5', proleakproof => 't', prorettype => 'text', + proargtypes => 'text', prosrc => 'md5_text' }, +{ oid => '2321', descr => 'MD5 hash', + proname => 'md5', proleakproof => 't', prorettype => 'text', + proargtypes => 'bytea', prosrc => 'md5_bytea' }, +{ oid => '3419', descr => 'SHA-224 hash', + proname => 'sha224', proleakproof => 't', prorettype => 'bytea', + proargtypes => 'bytea', prosrc => 'sha224_bytea' }, +{ oid => '3420', descr => 'SHA-256 hash', + proname => 'sha256', proleakproof => 't', prorettype => 'bytea', + proargtypes => 'bytea', prosrc => 'sha256_bytea' }, +{ oid => '3421', descr => 'SHA-384 hash', + proname => 'sha384', proleakproof => 't', prorettype => 'bytea', + proargtypes => 'bytea', prosrc => 'sha384_bytea' }, +{ oid => '3422', descr => 'SHA-512 hash', + proname => 'sha512', proleakproof => 't', prorettype => 'bytea', + proargtypes => 'bytea', prosrc => 'sha512_bytea' }, + +# crosstype operations for date vs. timestamp and timestamptz +{ oid => '2338', + proname => 'date_lt_timestamp', prorettype => 'bool', + proargtypes => 'date timestamp', prosrc => 'date_lt_timestamp' }, +{ oid => '2339', + proname => 'date_le_timestamp', prorettype => 'bool', + proargtypes => 'date timestamp', prosrc => 'date_le_timestamp' }, +{ oid => '2340', + proname => 'date_eq_timestamp', prorettype => 'bool', + proargtypes => 'date timestamp', prosrc => 'date_eq_timestamp' }, +{ oid => '2341', + proname => 'date_gt_timestamp', prorettype => 'bool', + proargtypes => 'date timestamp', prosrc => 'date_gt_timestamp' }, +{ oid => '2342', + proname => 'date_ge_timestamp', prorettype => 'bool', + proargtypes => 'date timestamp', prosrc => 'date_ge_timestamp' }, +{ oid => '2343', + proname => 'date_ne_timestamp', prorettype => 'bool', + proargtypes => 'date timestamp', prosrc => 'date_ne_timestamp' }, +{ oid => '2344', descr => 'less-equal-greater', + proname => 'date_cmp_timestamp', prorettype => 'int4', + proargtypes => 'date timestamp', prosrc => 'date_cmp_timestamp' }, + +{ oid => '2351', + proname => 'date_lt_timestamptz', provolatile => 's', prorettype => 'bool', + proargtypes => 'date timestamptz', prosrc => 'date_lt_timestamptz' }, +{ oid => '2352', + proname => 'date_le_timestamptz', provolatile => 's', prorettype => 'bool', + proargtypes => 'date timestamptz', prosrc => 'date_le_timestamptz' }, +{ oid => '2353', + proname => 'date_eq_timestamptz', provolatile => 's', prorettype => 'bool', + proargtypes => 'date timestamptz', prosrc => 'date_eq_timestamptz' }, +{ oid => '2354', + proname => 'date_gt_timestamptz', provolatile => 's', prorettype => 'bool', + proargtypes => 'date timestamptz', prosrc => 'date_gt_timestamptz' }, +{ oid => '2355', + proname => 'date_ge_timestamptz', provolatile => 's', prorettype => 'bool', + proargtypes => 'date timestamptz', prosrc => 'date_ge_timestamptz' }, +{ oid => '2356', + proname => 'date_ne_timestamptz', provolatile => 's', prorettype => 'bool', + proargtypes => 'date timestamptz', prosrc => 'date_ne_timestamptz' }, +{ oid => '2357', descr => 'less-equal-greater', + proname => 'date_cmp_timestamptz', provolatile => 's', prorettype => 'int4', + proargtypes => 'date timestamptz', prosrc => 'date_cmp_timestamptz' }, + +{ oid => '2364', + proname => 'timestamp_lt_date', prorettype => 'bool', + proargtypes => 'timestamp date', prosrc => 'timestamp_lt_date' }, +{ oid => '2365', + proname => 'timestamp_le_date', prorettype => 'bool', + proargtypes => 'timestamp date', prosrc => 'timestamp_le_date' }, +{ oid => '2366', + proname => 'timestamp_eq_date', prorettype => 'bool', + proargtypes => 'timestamp date', prosrc => 'timestamp_eq_date' }, +{ oid => '2367', + proname => 'timestamp_gt_date', prorettype => 'bool', + proargtypes => 'timestamp date', prosrc => 'timestamp_gt_date' }, +{ oid => '2368', + proname => 'timestamp_ge_date', prorettype => 'bool', + proargtypes => 'timestamp date', prosrc => 'timestamp_ge_date' }, +{ oid => '2369', + proname => 'timestamp_ne_date', prorettype => 'bool', + proargtypes => 'timestamp date', prosrc => 'timestamp_ne_date' }, +{ oid => '2370', descr => 'less-equal-greater', + proname => 'timestamp_cmp_date', prorettype => 'int4', + proargtypes => 'timestamp date', prosrc => 'timestamp_cmp_date' }, + +{ oid => '2377', + proname => 'timestamptz_lt_date', provolatile => 's', prorettype => 'bool', + proargtypes => 'timestamptz date', prosrc => 'timestamptz_lt_date' }, +{ oid => '2378', + proname => 'timestamptz_le_date', provolatile => 's', prorettype => 'bool', + proargtypes => 'timestamptz date', prosrc => 'timestamptz_le_date' }, +{ oid => '2379', + proname => 'timestamptz_eq_date', provolatile => 's', prorettype => 'bool', + proargtypes => 'timestamptz date', prosrc => 'timestamptz_eq_date' }, +{ oid => '2380', + proname => 'timestamptz_gt_date', provolatile => 's', prorettype => 'bool', + proargtypes => 'timestamptz date', prosrc => 'timestamptz_gt_date' }, +{ oid => '2381', + proname => 'timestamptz_ge_date', provolatile => 's', prorettype => 'bool', + proargtypes => 'timestamptz date', prosrc => 'timestamptz_ge_date' }, +{ oid => '2382', + proname => 'timestamptz_ne_date', provolatile => 's', prorettype => 'bool', + proargtypes => 'timestamptz date', prosrc => 'timestamptz_ne_date' }, +{ oid => '2383', descr => 'less-equal-greater', + proname => 'timestamptz_cmp_date', provolatile => 's', prorettype => 'int4', + proargtypes => 'timestamptz date', prosrc => 'timestamptz_cmp_date' }, + +# crosstype operations for timestamp vs. timestamptz +{ oid => '2520', + proname => 'timestamp_lt_timestamptz', provolatile => 's', + prorettype => 'bool', proargtypes => 'timestamp timestamptz', + prosrc => 'timestamp_lt_timestamptz' }, +{ oid => '2521', + proname => 'timestamp_le_timestamptz', provolatile => 's', + prorettype => 'bool', proargtypes => 'timestamp timestamptz', + prosrc => 'timestamp_le_timestamptz' }, +{ oid => '2522', + proname => 'timestamp_eq_timestamptz', provolatile => 's', + prorettype => 'bool', proargtypes => 'timestamp timestamptz', + prosrc => 'timestamp_eq_timestamptz' }, +{ oid => '2523', + proname => 'timestamp_gt_timestamptz', provolatile => 's', + prorettype => 'bool', proargtypes => 'timestamp timestamptz', + prosrc => 'timestamp_gt_timestamptz' }, +{ oid => '2524', + proname => 'timestamp_ge_timestamptz', provolatile => 's', + prorettype => 'bool', proargtypes => 'timestamp timestamptz', + prosrc => 'timestamp_ge_timestamptz' }, +{ oid => '2525', + proname => 'timestamp_ne_timestamptz', provolatile => 's', + prorettype => 'bool', proargtypes => 'timestamp timestamptz', + prosrc => 'timestamp_ne_timestamptz' }, +{ oid => '2526', descr => 'less-equal-greater', + proname => 'timestamp_cmp_timestamptz', provolatile => 's', + prorettype => 'int4', proargtypes => 'timestamp timestamptz', + prosrc => 'timestamp_cmp_timestamptz' }, + +{ oid => '2527', + proname => 'timestamptz_lt_timestamp', provolatile => 's', + prorettype => 'bool', proargtypes => 'timestamptz timestamp', + prosrc => 'timestamptz_lt_timestamp' }, +{ oid => '2528', + proname => 'timestamptz_le_timestamp', provolatile => 's', + prorettype => 'bool', proargtypes => 'timestamptz timestamp', + prosrc => 'timestamptz_le_timestamp' }, +{ oid => '2529', + proname => 'timestamptz_eq_timestamp', provolatile => 's', + prorettype => 'bool', proargtypes => 'timestamptz timestamp', + prosrc => 'timestamptz_eq_timestamp' }, +{ oid => '2530', + proname => 'timestamptz_gt_timestamp', provolatile => 's', + prorettype => 'bool', proargtypes => 'timestamptz timestamp', + prosrc => 'timestamptz_gt_timestamp' }, +{ oid => '2531', + proname => 'timestamptz_ge_timestamp', provolatile => 's', + prorettype => 'bool', proargtypes => 'timestamptz timestamp', + prosrc => 'timestamptz_ge_timestamp' }, +{ oid => '2532', + proname => 'timestamptz_ne_timestamp', provolatile => 's', + prorettype => 'bool', proargtypes => 'timestamptz timestamp', + prosrc => 'timestamptz_ne_timestamp' }, +{ oid => '2533', descr => 'less-equal-greater', + proname => 'timestamptz_cmp_timestamp', provolatile => 's', + prorettype => 'int4', proargtypes => 'timestamptz timestamp', + prosrc => 'timestamptz_cmp_timestamp' }, + +# send/receive functions +{ oid => '2400', descr => 'I/O', + proname => 'array_recv', provolatile => 's', prorettype => 'anyarray', + proargtypes => 'internal oid int4', prosrc => 'array_recv' }, +{ oid => '2401', descr => 'I/O', + proname => 'array_send', provolatile => 's', prorettype => 'bytea', + proargtypes => 'anyarray', prosrc => 'array_send' }, +{ oid => '2402', descr => 'I/O', + proname => 'record_recv', provolatile => 's', prorettype => 'record', + proargtypes => 'internal oid int4', prosrc => 'record_recv' }, +{ oid => '2403', descr => 'I/O', + proname => 'record_send', provolatile => 's', prorettype => 'bytea', + proargtypes => 'record', prosrc => 'record_send' }, +{ oid => '2404', descr => 'I/O', + proname => 'int2recv', prorettype => 'int2', proargtypes => 'internal', + prosrc => 'int2recv' }, +{ oid => '2405', descr => 'I/O', + proname => 'int2send', prorettype => 'bytea', proargtypes => 'int2', + prosrc => 'int2send' }, +{ oid => '2406', descr => 'I/O', + proname => 'int4recv', prorettype => 'int4', proargtypes => 'internal', + prosrc => 'int4recv' }, +{ oid => '2407', descr => 'I/O', + proname => 'int4send', prorettype => 'bytea', proargtypes => 'int4', + prosrc => 'int4send' }, +{ oid => '2408', descr => 'I/O', + proname => 'int8recv', prorettype => 'int8', proargtypes => 'internal', + prosrc => 'int8recv' }, +{ oid => '2409', descr => 'I/O', + proname => 'int8send', prorettype => 'bytea', proargtypes => 'int8', + prosrc => 'int8send' }, +{ oid => '2410', descr => 'I/O', + proname => 'int2vectorrecv', prorettype => 'int2vector', + proargtypes => 'internal', prosrc => 'int2vectorrecv' }, +{ oid => '2411', descr => 'I/O', + proname => 'int2vectorsend', prorettype => 'bytea', + proargtypes => 'int2vector', prosrc => 'int2vectorsend' }, +{ oid => '2412', descr => 'I/O', + proname => 'bytearecv', prorettype => 'bytea', proargtypes => 'internal', + prosrc => 'bytearecv' }, +{ oid => '2413', descr => 'I/O', + proname => 'byteasend', prorettype => 'bytea', proargtypes => 'bytea', + prosrc => 'byteasend' }, +{ oid => '2414', descr => 'I/O', + proname => 'textrecv', provolatile => 's', prorettype => 'text', + proargtypes => 'internal', prosrc => 'textrecv' }, +{ oid => '2415', descr => 'I/O', + proname => 'textsend', provolatile => 's', prorettype => 'bytea', + proargtypes => 'text', prosrc => 'textsend' }, +{ oid => '2416', descr => 'I/O', + proname => 'unknownrecv', prorettype => 'unknown', proargtypes => 'internal', + prosrc => 'unknownrecv' }, +{ oid => '2417', descr => 'I/O', + proname => 'unknownsend', prorettype => 'bytea', proargtypes => 'unknown', + prosrc => 'unknownsend' }, +{ oid => '2418', descr => 'I/O', + proname => 'oidrecv', prorettype => 'oid', proargtypes => 'internal', + prosrc => 'oidrecv' }, +{ oid => '2419', descr => 'I/O', + proname => 'oidsend', prorettype => 'bytea', proargtypes => 'oid', + prosrc => 'oidsend' }, +{ oid => '2420', descr => 'I/O', + proname => 'oidvectorrecv', prorettype => 'oidvector', + proargtypes => 'internal', prosrc => 'oidvectorrecv' }, +{ oid => '2421', descr => 'I/O', + proname => 'oidvectorsend', prorettype => 'bytea', proargtypes => 'oidvector', + prosrc => 'oidvectorsend' }, +{ oid => '2422', descr => 'I/O', + proname => 'namerecv', provolatile => 's', prorettype => 'name', + proargtypes => 'internal', prosrc => 'namerecv' }, +{ oid => '2423', descr => 'I/O', + proname => 'namesend', provolatile => 's', prorettype => 'bytea', + proargtypes => 'name', prosrc => 'namesend' }, +{ oid => '2424', descr => 'I/O', + proname => 'float4recv', prorettype => 'float4', proargtypes => 'internal', + prosrc => 'float4recv' }, +{ oid => '2425', descr => 'I/O', + proname => 'float4send', prorettype => 'bytea', proargtypes => 'float4', + prosrc => 'float4send' }, +{ oid => '2426', descr => 'I/O', + proname => 'float8recv', prorettype => 'float8', proargtypes => 'internal', + prosrc => 'float8recv' }, +{ oid => '2427', descr => 'I/O', + proname => 'float8send', prorettype => 'bytea', proargtypes => 'float8', + prosrc => 'float8send' }, +{ oid => '2428', descr => 'I/O', + proname => 'point_recv', prorettype => 'point', proargtypes => 'internal', + prosrc => 'point_recv' }, +{ oid => '2429', descr => 'I/O', + proname => 'point_send', prorettype => 'bytea', proargtypes => 'point', + prosrc => 'point_send' }, +{ oid => '2430', descr => 'I/O', + proname => 'bpcharrecv', provolatile => 's', prorettype => 'bpchar', + proargtypes => 'internal oid int4', prosrc => 'bpcharrecv' }, +{ oid => '2431', descr => 'I/O', + proname => 'bpcharsend', provolatile => 's', prorettype => 'bytea', + proargtypes => 'bpchar', prosrc => 'bpcharsend' }, +{ oid => '2432', descr => 'I/O', + proname => 'varcharrecv', provolatile => 's', prorettype => 'varchar', + proargtypes => 'internal oid int4', prosrc => 'varcharrecv' }, +{ oid => '2433', descr => 'I/O', + proname => 'varcharsend', provolatile => 's', prorettype => 'bytea', + proargtypes => 'varchar', prosrc => 'varcharsend' }, +{ oid => '2434', descr => 'I/O', + proname => 'charrecv', prorettype => 'char', proargtypes => 'internal', + prosrc => 'charrecv' }, +{ oid => '2435', descr => 'I/O', + proname => 'charsend', prorettype => 'bytea', proargtypes => 'char', + prosrc => 'charsend' }, +{ oid => '2436', descr => 'I/O', + proname => 'boolrecv', prorettype => 'bool', proargtypes => 'internal', + prosrc => 'boolrecv' }, +{ oid => '2437', descr => 'I/O', + proname => 'boolsend', prorettype => 'bytea', proargtypes => 'bool', + prosrc => 'boolsend' }, +{ oid => '2438', descr => 'I/O', + proname => 'tidrecv', prorettype => 'tid', proargtypes => 'internal', + prosrc => 'tidrecv' }, +{ oid => '2439', descr => 'I/O', + proname => 'tidsend', prorettype => 'bytea', proargtypes => 'tid', + prosrc => 'tidsend' }, +{ oid => '2440', descr => 'I/O', + proname => 'xidrecv', prorettype => 'xid', proargtypes => 'internal', + prosrc => 'xidrecv' }, +{ oid => '2441', descr => 'I/O', + proname => 'xidsend', prorettype => 'bytea', proargtypes => 'xid', + prosrc => 'xidsend' }, +{ oid => '2442', descr => 'I/O', + proname => 'cidrecv', prorettype => 'cid', proargtypes => 'internal', + prosrc => 'cidrecv' }, +{ oid => '2443', descr => 'I/O', + proname => 'cidsend', prorettype => 'bytea', proargtypes => 'cid', + prosrc => 'cidsend' }, +{ oid => '2444', descr => 'I/O', + proname => 'regprocrecv', prorettype => 'regproc', proargtypes => 'internal', + prosrc => 'regprocrecv' }, +{ oid => '2445', descr => 'I/O', + proname => 'regprocsend', prorettype => 'bytea', proargtypes => 'regproc', + prosrc => 'regprocsend' }, +{ oid => '2446', descr => 'I/O', + proname => 'regprocedurerecv', prorettype => 'regprocedure', + proargtypes => 'internal', prosrc => 'regprocedurerecv' }, +{ oid => '2447', descr => 'I/O', + proname => 'regproceduresend', prorettype => 'bytea', + proargtypes => 'regprocedure', prosrc => 'regproceduresend' }, +{ oid => '2448', descr => 'I/O', + proname => 'regoperrecv', prorettype => 'regoper', proargtypes => 'internal', + prosrc => 'regoperrecv' }, +{ oid => '2449', descr => 'I/O', + proname => 'regopersend', prorettype => 'bytea', proargtypes => 'regoper', + prosrc => 'regopersend' }, +{ oid => '2450', descr => 'I/O', + proname => 'regoperatorrecv', prorettype => 'regoperator', + proargtypes => 'internal', prosrc => 'regoperatorrecv' }, +{ oid => '2451', descr => 'I/O', + proname => 'regoperatorsend', prorettype => 'bytea', + proargtypes => 'regoperator', prosrc => 'regoperatorsend' }, +{ oid => '2452', descr => 'I/O', + proname => 'regclassrecv', prorettype => 'regclass', + proargtypes => 'internal', prosrc => 'regclassrecv' }, +{ oid => '2453', descr => 'I/O', + proname => 'regclasssend', prorettype => 'bytea', proargtypes => 'regclass', + prosrc => 'regclasssend' }, +{ oid => '2454', descr => 'I/O', + proname => 'regtyperecv', prorettype => 'regtype', proargtypes => 'internal', + prosrc => 'regtyperecv' }, +{ oid => '2455', descr => 'I/O', + proname => 'regtypesend', prorettype => 'bytea', proargtypes => 'regtype', + prosrc => 'regtypesend' }, + +{ oid => '4094', descr => 'I/O', + proname => 'regrolerecv', prorettype => 'regrole', proargtypes => 'internal', + prosrc => 'regrolerecv' }, +{ oid => '4095', descr => 'I/O', + proname => 'regrolesend', prorettype => 'bytea', proargtypes => 'regrole', + prosrc => 'regrolesend' }, +{ oid => '4087', descr => 'I/O', + proname => 'regnamespacerecv', prorettype => 'regnamespace', + proargtypes => 'internal', prosrc => 'regnamespacerecv' }, +{ oid => '4088', descr => 'I/O', + proname => 'regnamespacesend', prorettype => 'bytea', + proargtypes => 'regnamespace', prosrc => 'regnamespacesend' }, +{ oid => '2456', descr => 'I/O', + proname => 'bit_recv', prorettype => 'bit', + proargtypes => 'internal oid int4', prosrc => 'bit_recv' }, +{ oid => '2457', descr => 'I/O', + proname => 'bit_send', prorettype => 'bytea', proargtypes => 'bit', + prosrc => 'bit_send' }, +{ oid => '2458', descr => 'I/O', + proname => 'varbit_recv', prorettype => 'varbit', + proargtypes => 'internal oid int4', prosrc => 'varbit_recv' }, +{ oid => '2459', descr => 'I/O', + proname => 'varbit_send', prorettype => 'bytea', proargtypes => 'varbit', + prosrc => 'varbit_send' }, +{ oid => '2460', descr => 'I/O', + proname => 'numeric_recv', prorettype => 'numeric', + proargtypes => 'internal oid int4', prosrc => 'numeric_recv' }, +{ oid => '2461', descr => 'I/O', + proname => 'numeric_send', prorettype => 'bytea', proargtypes => 'numeric', + prosrc => 'numeric_send' }, +{ oid => '2462', descr => 'I/O', + proname => 'abstimerecv', prorettype => 'abstime', proargtypes => 'internal', + prosrc => 'abstimerecv' }, +{ oid => '2463', descr => 'I/O', + proname => 'abstimesend', prorettype => 'bytea', proargtypes => 'abstime', + prosrc => 'abstimesend' }, +{ oid => '2464', descr => 'I/O', + proname => 'reltimerecv', prorettype => 'reltime', proargtypes => 'internal', + prosrc => 'reltimerecv' }, +{ oid => '2465', descr => 'I/O', + proname => 'reltimesend', prorettype => 'bytea', proargtypes => 'reltime', + prosrc => 'reltimesend' }, +{ oid => '2466', descr => 'I/O', + proname => 'tintervalrecv', prorettype => 'tinterval', + proargtypes => 'internal', prosrc => 'tintervalrecv' }, +{ oid => '2467', descr => 'I/O', + proname => 'tintervalsend', prorettype => 'bytea', proargtypes => 'tinterval', + prosrc => 'tintervalsend' }, +{ oid => '2468', descr => 'I/O', + proname => 'date_recv', prorettype => 'date', proargtypes => 'internal', + prosrc => 'date_recv' }, +{ oid => '2469', descr => 'I/O', + proname => 'date_send', prorettype => 'bytea', proargtypes => 'date', + prosrc => 'date_send' }, +{ oid => '2470', descr => 'I/O', + proname => 'time_recv', prorettype => 'time', + proargtypes => 'internal oid int4', prosrc => 'time_recv' }, +{ oid => '2471', descr => 'I/O', + proname => 'time_send', prorettype => 'bytea', proargtypes => 'time', + prosrc => 'time_send' }, +{ oid => '2472', descr => 'I/O', + proname => 'timetz_recv', prorettype => 'timetz', + proargtypes => 'internal oid int4', prosrc => 'timetz_recv' }, +{ oid => '2473', descr => 'I/O', + proname => 'timetz_send', prorettype => 'bytea', proargtypes => 'timetz', + prosrc => 'timetz_send' }, +{ oid => '2474', descr => 'I/O', + proname => 'timestamp_recv', prorettype => 'timestamp', + proargtypes => 'internal oid int4', prosrc => 'timestamp_recv' }, +{ oid => '2475', descr => 'I/O', + proname => 'timestamp_send', prorettype => 'bytea', + proargtypes => 'timestamp', prosrc => 'timestamp_send' }, +{ oid => '2476', descr => 'I/O', + proname => 'timestamptz_recv', prorettype => 'timestamptz', + proargtypes => 'internal oid int4', prosrc => 'timestamptz_recv' }, +{ oid => '2477', descr => 'I/O', + proname => 'timestamptz_send', prorettype => 'bytea', + proargtypes => 'timestamptz', prosrc => 'timestamptz_send' }, +{ oid => '2478', descr => 'I/O', + proname => 'interval_recv', prorettype => 'interval', + proargtypes => 'internal oid int4', prosrc => 'interval_recv' }, +{ oid => '2479', descr => 'I/O', + proname => 'interval_send', prorettype => 'bytea', proargtypes => 'interval', + prosrc => 'interval_send' }, +{ oid => '2480', descr => 'I/O', + proname => 'lseg_recv', prorettype => 'lseg', proargtypes => 'internal', + prosrc => 'lseg_recv' }, +{ oid => '2481', descr => 'I/O', + proname => 'lseg_send', prorettype => 'bytea', proargtypes => 'lseg', + prosrc => 'lseg_send' }, +{ oid => '2482', descr => 'I/O', + proname => 'path_recv', prorettype => 'path', proargtypes => 'internal', + prosrc => 'path_recv' }, +{ oid => '2483', descr => 'I/O', + proname => 'path_send', prorettype => 'bytea', proargtypes => 'path', + prosrc => 'path_send' }, +{ oid => '2484', descr => 'I/O', + proname => 'box_recv', prorettype => 'box', proargtypes => 'internal', + prosrc => 'box_recv' }, +{ oid => '2485', descr => 'I/O', + proname => 'box_send', prorettype => 'bytea', proargtypes => 'box', + prosrc => 'box_send' }, +{ oid => '2486', descr => 'I/O', + proname => 'poly_recv', prorettype => 'polygon', proargtypes => 'internal', + prosrc => 'poly_recv' }, +{ oid => '2487', descr => 'I/O', + proname => 'poly_send', prorettype => 'bytea', proargtypes => 'polygon', + prosrc => 'poly_send' }, +{ oid => '2488', descr => 'I/O', + proname => 'line_recv', prorettype => 'line', proargtypes => 'internal', + prosrc => 'line_recv' }, +{ oid => '2489', descr => 'I/O', + proname => 'line_send', prorettype => 'bytea', proargtypes => 'line', + prosrc => 'line_send' }, +{ oid => '2490', descr => 'I/O', + proname => 'circle_recv', prorettype => 'circle', proargtypes => 'internal', + prosrc => 'circle_recv' }, +{ oid => '2491', descr => 'I/O', + proname => 'circle_send', prorettype => 'bytea', proargtypes => 'circle', + prosrc => 'circle_send' }, +{ oid => '2492', descr => 'I/O', + proname => 'cash_recv', prorettype => 'money', proargtypes => 'internal', + prosrc => 'cash_recv' }, +{ oid => '2493', descr => 'I/O', + proname => 'cash_send', prorettype => 'bytea', proargtypes => 'money', + prosrc => 'cash_send' }, +{ oid => '2494', descr => 'I/O', + proname => 'macaddr_recv', prorettype => 'macaddr', proargtypes => 'internal', + prosrc => 'macaddr_recv' }, +{ oid => '2495', descr => 'I/O', + proname => 'macaddr_send', prorettype => 'bytea', proargtypes => 'macaddr', + prosrc => 'macaddr_send' }, +{ oid => '2496', descr => 'I/O', + proname => 'inet_recv', prorettype => 'inet', proargtypes => 'internal', + prosrc => 'inet_recv' }, +{ oid => '2497', descr => 'I/O', + proname => 'inet_send', prorettype => 'bytea', proargtypes => 'inet', + prosrc => 'inet_send' }, +{ oid => '2498', descr => 'I/O', + proname => 'cidr_recv', prorettype => 'cidr', proargtypes => 'internal', + prosrc => 'cidr_recv' }, +{ oid => '2499', descr => 'I/O', + proname => 'cidr_send', prorettype => 'bytea', proargtypes => 'cidr', + prosrc => 'cidr_send' }, +{ oid => '2500', descr => 'I/O', + proname => 'cstring_recv', provolatile => 's', prorettype => 'cstring', + proargtypes => 'internal', prosrc => 'cstring_recv' }, +{ oid => '2501', descr => 'I/O', + proname => 'cstring_send', provolatile => 's', prorettype => 'bytea', + proargtypes => 'cstring', prosrc => 'cstring_send' }, +{ oid => '2502', descr => 'I/O', + proname => 'anyarray_recv', provolatile => 's', prorettype => 'anyarray', + proargtypes => 'internal', prosrc => 'anyarray_recv' }, +{ oid => '2503', descr => 'I/O', + proname => 'anyarray_send', provolatile => 's', prorettype => 'bytea', + proargtypes => 'anyarray', prosrc => 'anyarray_send' }, +{ oid => '3120', descr => 'I/O', + proname => 'void_recv', prorettype => 'void', proargtypes => 'internal', + prosrc => 'void_recv' }, +{ oid => '3121', descr => 'I/O', + proname => 'void_send', prorettype => 'bytea', proargtypes => 'void', + prosrc => 'void_send' }, +{ oid => '3446', descr => 'I/O', + proname => 'macaddr8_recv', prorettype => 'macaddr8', + proargtypes => 'internal', prosrc => 'macaddr8_recv' }, +{ oid => '3447', descr => 'I/O', + proname => 'macaddr8_send', prorettype => 'bytea', proargtypes => 'macaddr8', + prosrc => 'macaddr8_send' }, + +# System-view support functions with pretty-print option +{ oid => '2504', descr => 'source text of a rule with pretty-print option', + proname => 'pg_get_ruledef', provolatile => 's', prorettype => 'text', + proargtypes => 'oid bool', prosrc => 'pg_get_ruledef_ext' }, +{ oid => '2505', + descr => 'select statement of a view with pretty-print option', + proname => 'pg_get_viewdef', provolatile => 's', proparallel => 'r', + prorettype => 'text', proargtypes => 'text bool', + prosrc => 'pg_get_viewdef_name_ext' }, +{ oid => '2506', + descr => 'select statement of a view with pretty-print option', + proname => 'pg_get_viewdef', provolatile => 's', proparallel => 'r', + prorettype => 'text', proargtypes => 'oid bool', + prosrc => 'pg_get_viewdef_ext' }, +{ oid => '3159', + descr => 'select statement of a view with pretty-printing and specified line wrapping', + proname => 'pg_get_viewdef', provolatile => 's', proparallel => 'r', + prorettype => 'text', proargtypes => 'oid int4', + prosrc => 'pg_get_viewdef_wrap' }, +{ oid => '2507', + descr => 'index description (full create statement or single expression) with pretty-print option', + proname => 'pg_get_indexdef', provolatile => 's', prorettype => 'text', + proargtypes => 'oid int4 bool', prosrc => 'pg_get_indexdef_ext' }, +{ oid => '2508', descr => 'constraint description with pretty-print option', + proname => 'pg_get_constraintdef', provolatile => 's', prorettype => 'text', + proargtypes => 'oid bool', prosrc => 'pg_get_constraintdef_ext' }, +{ oid => '2509', + descr => 'deparse an encoded expression with pretty-print option', + proname => 'pg_get_expr', provolatile => 's', prorettype => 'text', + proargtypes => 'pg_node_tree oid bool', prosrc => 'pg_get_expr_ext' }, +{ oid => '2510', descr => 'get the prepared statements for this session', + proname => 'pg_prepared_statement', prorows => '1000', proretset => 't', + provolatile => 's', proparallel => 'r', prorettype => 'record', + proargtypes => '', proallargtypes => '{text,text,timestamptz,_regtype,bool}', + proargmodes => '{o,o,o,o,o}', + proargnames => '{name,statement,prepare_time,parameter_types,from_sql}', + prosrc => 'pg_prepared_statement' }, +{ oid => '2511', descr => 'get the open cursors for this session', + proname => 'pg_cursor', prorows => '1000', proretset => 't', + provolatile => 's', proparallel => 'r', prorettype => 'record', + proargtypes => '', proallargtypes => '{text,text,bool,bool,bool,timestamptz}', + proargmodes => '{o,o,o,o,o,o}', + proargnames => '{name,statement,is_holdable,is_binary,is_scrollable,creation_time}', + prosrc => 'pg_cursor' }, +{ oid => '2599', descr => 'get the available time zone abbreviations', + proname => 'pg_timezone_abbrevs', prorows => '1000', proretset => 't', + provolatile => 's', prorettype => 'record', proargtypes => '', + proallargtypes => '{text,interval,bool}', proargmodes => '{o,o,o}', + proargnames => '{abbrev,utc_offset,is_dst}', + prosrc => 'pg_timezone_abbrevs' }, +{ oid => '2856', descr => 'get the available time zone names', + proname => 'pg_timezone_names', prorows => '1000', proretset => 't', + provolatile => 's', prorettype => 'record', proargtypes => '', + proallargtypes => '{text,text,interval,bool}', proargmodes => '{o,o,o,o}', + proargnames => '{name,abbrev,utc_offset,is_dst}', + prosrc => 'pg_timezone_names' }, +{ oid => '2730', descr => 'trigger description with pretty-print option', + proname => 'pg_get_triggerdef', provolatile => 's', prorettype => 'text', + proargtypes => 'oid bool', prosrc => 'pg_get_triggerdef_ext' }, + +# asynchronous notifications +{ oid => '3035', + descr => 'get the channels that the current backend listens to', + proname => 'pg_listening_channels', prorows => '10', proretset => 't', + provolatile => 's', proparallel => 'r', prorettype => 'text', + proargtypes => '', prosrc => 'pg_listening_channels' }, +{ oid => '3036', descr => 'send a notification event', + proname => 'pg_notify', proisstrict => 'f', provolatile => 'v', + proparallel => 'r', prorettype => 'void', proargtypes => 'text text', + prosrc => 'pg_notify' }, +{ oid => '3296', + descr => 'get the fraction of the asynchronous notification queue currently in use', + proname => 'pg_notification_queue_usage', provolatile => 'v', + prorettype => 'float8', proargtypes => '', + prosrc => 'pg_notification_queue_usage' }, + +# non-persistent series generator +{ oid => '1066', descr => 'non-persistent series generator', + proname => 'generate_series', prorows => '1000', proretset => 't', + prorettype => 'int4', proargtypes => 'int4 int4 int4', + prosrc => 'generate_series_step_int4' }, +{ oid => '1067', descr => 'non-persistent series generator', + proname => 'generate_series', prorows => '1000', proretset => 't', + prorettype => 'int4', proargtypes => 'int4 int4', + prosrc => 'generate_series_int4' }, +{ oid => '1068', descr => 'non-persistent series generator', + proname => 'generate_series', prorows => '1000', proretset => 't', + prorettype => 'int8', proargtypes => 'int8 int8 int8', + prosrc => 'generate_series_step_int8' }, +{ oid => '1069', descr => 'non-persistent series generator', + proname => 'generate_series', prorows => '1000', proretset => 't', + prorettype => 'int8', proargtypes => 'int8 int8', + prosrc => 'generate_series_int8' }, +{ oid => '3259', descr => 'non-persistent series generator', + proname => 'generate_series', prorows => '1000', proretset => 't', + prorettype => 'numeric', proargtypes => 'numeric numeric numeric', + prosrc => 'generate_series_step_numeric' }, +{ oid => '3260', descr => 'non-persistent series generator', + proname => 'generate_series', prorows => '1000', proretset => 't', + prorettype => 'numeric', proargtypes => 'numeric numeric', + prosrc => 'generate_series_numeric' }, +{ oid => '938', descr => 'non-persistent series generator', + proname => 'generate_series', prorows => '1000', proretset => 't', + prorettype => 'timestamp', proargtypes => 'timestamp timestamp interval', + prosrc => 'generate_series_timestamp' }, +{ oid => '939', descr => 'non-persistent series generator', + proname => 'generate_series', prorows => '1000', proretset => 't', + provolatile => 's', prorettype => 'timestamptz', + proargtypes => 'timestamptz timestamptz interval', + prosrc => 'generate_series_timestamptz' }, + +# boolean aggregates +{ oid => '2515', descr => 'aggregate transition function', + proname => 'booland_statefunc', prorettype => 'bool', + proargtypes => 'bool bool', prosrc => 'booland_statefunc' }, +{ oid => '2516', descr => 'aggregate transition function', + proname => 'boolor_statefunc', prorettype => 'bool', + proargtypes => 'bool bool', prosrc => 'boolor_statefunc' }, +{ oid => '3496', descr => 'aggregate transition function', + proname => 'bool_accum', proisstrict => 'f', prorettype => 'internal', + proargtypes => 'internal bool', prosrc => 'bool_accum' }, +{ oid => '3497', descr => 'aggregate transition function', + proname => 'bool_accum_inv', proisstrict => 'f', prorettype => 'internal', + proargtypes => 'internal bool', prosrc => 'bool_accum_inv' }, +{ oid => '3498', descr => 'aggregate final function', + proname => 'bool_alltrue', prorettype => 'bool', proargtypes => 'internal', + prosrc => 'bool_alltrue' }, +{ oid => '3499', descr => 'aggregate final function', + proname => 'bool_anytrue', prorettype => 'bool', proargtypes => 'internal', + prosrc => 'bool_anytrue' }, +{ oid => '2517', descr => 'boolean-and aggregate', + proname => 'bool_and', prokind => 'a', proisstrict => 'f', + prorettype => 'bool', proargtypes => 'bool', prosrc => 'aggregate_dummy' }, + +# ANY, SOME? These names conflict with subquery operators. See doc. +{ oid => '2518', descr => 'boolean-or aggregate', + proname => 'bool_or', prokind => 'a', proisstrict => 'f', + prorettype => 'bool', proargtypes => 'bool', prosrc => 'aggregate_dummy' }, +{ oid => '2519', descr => 'boolean-and aggregate', + proname => 'every', prokind => 'a', proisstrict => 'f', prorettype => 'bool', + proargtypes => 'bool', prosrc => 'aggregate_dummy' }, + +# bitwise integer aggregates +{ oid => '2236', descr => 'bitwise-and smallint aggregate', + proname => 'bit_and', prokind => 'a', proisstrict => 'f', + prorettype => 'int2', proargtypes => 'int2', prosrc => 'aggregate_dummy' }, +{ oid => '2237', descr => 'bitwise-or smallint aggregate', + proname => 'bit_or', prokind => 'a', proisstrict => 'f', prorettype => 'int2', + proargtypes => 'int2', prosrc => 'aggregate_dummy' }, +{ oid => '2238', descr => 'bitwise-and integer aggregate', + proname => 'bit_and', prokind => 'a', proisstrict => 'f', + prorettype => 'int4', proargtypes => 'int4', prosrc => 'aggregate_dummy' }, +{ oid => '2239', descr => 'bitwise-or integer aggregate', + proname => 'bit_or', prokind => 'a', proisstrict => 'f', prorettype => 'int4', + proargtypes => 'int4', prosrc => 'aggregate_dummy' }, +{ oid => '2240', descr => 'bitwise-and bigint aggregate', + proname => 'bit_and', prokind => 'a', proisstrict => 'f', + prorettype => 'int8', proargtypes => 'int8', prosrc => 'aggregate_dummy' }, +{ oid => '2241', descr => 'bitwise-or bigint aggregate', + proname => 'bit_or', prokind => 'a', proisstrict => 'f', prorettype => 'int8', + proargtypes => 'int8', prosrc => 'aggregate_dummy' }, +{ oid => '2242', descr => 'bitwise-and bit aggregate', + proname => 'bit_and', prokind => 'a', proisstrict => 'f', prorettype => 'bit', + proargtypes => 'bit', prosrc => 'aggregate_dummy' }, +{ oid => '2243', descr => 'bitwise-or bit aggregate', + proname => 'bit_or', prokind => 'a', proisstrict => 'f', prorettype => 'bit', + proargtypes => 'bit', prosrc => 'aggregate_dummy' }, + +# formerly-missing interval + datetime operators +{ oid => '2546', + proname => 'interval_pl_date', prolang => '14', prorettype => 'timestamp', + proargtypes => 'interval date', prosrc => 'select $2 + $1' }, +{ oid => '2547', + proname => 'interval_pl_timetz', prolang => '14', prorettype => 'timetz', + proargtypes => 'interval timetz', prosrc => 'select $2 + $1' }, +{ oid => '2548', + proname => 'interval_pl_timestamp', prolang => '14', + prorettype => 'timestamp', proargtypes => 'interval timestamp', + prosrc => 'select $2 + $1' }, +{ oid => '2549', + proname => 'interval_pl_timestamptz', prolang => '14', provolatile => 's', + prorettype => 'timestamptz', proargtypes => 'interval timestamptz', + prosrc => 'select $2 + $1' }, +{ oid => '2550', + proname => 'integer_pl_date', prolang => '14', prorettype => 'date', + proargtypes => 'int4 date', prosrc => 'select $2 + $1' }, + +{ oid => '2556', descr => 'get OIDs of databases in a tablespace', + proname => 'pg_tablespace_databases', prorows => '1000', proretset => 't', + provolatile => 's', prorettype => 'oid', proargtypes => 'oid', + prosrc => 'pg_tablespace_databases' }, + +{ oid => '2557', descr => 'convert int4 to boolean', + proname => 'bool', prorettype => 'bool', proargtypes => 'int4', + prosrc => 'int4_bool' }, +{ oid => '2558', descr => 'convert boolean to int4', + proname => 'int4', prorettype => 'int4', proargtypes => 'bool', + prosrc => 'bool_int4' }, +{ oid => '2559', descr => 'current value from last used sequence', + proname => 'lastval', provolatile => 'v', proparallel => 'u', + prorettype => 'int8', proargtypes => '', prosrc => 'lastval' }, + +# start time function +{ oid => '2560', descr => 'postmaster start time', + proname => 'pg_postmaster_start_time', provolatile => 's', + prorettype => 'timestamptz', 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', + prorettype => 'timestamptz', proargtypes => '', + prosrc => 'pg_conf_load_time' }, + +# new functions for Y-direction rtree opclasses +{ oid => '2562', + proname => 'box_below', prorettype => 'bool', proargtypes => 'box box', + prosrc => 'box_below' }, +{ oid => '2563', + proname => 'box_overbelow', prorettype => 'bool', proargtypes => 'box box', + prosrc => 'box_overbelow' }, +{ oid => '2564', + proname => 'box_overabove', prorettype => 'bool', proargtypes => 'box box', + prosrc => 'box_overabove' }, +{ oid => '2565', + proname => 'box_above', prorettype => 'bool', proargtypes => 'box box', + prosrc => 'box_above' }, +{ oid => '2566', + proname => 'poly_below', prorettype => 'bool', + proargtypes => 'polygon polygon', prosrc => 'poly_below' }, +{ oid => '2567', + proname => 'poly_overbelow', prorettype => 'bool', + proargtypes => 'polygon polygon', prosrc => 'poly_overbelow' }, +{ oid => '2568', + proname => 'poly_overabove', prorettype => 'bool', + proargtypes => 'polygon polygon', prosrc => 'poly_overabove' }, +{ oid => '2569', + proname => 'poly_above', prorettype => 'bool', + proargtypes => 'polygon polygon', prosrc => 'poly_above' }, +{ oid => '2587', + proname => 'circle_overbelow', prorettype => 'bool', + proargtypes => 'circle circle', prosrc => 'circle_overbelow' }, +{ oid => '2588', + proname => 'circle_overabove', prorettype => 'bool', + proargtypes => 'circle circle', prosrc => 'circle_overabove' }, + +# support functions for GiST r-tree emulation +{ oid => '2578', descr => 'GiST support', + proname => 'gist_box_consistent', prorettype => 'bool', + proargtypes => 'internal box int2 oid internal', + prosrc => 'gist_box_consistent' }, +{ oid => '2581', descr => 'GiST support', + proname => 'gist_box_penalty', prorettype => 'internal', + proargtypes => 'internal internal internal', prosrc => 'gist_box_penalty' }, +{ oid => '2582', descr => 'GiST support', + proname => 'gist_box_picksplit', prorettype => 'internal', + proargtypes => 'internal internal', prosrc => 'gist_box_picksplit' }, +{ oid => '2583', descr => 'GiST support', + proname => 'gist_box_union', prorettype => 'box', + proargtypes => 'internal internal', prosrc => 'gist_box_union' }, +{ oid => '2584', descr => 'GiST support', + proname => 'gist_box_same', prorettype => 'internal', + proargtypes => 'box box internal', prosrc => 'gist_box_same' }, +{ oid => '2585', descr => 'GiST support', + proname => 'gist_poly_consistent', prorettype => 'bool', + proargtypes => 'internal polygon int2 oid internal', + prosrc => 'gist_poly_consistent' }, +{ oid => '2586', descr => 'GiST support', + proname => 'gist_poly_compress', prorettype => 'internal', + proargtypes => 'internal', prosrc => 'gist_poly_compress' }, +{ oid => '2591', descr => 'GiST support', + proname => 'gist_circle_consistent', prorettype => 'bool', + proargtypes => 'internal circle int2 oid internal', + prosrc => 'gist_circle_consistent' }, +{ oid => '2592', descr => 'GiST support', + proname => 'gist_circle_compress', prorettype => 'internal', + proargtypes => 'internal', prosrc => 'gist_circle_compress' }, +{ oid => '1030', descr => 'GiST support', + proname => 'gist_point_compress', prorettype => 'internal', + proargtypes => 'internal', prosrc => 'gist_point_compress' }, +{ oid => '3282', descr => 'GiST support', + proname => 'gist_point_fetch', prorettype => 'internal', + proargtypes => 'internal', prosrc => 'gist_point_fetch' }, +{ oid => '2179', descr => 'GiST support', + proname => 'gist_point_consistent', prorettype => 'bool', + proargtypes => 'internal point int2 oid internal', + prosrc => 'gist_point_consistent' }, +{ oid => '3064', descr => 'GiST support', + proname => 'gist_point_distance', prorettype => 'float8', + proargtypes => 'internal point int2 oid internal', + prosrc => 'gist_point_distance' }, +{ oid => '3280', descr => 'GiST support', + proname => 'gist_circle_distance', prorettype => 'float8', + proargtypes => 'internal circle int2 oid internal', + prosrc => 'gist_circle_distance' }, +{ oid => '3288', descr => 'GiST support', + proname => 'gist_poly_distance', prorettype => 'float8', + proargtypes => 'internal polygon int2 oid internal', + prosrc => 'gist_poly_distance' }, + +# GIN array support +{ oid => '2743', descr => 'GIN array support', + proname => 'ginarrayextract', prorettype => 'internal', + proargtypes => 'anyarray internal internal', prosrc => 'ginarrayextract' }, +{ oid => '2774', descr => 'GIN array support', + proname => 'ginqueryarrayextract', prorettype => 'internal', + proargtypes => 'anyarray internal int2 internal internal internal internal', + prosrc => 'ginqueryarrayextract' }, +{ oid => '2744', descr => 'GIN array support', + proname => 'ginarrayconsistent', prorettype => 'bool', + proargtypes => 'internal int2 anyarray int4 internal internal internal internal', + prosrc => 'ginarrayconsistent' }, +{ oid => '3920', descr => 'GIN array support', + proname => 'ginarraytriconsistent', prorettype => 'char', + proargtypes => 'internal int2 anyarray int4 internal internal internal', + prosrc => 'ginarraytriconsistent' }, +{ oid => '3076', descr => 'GIN array support (obsolete)', + proname => 'ginarrayextract', prorettype => 'internal', + proargtypes => 'anyarray internal', prosrc => 'ginarrayextract_2args' }, + +# overlap/contains/contained +{ oid => '2747', + proname => 'arrayoverlap', prorettype => 'bool', + proargtypes => 'anyarray anyarray', prosrc => 'arrayoverlap' }, +{ oid => '2748', + proname => 'arraycontains', prorettype => 'bool', + proargtypes => 'anyarray anyarray', prosrc => 'arraycontains' }, +{ oid => '2749', + proname => 'arraycontained', prorettype => 'bool', + proargtypes => 'anyarray anyarray', prosrc => 'arraycontained' }, + +# BRIN minmax +{ oid => '3383', descr => 'BRIN minmax support', + proname => 'brin_minmax_opcinfo', prorettype => 'internal', + proargtypes => 'internal', prosrc => 'brin_minmax_opcinfo' }, +{ oid => '3384', descr => 'BRIN minmax support', + proname => 'brin_minmax_add_value', prorettype => 'bool', + proargtypes => 'internal internal internal internal', + prosrc => 'brin_minmax_add_value' }, +{ oid => '3385', descr => 'BRIN minmax support', + proname => 'brin_minmax_consistent', prorettype => 'bool', + proargtypes => 'internal internal internal', + prosrc => 'brin_minmax_consistent' }, +{ oid => '3386', descr => 'BRIN minmax support', + proname => 'brin_minmax_union', prorettype => 'bool', + proargtypes => 'internal internal internal', prosrc => 'brin_minmax_union' }, + +# BRIN inclusion +{ oid => '4105', descr => 'BRIN inclusion support', + proname => 'brin_inclusion_opcinfo', prorettype => 'internal', + proargtypes => 'internal', prosrc => 'brin_inclusion_opcinfo' }, +{ oid => '4106', descr => 'BRIN inclusion support', + proname => 'brin_inclusion_add_value', prorettype => 'bool', + proargtypes => 'internal internal internal internal', + prosrc => 'brin_inclusion_add_value' }, +{ oid => '4107', descr => 'BRIN inclusion support', + proname => 'brin_inclusion_consistent', prorettype => 'bool', + proargtypes => 'internal internal internal', + prosrc => 'brin_inclusion_consistent' }, +{ oid => '4108', descr => 'BRIN inclusion support', + proname => 'brin_inclusion_union', prorettype => 'bool', + proargtypes => 'internal internal internal', + prosrc => 'brin_inclusion_union' }, + +# userlock replacements +{ oid => '2880', descr => 'obtain exclusive advisory lock', + proname => 'pg_advisory_lock', provolatile => 'v', proparallel => 'u', + prorettype => 'void', proargtypes => 'int8', + prosrc => 'pg_advisory_lock_int8' }, +{ oid => '3089', descr => 'obtain exclusive advisory lock', + proname => 'pg_advisory_xact_lock', provolatile => 'v', proparallel => 'u', + prorettype => 'void', proargtypes => 'int8', + prosrc => 'pg_advisory_xact_lock_int8' }, +{ oid => '2881', descr => 'obtain shared advisory lock', + proname => 'pg_advisory_lock_shared', provolatile => 'v', proparallel => 'u', + prorettype => 'void', proargtypes => 'int8', + prosrc => 'pg_advisory_lock_shared_int8' }, +{ oid => '3090', descr => 'obtain shared advisory lock', + proname => 'pg_advisory_xact_lock_shared', provolatile => 'v', + proparallel => 'u', prorettype => 'void', proargtypes => 'int8', + prosrc => 'pg_advisory_xact_lock_shared_int8' }, +{ oid => '2882', descr => 'obtain exclusive advisory lock if available', + proname => 'pg_try_advisory_lock', provolatile => 'v', proparallel => 'u', + prorettype => 'bool', proargtypes => 'int8', + prosrc => 'pg_try_advisory_lock_int8' }, +{ oid => '3091', descr => 'obtain exclusive advisory lock if available', + proname => 'pg_try_advisory_xact_lock', provolatile => 'v', + proparallel => 'u', prorettype => 'bool', proargtypes => 'int8', + prosrc => 'pg_try_advisory_xact_lock_int8' }, +{ oid => '2883', descr => 'obtain shared advisory lock if available', + proname => 'pg_try_advisory_lock_shared', provolatile => 'v', + proparallel => 'u', prorettype => 'bool', proargtypes => 'int8', + prosrc => 'pg_try_advisory_lock_shared_int8' }, +{ oid => '3092', descr => 'obtain shared advisory lock if available', + proname => 'pg_try_advisory_xact_lock_shared', provolatile => 'v', + proparallel => 'u', prorettype => 'bool', proargtypes => 'int8', + prosrc => 'pg_try_advisory_xact_lock_shared_int8' }, +{ oid => '2884', descr => 'release exclusive advisory lock', + proname => 'pg_advisory_unlock', provolatile => 'v', proparallel => 'u', + prorettype => 'bool', proargtypes => 'int8', + prosrc => 'pg_advisory_unlock_int8' }, +{ oid => '2885', descr => 'release shared advisory lock', + proname => 'pg_advisory_unlock_shared', provolatile => 'v', + proparallel => 'u', prorettype => 'bool', proargtypes => 'int8', + prosrc => 'pg_advisory_unlock_shared_int8' }, +{ oid => '2886', descr => 'obtain exclusive advisory lock', + proname => 'pg_advisory_lock', provolatile => 'v', proparallel => 'u', + prorettype => 'void', proargtypes => 'int4 int4', + prosrc => 'pg_advisory_lock_int4' }, +{ oid => '3093', descr => 'obtain exclusive advisory lock', + proname => 'pg_advisory_xact_lock', provolatile => 'v', proparallel => 'u', + prorettype => 'void', proargtypes => 'int4 int4', + prosrc => 'pg_advisory_xact_lock_int4' }, +{ oid => '2887', descr => 'obtain shared advisory lock', + proname => 'pg_advisory_lock_shared', provolatile => 'v', proparallel => 'u', + prorettype => 'void', proargtypes => 'int4 int4', + prosrc => 'pg_advisory_lock_shared_int4' }, +{ oid => '3094', descr => 'obtain shared advisory lock', + proname => 'pg_advisory_xact_lock_shared', provolatile => 'v', + proparallel => 'u', prorettype => 'void', proargtypes => 'int4 int4', + prosrc => 'pg_advisory_xact_lock_shared_int4' }, +{ oid => '2888', descr => 'obtain exclusive advisory lock if available', + proname => 'pg_try_advisory_lock', provolatile => 'v', proparallel => 'u', + prorettype => 'bool', proargtypes => 'int4 int4', + prosrc => 'pg_try_advisory_lock_int4' }, +{ oid => '3095', descr => 'obtain exclusive advisory lock if available', + proname => 'pg_try_advisory_xact_lock', provolatile => 'v', + proparallel => 'u', prorettype => 'bool', proargtypes => 'int4 int4', + prosrc => 'pg_try_advisory_xact_lock_int4' }, +{ oid => '2889', descr => 'obtain shared advisory lock if available', + proname => 'pg_try_advisory_lock_shared', provolatile => 'v', + proparallel => 'u', prorettype => 'bool', proargtypes => 'int4 int4', + prosrc => 'pg_try_advisory_lock_shared_int4' }, +{ oid => '3096', descr => 'obtain shared advisory lock if available', + proname => 'pg_try_advisory_xact_lock_shared', provolatile => 'v', + proparallel => 'u', prorettype => 'bool', proargtypes => 'int4 int4', + prosrc => 'pg_try_advisory_xact_lock_shared_int4' }, +{ oid => '2890', descr => 'release exclusive advisory lock', + proname => 'pg_advisory_unlock', provolatile => 'v', proparallel => 'u', + prorettype => 'bool', proargtypes => 'int4 int4', + prosrc => 'pg_advisory_unlock_int4' }, +{ oid => '2891', descr => 'release shared advisory lock', + proname => 'pg_advisory_unlock_shared', provolatile => 'v', + proparallel => 'u', prorettype => 'bool', proargtypes => 'int4 int4', + prosrc => 'pg_advisory_unlock_shared_int4' }, +{ oid => '2892', descr => 'release all advisory locks', + proname => 'pg_advisory_unlock_all', provolatile => 'v', proparallel => 'u', + prorettype => 'void', proargtypes => '', prosrc => 'pg_advisory_unlock_all' }, + +# XML support +{ oid => '2893', descr => 'I/O', + proname => 'xml_in', provolatile => 's', prorettype => 'xml', + proargtypes => 'cstring', prosrc => 'xml_in' }, +{ oid => '2894', descr => 'I/O', + proname => 'xml_out', prorettype => 'cstring', proargtypes => 'xml', + prosrc => 'xml_out' }, +{ oid => '2895', descr => 'generate XML comment', + proname => 'xmlcomment', prorettype => 'xml', proargtypes => 'text', + prosrc => 'xmlcomment' }, +{ oid => '2896', + descr => 'perform a non-validating parse of a character string to produce an XML value', + proname => 'xml', provolatile => 's', prorettype => 'xml', + proargtypes => 'text', prosrc => 'texttoxml' }, +{ oid => '2897', descr => 'validate an XML value', + proname => 'xmlvalidate', prorettype => 'bool', proargtypes => 'xml text', + prosrc => 'xmlvalidate' }, +{ oid => '2898', descr => 'I/O', + proname => 'xml_recv', provolatile => 's', prorettype => 'xml', + proargtypes => 'internal', prosrc => 'xml_recv' }, +{ oid => '2899', descr => 'I/O', + proname => 'xml_send', provolatile => 's', prorettype => 'bytea', + proargtypes => 'xml', prosrc => 'xml_send' }, +{ oid => '2900', descr => 'aggregate transition function', + proname => 'xmlconcat2', proisstrict => 'f', prorettype => 'xml', + proargtypes => 'xml xml', prosrc => 'xmlconcat2' }, +{ oid => '2901', descr => 'concatenate XML values', + proname => 'xmlagg', prokind => 'a', proisstrict => 'f', prorettype => 'xml', + proargtypes => 'xml', prosrc => 'aggregate_dummy' }, +{ oid => '2922', descr => 'serialize an XML value to a character string', + proname => 'text', prorettype => 'text', proargtypes => 'xml', + prosrc => 'xmltotext' }, + +{ oid => '2923', descr => 'map table contents to XML', + proname => 'table_to_xml', procost => '100', provolatile => 's', + proparallel => 'r', prorettype => 'xml', + proargtypes => 'regclass bool bool text', + proargnames => '{tbl,nulls,tableforest,targetns}', prosrc => 'table_to_xml' }, +{ oid => '2924', descr => 'map query result to XML', + proname => 'query_to_xml', procost => '100', provolatile => 'v', + proparallel => 'u', prorettype => 'xml', proargtypes => 'text bool bool text', + proargnames => '{query,nulls,tableforest,targetns}', + prosrc => 'query_to_xml' }, +{ oid => '2925', descr => 'map rows from cursor to XML', + proname => 'cursor_to_xml', procost => '100', provolatile => 'v', + proparallel => 'u', prorettype => 'xml', + proargtypes => 'refcursor int4 bool bool text', + proargnames => '{cursor,count,nulls,tableforest,targetns}', + prosrc => 'cursor_to_xml' }, +{ oid => '2926', descr => 'map table structure to XML Schema', + proname => 'table_to_xmlschema', procost => '100', provolatile => 's', + proparallel => 'r', prorettype => 'xml', + proargtypes => 'regclass bool bool text', + proargnames => '{tbl,nulls,tableforest,targetns}', + prosrc => 'table_to_xmlschema' }, +{ oid => '2927', descr => 'map query result structure to XML Schema', + proname => 'query_to_xmlschema', procost => '100', provolatile => 'v', + proparallel => 'u', prorettype => 'xml', proargtypes => 'text bool bool text', + proargnames => '{query,nulls,tableforest,targetns}', + prosrc => 'query_to_xmlschema' }, +{ oid => '2928', descr => 'map cursor structure to XML Schema', + proname => 'cursor_to_xmlschema', procost => '100', provolatile => 'v', + proparallel => 'u', prorettype => 'xml', + proargtypes => 'refcursor bool bool text', + proargnames => '{cursor,nulls,tableforest,targetns}', + prosrc => 'cursor_to_xmlschema' }, +{ oid => '2929', + descr => 'map table contents and structure to XML and XML Schema', + proname => 'table_to_xml_and_xmlschema', procost => '100', provolatile => 's', + proparallel => 'r', prorettype => 'xml', + proargtypes => 'regclass bool bool text', + proargnames => '{tbl,nulls,tableforest,targetns}', + prosrc => 'table_to_xml_and_xmlschema' }, +{ oid => '2930', + descr => 'map query result and structure to XML and XML Schema', + proname => 'query_to_xml_and_xmlschema', procost => '100', provolatile => 'v', + proparallel => 'u', prorettype => 'xml', proargtypes => 'text bool bool text', + proargnames => '{query,nulls,tableforest,targetns}', + prosrc => 'query_to_xml_and_xmlschema' }, + +{ oid => '2933', descr => 'map schema contents to XML', + proname => 'schema_to_xml', procost => '100', provolatile => 's', + proparallel => 'r', prorettype => 'xml', proargtypes => 'name bool bool text', + proargnames => '{schema,nulls,tableforest,targetns}', + prosrc => 'schema_to_xml' }, +{ oid => '2934', descr => 'map schema structure to XML Schema', + proname => 'schema_to_xmlschema', procost => '100', provolatile => 's', + proparallel => 'r', prorettype => 'xml', proargtypes => 'name bool bool text', + proargnames => '{schema,nulls,tableforest,targetns}', + prosrc => 'schema_to_xmlschema' }, +{ oid => '2935', + descr => 'map schema contents and structure to XML and XML Schema', + proname => 'schema_to_xml_and_xmlschema', procost => '100', + provolatile => 's', proparallel => 'r', prorettype => 'xml', + proargtypes => 'name bool bool text', + proargnames => '{schema,nulls,tableforest,targetns}', + prosrc => 'schema_to_xml_and_xmlschema' }, + +{ oid => '2936', descr => 'map database contents to XML', + proname => 'database_to_xml', procost => '100', provolatile => 's', + proparallel => 'r', prorettype => 'xml', proargtypes => 'bool bool text', + proargnames => '{nulls,tableforest,targetns}', prosrc => 'database_to_xml' }, +{ oid => '2937', descr => 'map database structure to XML Schema', + proname => 'database_to_xmlschema', procost => '100', provolatile => 's', + proparallel => 'r', prorettype => 'xml', proargtypes => 'bool bool text', + proargnames => '{nulls,tableforest,targetns}', + prosrc => 'database_to_xmlschema' }, +{ oid => '2938', + descr => 'map database contents and structure to XML and XML Schema', + proname => 'database_to_xml_and_xmlschema', procost => '100', + provolatile => 's', proparallel => 'r', prorettype => 'xml', + proargtypes => 'bool bool text', + proargnames => '{nulls,tableforest,targetns}', + prosrc => 'database_to_xml_and_xmlschema' }, + +{ oid => '2931', + descr => 'evaluate XPath expression, with namespaces support', + proname => 'xpath', prorettype => '_xml', proargtypes => 'text xml _text', + prosrc => 'xpath' }, +{ oid => '2932', descr => 'evaluate XPath expression', + proname => 'xpath', prolang => '14', prorettype => '_xml', + proargtypes => 'text xml', + prosrc => 'select pg_catalog.xpath($1, $2, \'\'{}\'\'::pg_catalog.text[])' }, + +{ oid => '2614', descr => 'test XML value against XPath expression', + proname => 'xmlexists', prorettype => 'bool', proargtypes => 'text xml', + prosrc => 'xmlexists' }, + +{ oid => '3049', + descr => 'test XML value against XPath expression, with namespace support', + proname => 'xpath_exists', prorettype => 'bool', + proargtypes => 'text xml _text', prosrc => 'xpath_exists' }, +{ oid => '3050', descr => 'test XML value against XPath expression', + proname => 'xpath_exists', prolang => '14', prorettype => 'bool', + proargtypes => 'text xml', + prosrc => 'select pg_catalog.xpath_exists($1, $2, \'\'{}\'\'::pg_catalog.text[])' }, +{ oid => '3051', descr => 'determine if a string is well formed XML', + proname => 'xml_is_well_formed', provolatile => 's', prorettype => 'bool', + proargtypes => 'text', prosrc => 'xml_is_well_formed' }, +{ oid => '3052', descr => 'determine if a string is well formed XML document', + proname => 'xml_is_well_formed_document', prorettype => 'bool', + proargtypes => 'text', prosrc => 'xml_is_well_formed_document' }, +{ oid => '3053', descr => 'determine if a string is well formed XML content', + proname => 'xml_is_well_formed_content', prorettype => 'bool', + proargtypes => 'text', prosrc => 'xml_is_well_formed_content' }, + +# json +{ oid => '321', descr => 'I/O', + proname => 'json_in', prorettype => 'json', proargtypes => 'cstring', + prosrc => 'json_in' }, +{ oid => '322', descr => 'I/O', + proname => 'json_out', prorettype => 'cstring', proargtypes => 'json', + prosrc => 'json_out' }, +{ oid => '323', descr => 'I/O', + proname => 'json_recv', prorettype => 'json', proargtypes => 'internal', + prosrc => 'json_recv' }, +{ oid => '324', descr => 'I/O', + proname => 'json_send', prorettype => 'bytea', proargtypes => 'json', + prosrc => 'json_send' }, +{ oid => '3153', descr => 'map array to json', + proname => 'array_to_json', provolatile => 's', prorettype => 'json', + proargtypes => 'anyarray', prosrc => 'array_to_json' }, +{ oid => '3154', descr => 'map array to json with optional pretty printing', + proname => 'array_to_json', provolatile => 's', prorettype => 'json', + proargtypes => 'anyarray bool', prosrc => 'array_to_json_pretty' }, +{ oid => '3155', descr => 'map row to json', + proname => 'row_to_json', provolatile => 's', prorettype => 'json', + proargtypes => 'record', prosrc => 'row_to_json' }, +{ oid => '3156', descr => 'map row to json with optional pretty printing', + proname => 'row_to_json', provolatile => 's', prorettype => 'json', + proargtypes => 'record bool', prosrc => 'row_to_json_pretty' }, +{ oid => '3173', descr => 'json aggregate transition function', + proname => 'json_agg_transfn', proisstrict => 'f', provolatile => 's', + prorettype => 'internal', proargtypes => 'internal anyelement', + prosrc => 'json_agg_transfn' }, +{ oid => '3174', descr => 'json aggregate final function', + proname => 'json_agg_finalfn', proisstrict => 'f', prorettype => 'json', + proargtypes => 'internal', prosrc => 'json_agg_finalfn' }, +{ oid => '3175', descr => 'aggregate input into json', + proname => 'json_agg', prokind => 'a', proisstrict => 'f', provolatile => 's', + prorettype => 'json', proargtypes => 'anyelement', + prosrc => 'aggregate_dummy' }, +{ oid => '3180', descr => 'json object aggregate transition function', + proname => 'json_object_agg_transfn', proisstrict => 'f', provolatile => 's', + prorettype => 'internal', proargtypes => 'internal any any', + prosrc => 'json_object_agg_transfn' }, +{ oid => '3196', descr => 'json object aggregate final function', + proname => 'json_object_agg_finalfn', proisstrict => 'f', + prorettype => 'json', proargtypes => 'internal', + prosrc => 'json_object_agg_finalfn' }, +{ oid => '3197', descr => 'aggregate input into a json object', + proname => 'json_object_agg', prokind => 'a', proisstrict => 'f', + provolatile => 's', prorettype => 'json', proargtypes => 'any any', + prosrc => 'aggregate_dummy' }, +{ oid => '3198', descr => 'build a json array from any inputs', + proname => 'json_build_array', provariadic => 'any', proisstrict => 'f', + provolatile => 's', prorettype => 'json', proargtypes => 'any', + proallargtypes => '{any}', proargmodes => '{v}', + prosrc => 'json_build_array' }, +{ oid => '3199', descr => 'build an empty json array', + proname => 'json_build_array', proisstrict => 'f', provolatile => 's', + prorettype => 'json', proargtypes => '', + prosrc => 'json_build_array_noargs' }, +{ oid => '3200', + descr => 'build a json object from pairwise key/value inputs', + proname => 'json_build_object', provariadic => 'any', proisstrict => 'f', + provolatile => 's', prorettype => 'json', proargtypes => 'any', + proallargtypes => '{any}', proargmodes => '{v}', + prosrc => 'json_build_object' }, +{ oid => '3201', descr => 'build an empty json object', + proname => 'json_build_object', proisstrict => 'f', provolatile => 's', + prorettype => 'json', proargtypes => '', + prosrc => 'json_build_object_noargs' }, +{ oid => '3202', descr => 'map text array of key value pairs to json object', + proname => 'json_object', prorettype => 'json', proargtypes => '_text', + prosrc => 'json_object' }, +{ oid => '3203', descr => 'map text arrays of keys and values to json object', + proname => 'json_object', prorettype => 'json', proargtypes => '_text _text', + prosrc => 'json_object_two_arg' }, +{ oid => '3176', descr => 'map input to json', + proname => 'to_json', provolatile => 's', prorettype => 'json', + proargtypes => 'anyelement', prosrc => 'to_json' }, +{ oid => '3261', descr => 'remove object fields with null values from json', + proname => 'json_strip_nulls', prorettype => 'json', proargtypes => 'json', + prosrc => 'json_strip_nulls' }, + +{ oid => '3947', + proname => 'json_object_field', prorettype => 'json', + proargtypes => 'json text', proargnames => '{from_json, field_name}', + prosrc => 'json_object_field' }, +{ oid => '3948', + proname => 'json_object_field_text', prorettype => 'text', + proargtypes => 'json text', proargnames => '{from_json, field_name}', + prosrc => 'json_object_field_text' }, +{ oid => '3949', + proname => 'json_array_element', prorettype => 'json', + proargtypes => 'json int4', proargnames => '{from_json, element_index}', + prosrc => 'json_array_element' }, +{ oid => '3950', + proname => 'json_array_element_text', prorettype => 'text', + proargtypes => 'json int4', proargnames => '{from_json, element_index}', + prosrc => 'json_array_element_text' }, +{ oid => '3951', descr => 'get value from json with path elements', + proname => 'json_extract_path', provariadic => 'text', prorettype => 'json', + proargtypes => 'json _text', proallargtypes => '{json,_text}', + proargmodes => '{i,v}', proargnames => '{from_json,path_elems}', + prosrc => 'json_extract_path' }, +{ oid => '3953', descr => 'get value from json as text with path elements', + proname => 'json_extract_path_text', provariadic => 'text', + prorettype => 'text', proargtypes => 'json _text', + proallargtypes => '{json,_text}', proargmodes => '{i,v}', + proargnames => '{from_json,path_elems}', prosrc => 'json_extract_path_text' }, +{ oid => '3955', descr => 'key value pairs of a json object', + proname => 'json_array_elements', prorows => '100', proretset => 't', + prorettype => 'json', proargtypes => 'json', proallargtypes => '{json,json}', + proargmodes => '{i,o}', proargnames => '{from_json,value}', + prosrc => 'json_array_elements' }, +{ oid => '3969', descr => 'elements of json array', + proname => 'json_array_elements_text', prorows => '100', proretset => 't', + prorettype => 'text', proargtypes => 'json', proallargtypes => '{json,text}', + proargmodes => '{i,o}', proargnames => '{from_json,value}', + prosrc => 'json_array_elements_text' }, +{ oid => '3956', descr => 'length of json array', + proname => 'json_array_length', prorettype => 'int4', proargtypes => 'json', + prosrc => 'json_array_length' }, +{ oid => '3957', descr => 'get json object keys', + proname => 'json_object_keys', prorows => '100', proretset => 't', + prorettype => 'text', proargtypes => 'json', prosrc => 'json_object_keys' }, +{ oid => '3958', descr => 'key value pairs of a json object', + proname => 'json_each', prorows => '100', proretset => 't', + prorettype => 'record', proargtypes => 'json', + proallargtypes => '{json,text,json}', proargmodes => '{i,o,o}', + proargnames => '{from_json,key,value}', prosrc => 'json_each' }, +{ oid => '3959', descr => 'key value pairs of a json object', + proname => 'json_each_text', prorows => '100', proretset => 't', + prorettype => 'record', proargtypes => 'json', + proallargtypes => '{json,text,text}', proargmodes => '{i,o,o}', + proargnames => '{from_json,key,value}', prosrc => 'json_each_text' }, +{ oid => '3960', descr => 'get record fields from a json object', + proname => 'json_populate_record', proisstrict => 'f', provolatile => 's', + prorettype => 'anyelement', proargtypes => 'anyelement json bool', + prosrc => 'json_populate_record' }, +{ oid => '3961', + descr => 'get set of records with fields from a json array of objects', + proname => 'json_populate_recordset', prorows => '100', proisstrict => 'f', + proretset => 't', provolatile => 's', prorettype => 'anyelement', + proargtypes => 'anyelement json bool', prosrc => 'json_populate_recordset' }, +{ oid => '3204', descr => 'get record fields from a json object', + proname => 'json_to_record', provolatile => 's', prorettype => 'record', + proargtypes => 'json', prosrc => 'json_to_record' }, +{ oid => '3205', + descr => 'get set of records with fields from a json array of objects', + proname => 'json_to_recordset', prorows => '100', proisstrict => 'f', + proretset => 't', provolatile => 's', prorettype => 'record', + proargtypes => 'json', prosrc => 'json_to_recordset' }, +{ oid => '3968', descr => 'get the type of a json value', + proname => 'json_typeof', prorettype => 'text', proargtypes => 'json', + prosrc => 'json_typeof' }, + +# uuid +{ oid => '2952', descr => 'I/O', + proname => 'uuid_in', prorettype => 'uuid', proargtypes => 'cstring', + prosrc => 'uuid_in' }, +{ oid => '2953', descr => 'I/O', + proname => 'uuid_out', prorettype => 'cstring', proargtypes => 'uuid', + prosrc => 'uuid_out' }, +{ oid => '2954', + proname => 'uuid_lt', proleakproof => 't', prorettype => 'bool', + proargtypes => 'uuid uuid', prosrc => 'uuid_lt' }, +{ oid => '2955', + proname => 'uuid_le', proleakproof => 't', prorettype => 'bool', + proargtypes => 'uuid uuid', prosrc => 'uuid_le' }, +{ oid => '2956', + proname => 'uuid_eq', proleakproof => 't', prorettype => 'bool', + proargtypes => 'uuid uuid', prosrc => 'uuid_eq' }, +{ oid => '2957', + proname => 'uuid_ge', proleakproof => 't', prorettype => 'bool', + proargtypes => 'uuid uuid', prosrc => 'uuid_ge' }, +{ oid => '2958', + proname => 'uuid_gt', proleakproof => 't', prorettype => 'bool', + proargtypes => 'uuid uuid', prosrc => 'uuid_gt' }, +{ oid => '2959', + proname => 'uuid_ne', proleakproof => 't', prorettype => 'bool', + proargtypes => 'uuid uuid', prosrc => 'uuid_ne' }, +{ oid => '2960', descr => 'less-equal-greater', + proname => 'uuid_cmp', prorettype => 'int4', proargtypes => 'uuid uuid', + prosrc => 'uuid_cmp' }, +{ oid => '3300', descr => 'sort support', + proname => 'uuid_sortsupport', prorettype => 'void', + proargtypes => 'internal', prosrc => 'uuid_sortsupport' }, +{ oid => '2961', descr => 'I/O', + proname => 'uuid_recv', prorettype => 'uuid', proargtypes => 'internal', + prosrc => 'uuid_recv' }, +{ oid => '2962', descr => 'I/O', + proname => 'uuid_send', prorettype => 'bytea', proargtypes => 'uuid', + prosrc => 'uuid_send' }, +{ oid => '2963', descr => 'hash', + proname => 'uuid_hash', prorettype => 'int4', proargtypes => 'uuid', + prosrc => 'uuid_hash' }, +{ oid => '3412', descr => 'hash', + proname => 'uuid_hash_extended', prorettype => 'int8', + proargtypes => 'uuid int8', prosrc => 'uuid_hash_extended' }, + +# pg_lsn +{ oid => '3229', descr => 'I/O', + proname => 'pg_lsn_in', prorettype => 'pg_lsn', proargtypes => 'cstring', + prosrc => 'pg_lsn_in' }, +{ oid => '3230', descr => 'I/O', + proname => 'pg_lsn_out', prorettype => 'cstring', proargtypes => 'pg_lsn', + prosrc => 'pg_lsn_out' }, +{ oid => '3231', + proname => 'pg_lsn_lt', prorettype => 'bool', proargtypes => 'pg_lsn pg_lsn', + prosrc => 'pg_lsn_lt' }, +{ oid => '3232', + proname => 'pg_lsn_le', prorettype => 'bool', proargtypes => 'pg_lsn pg_lsn', + prosrc => 'pg_lsn_le' }, +{ oid => '3233', + proname => 'pg_lsn_eq', prorettype => 'bool', proargtypes => 'pg_lsn pg_lsn', + prosrc => 'pg_lsn_eq' }, +{ oid => '3234', + proname => 'pg_lsn_ge', prorettype => 'bool', proargtypes => 'pg_lsn pg_lsn', + prosrc => 'pg_lsn_ge' }, +{ oid => '3235', + proname => 'pg_lsn_gt', prorettype => 'bool', proargtypes => 'pg_lsn pg_lsn', + prosrc => 'pg_lsn_gt' }, +{ oid => '3236', + proname => 'pg_lsn_ne', prorettype => 'bool', proargtypes => 'pg_lsn pg_lsn', + prosrc => 'pg_lsn_ne' }, +{ oid => '3237', + proname => 'pg_lsn_mi', prorettype => 'numeric', + proargtypes => 'pg_lsn pg_lsn', prosrc => 'pg_lsn_mi' }, +{ oid => '3238', descr => 'I/O', + proname => 'pg_lsn_recv', prorettype => 'pg_lsn', proargtypes => 'internal', + prosrc => 'pg_lsn_recv' }, +{ oid => '3239', descr => 'I/O', + proname => 'pg_lsn_send', prorettype => 'bytea', proargtypes => 'pg_lsn', + prosrc => 'pg_lsn_send' }, +{ oid => '3251', descr => 'less-equal-greater', + proname => 'pg_lsn_cmp', prorettype => 'int4', proargtypes => 'pg_lsn pg_lsn', + prosrc => 'pg_lsn_cmp' }, +{ oid => '3252', descr => 'hash', + proname => 'pg_lsn_hash', prorettype => 'int4', proargtypes => 'pg_lsn', + prosrc => 'pg_lsn_hash' }, +{ oid => '3413', descr => 'hash', + proname => 'pg_lsn_hash_extended', prorettype => 'int8', + proargtypes => 'pg_lsn int8', prosrc => 'pg_lsn_hash_extended' }, + +# enum related procs +{ oid => '3504', descr => 'I/O', + proname => 'anyenum_in', prorettype => 'anyenum', proargtypes => 'cstring', + prosrc => 'anyenum_in' }, +{ oid => '3505', descr => 'I/O', + proname => 'anyenum_out', provolatile => 's', prorettype => 'cstring', + proargtypes => 'anyenum', prosrc => 'anyenum_out' }, +{ oid => '3506', descr => 'I/O', + proname => 'enum_in', provolatile => 's', prorettype => 'anyenum', + proargtypes => 'cstring oid', prosrc => 'enum_in' }, +{ oid => '3507', descr => 'I/O', + proname => 'enum_out', provolatile => 's', prorettype => 'cstring', + proargtypes => 'anyenum', prosrc => 'enum_out' }, +{ oid => '3508', + proname => 'enum_eq', prorettype => 'bool', proargtypes => 'anyenum anyenum', + prosrc => 'enum_eq' }, +{ oid => '3509', + proname => 'enum_ne', prorettype => 'bool', proargtypes => 'anyenum anyenum', + prosrc => 'enum_ne' }, +{ oid => '3510', + proname => 'enum_lt', prorettype => 'bool', proargtypes => 'anyenum anyenum', + prosrc => 'enum_lt' }, +{ oid => '3511', + proname => 'enum_gt', prorettype => 'bool', proargtypes => 'anyenum anyenum', + prosrc => 'enum_gt' }, +{ oid => '3512', + proname => 'enum_le', prorettype => 'bool', proargtypes => 'anyenum anyenum', + prosrc => 'enum_le' }, +{ oid => '3513', + proname => 'enum_ge', prorettype => 'bool', proargtypes => 'anyenum anyenum', + prosrc => 'enum_ge' }, +{ oid => '3514', descr => 'less-equal-greater', + proname => 'enum_cmp', prorettype => 'int4', proargtypes => 'anyenum anyenum', + prosrc => 'enum_cmp' }, +{ oid => '3515', descr => 'hash', + proname => 'hashenum', prorettype => 'int4', proargtypes => 'anyenum', + prosrc => 'hashenum' }, +{ oid => '3414', descr => 'hash', + proname => 'hashenumextended', prorettype => 'int8', + proargtypes => 'anyenum int8', prosrc => 'hashenumextended' }, +{ oid => '3524', descr => 'smaller of two', + proname => 'enum_smaller', prorettype => 'anyenum', + proargtypes => 'anyenum anyenum', prosrc => 'enum_smaller' }, +{ oid => '3525', descr => 'larger of two', + proname => 'enum_larger', prorettype => 'anyenum', + proargtypes => 'anyenum anyenum', prosrc => 'enum_larger' }, +{ oid => '3526', descr => 'maximum value of all enum input values', + proname => 'max', prokind => 'a', proisstrict => 'f', prorettype => 'anyenum', + proargtypes => 'anyenum', prosrc => 'aggregate_dummy' }, +{ oid => '3527', descr => 'minimum value of all enum input values', + proname => 'min', prokind => 'a', proisstrict => 'f', prorettype => 'anyenum', + proargtypes => 'anyenum', prosrc => 'aggregate_dummy' }, +{ oid => '3528', descr => 'first value of the input enum type', + proname => 'enum_first', proisstrict => 'f', provolatile => 's', + prorettype => 'anyenum', proargtypes => 'anyenum', prosrc => 'enum_first' }, +{ oid => '3529', descr => 'last value of the input enum type', + proname => 'enum_last', proisstrict => 'f', provolatile => 's', + prorettype => 'anyenum', proargtypes => 'anyenum', prosrc => 'enum_last' }, +{ oid => '3530', + descr => 'range between the two given enum values, as an ordered array', + proname => 'enum_range', proisstrict => 'f', provolatile => 's', + prorettype => 'anyarray', proargtypes => 'anyenum anyenum', + prosrc => 'enum_range_bounds' }, +{ oid => '3531', descr => 'range of the given enum type, as an ordered array', + proname => 'enum_range', proisstrict => 'f', provolatile => 's', + prorettype => 'anyarray', proargtypes => 'anyenum', + prosrc => 'enum_range_all' }, +{ oid => '3532', descr => 'I/O', + proname => 'enum_recv', provolatile => 's', prorettype => 'anyenum', + proargtypes => 'internal oid', prosrc => 'enum_recv' }, +{ oid => '3533', descr => 'I/O', + proname => 'enum_send', provolatile => 's', prorettype => 'bytea', + proargtypes => 'anyenum', prosrc => 'enum_send' }, + +# text search stuff +{ oid => '3610', descr => 'I/O', + proname => 'tsvectorin', prorettype => 'tsvector', proargtypes => 'cstring', + prosrc => 'tsvectorin' }, +{ oid => '3639', descr => 'I/O', + proname => 'tsvectorrecv', prorettype => 'tsvector', + proargtypes => 'internal', prosrc => 'tsvectorrecv' }, +{ oid => '3611', descr => 'I/O', + proname => 'tsvectorout', prorettype => 'cstring', proargtypes => 'tsvector', + prosrc => 'tsvectorout' }, +{ oid => '3638', descr => 'I/O', + proname => 'tsvectorsend', prorettype => 'bytea', proargtypes => 'tsvector', + prosrc => 'tsvectorsend' }, +{ oid => '3612', descr => 'I/O', + proname => 'tsqueryin', prorettype => 'tsquery', proargtypes => 'cstring', + prosrc => 'tsqueryin' }, +{ oid => '3641', descr => 'I/O', + proname => 'tsqueryrecv', prorettype => 'tsquery', proargtypes => 'internal', + prosrc => 'tsqueryrecv' }, +{ oid => '3613', descr => 'I/O', + proname => 'tsqueryout', prorettype => 'cstring', proargtypes => 'tsquery', + prosrc => 'tsqueryout' }, +{ oid => '3640', descr => 'I/O', + proname => 'tsquerysend', prorettype => 'bytea', proargtypes => 'tsquery', + prosrc => 'tsquerysend' }, +{ oid => '3646', descr => 'I/O', + proname => 'gtsvectorin', prorettype => 'gtsvector', proargtypes => 'cstring', + prosrc => 'gtsvectorin' }, +{ oid => '3647', descr => 'I/O', + proname => 'gtsvectorout', prorettype => 'cstring', + proargtypes => 'gtsvector', prosrc => 'gtsvectorout' }, + +{ oid => '3616', + proname => 'tsvector_lt', prorettype => 'bool', + proargtypes => 'tsvector tsvector', prosrc => 'tsvector_lt' }, +{ oid => '3617', + proname => 'tsvector_le', prorettype => 'bool', + proargtypes => 'tsvector tsvector', prosrc => 'tsvector_le' }, +{ oid => '3618', + proname => 'tsvector_eq', prorettype => 'bool', + proargtypes => 'tsvector tsvector', prosrc => 'tsvector_eq' }, +{ oid => '3619', + proname => 'tsvector_ne', prorettype => 'bool', + proargtypes => 'tsvector tsvector', prosrc => 'tsvector_ne' }, +{ oid => '3620', + proname => 'tsvector_ge', prorettype => 'bool', + proargtypes => 'tsvector tsvector', prosrc => 'tsvector_ge' }, +{ oid => '3621', + proname => 'tsvector_gt', prorettype => 'bool', + proargtypes => 'tsvector tsvector', prosrc => 'tsvector_gt' }, +{ oid => '3622', descr => 'less-equal-greater', + proname => 'tsvector_cmp', prorettype => 'int4', + proargtypes => 'tsvector tsvector', prosrc => 'tsvector_cmp' }, + +{ oid => '3711', descr => 'number of lexemes', + proname => 'length', prorettype => 'int4', proargtypes => 'tsvector', + prosrc => 'tsvector_length' }, +{ oid => '3623', descr => 'strip position information', + proname => 'strip', prorettype => 'tsvector', proargtypes => 'tsvector', + prosrc => 'tsvector_strip' }, +{ oid => '3624', descr => 'set given weight for whole tsvector', + proname => 'setweight', prorettype => 'tsvector', + proargtypes => 'tsvector char', prosrc => 'tsvector_setweight' }, +{ oid => '3320', descr => 'set given weight for given lexemes', + proname => 'setweight', prorettype => 'tsvector', + proargtypes => 'tsvector char _text', + prosrc => 'tsvector_setweight_by_filter' }, +{ oid => '3625', + proname => 'tsvector_concat', prorettype => 'tsvector', + proargtypes => 'tsvector tsvector', prosrc => 'tsvector_concat' }, +{ oid => '3321', descr => 'delete lexeme', + proname => 'ts_delete', prorettype => 'tsvector', + proargtypes => 'tsvector text', prosrc => 'tsvector_delete_str' }, +{ oid => '3323', descr => 'delete given lexemes', + proname => 'ts_delete', prorettype => 'tsvector', + proargtypes => 'tsvector _text', prosrc => 'tsvector_delete_arr' }, +{ oid => '3322', descr => 'expand tsvector to set of rows', + proname => 'unnest', prorows => '10', proretset => 't', + prorettype => 'record', proargtypes => 'tsvector', + proallargtypes => '{tsvector,text,_int2,_text}', proargmodes => '{i,o,o,o}', + proargnames => '{tsvector,lexeme,positions,weights}', + prosrc => 'tsvector_unnest' }, +{ oid => '3326', descr => 'convert tsvector to array of lexemes', + proname => 'tsvector_to_array', prorettype => '_text', + proargtypes => 'tsvector', prosrc => 'tsvector_to_array' }, +{ oid => '3327', descr => 'build tsvector from array of lexemes', + proname => 'array_to_tsvector', prorettype => 'tsvector', + proargtypes => '_text', prosrc => 'array_to_tsvector' }, +{ oid => '3319', + descr => 'delete lexemes that do not have one of the given weights', + proname => 'ts_filter', prorettype => 'tsvector', + proargtypes => 'tsvector _char', prosrc => 'tsvector_filter' }, + +{ oid => '3634', + proname => 'ts_match_vq', prorettype => 'bool', + proargtypes => 'tsvector tsquery', prosrc => 'ts_match_vq' }, +{ oid => '3635', + proname => 'ts_match_qv', prorettype => 'bool', + proargtypes => 'tsquery tsvector', prosrc => 'ts_match_qv' }, +{ oid => '3760', + proname => 'ts_match_tt', procost => '100', provolatile => 's', + prorettype => 'bool', proargtypes => 'text text', prosrc => 'ts_match_tt' }, +{ oid => '3761', + proname => 'ts_match_tq', procost => '100', provolatile => 's', + prorettype => 'bool', proargtypes => 'text tsquery', + prosrc => 'ts_match_tq' }, + +{ oid => '3648', descr => 'GiST tsvector support', + proname => 'gtsvector_compress', prorettype => 'internal', + proargtypes => 'internal', prosrc => 'gtsvector_compress' }, +{ oid => '3649', descr => 'GiST tsvector support', + proname => 'gtsvector_decompress', prorettype => 'internal', + proargtypes => 'internal', prosrc => 'gtsvector_decompress' }, +{ oid => '3650', descr => 'GiST tsvector support', + proname => 'gtsvector_picksplit', prorettype => 'internal', + proargtypes => 'internal internal', prosrc => 'gtsvector_picksplit' }, +{ oid => '3651', descr => 'GiST tsvector support', + proname => 'gtsvector_union', prorettype => 'gtsvector', + proargtypes => 'internal internal', prosrc => 'gtsvector_union' }, +{ oid => '3652', descr => 'GiST tsvector support', + proname => 'gtsvector_same', prorettype => 'internal', + proargtypes => 'gtsvector gtsvector internal', prosrc => 'gtsvector_same' }, +{ oid => '3653', descr => 'GiST tsvector support', + proname => 'gtsvector_penalty', prorettype => 'internal', + proargtypes => 'internal internal internal', prosrc => 'gtsvector_penalty' }, +{ oid => '3654', descr => 'GiST tsvector support', + proname => 'gtsvector_consistent', prorettype => 'bool', + proargtypes => 'internal tsvector int2 oid internal', + prosrc => 'gtsvector_consistent' }, +{ oid => '3790', descr => 'GiST tsvector support (obsolete)', + proname => 'gtsvector_consistent', prorettype => 'bool', + proargtypes => 'internal gtsvector int4 oid internal', + prosrc => 'gtsvector_consistent_oldsig' }, + +{ oid => '3656', descr => 'GIN tsvector support', + proname => 'gin_extract_tsvector', prorettype => 'internal', + proargtypes => 'tsvector internal internal', + prosrc => 'gin_extract_tsvector' }, +{ oid => '3657', descr => 'GIN tsvector support', + proname => 'gin_extract_tsquery', prorettype => 'internal', + proargtypes => 'tsvector internal int2 internal internal internal internal', + prosrc => 'gin_extract_tsquery' }, +{ oid => '3658', descr => 'GIN tsvector support', + proname => 'gin_tsquery_consistent', prorettype => 'bool', + proargtypes => 'internal int2 tsvector int4 internal internal internal internal', + prosrc => 'gin_tsquery_consistent' }, +{ oid => '3921', descr => 'GIN tsvector support', + proname => 'gin_tsquery_triconsistent', prorettype => 'char', + proargtypes => 'internal int2 tsvector int4 internal internal internal', + prosrc => 'gin_tsquery_triconsistent' }, +{ oid => '3724', descr => 'GIN tsvector support', + proname => 'gin_cmp_tslexeme', prorettype => 'int4', + proargtypes => 'text text', prosrc => 'gin_cmp_tslexeme' }, +{ oid => '2700', descr => 'GIN tsvector support', + proname => 'gin_cmp_prefix', prorettype => 'int4', + proargtypes => 'text text int2 internal', prosrc => 'gin_cmp_prefix' }, +{ oid => '3077', descr => 'GIN tsvector support (obsolete)', + proname => 'gin_extract_tsvector', prorettype => 'internal', + proargtypes => 'tsvector internal', prosrc => 'gin_extract_tsvector_2args' }, +{ oid => '3087', descr => 'GIN tsvector support (obsolete)', + proname => 'gin_extract_tsquery', prorettype => 'internal', + proargtypes => 'tsquery internal int2 internal internal', + prosrc => 'gin_extract_tsquery_5args' }, +{ oid => '3088', descr => 'GIN tsvector support (obsolete)', + proname => 'gin_tsquery_consistent', prorettype => 'bool', + proargtypes => 'internal int2 tsquery int4 internal internal', + prosrc => 'gin_tsquery_consistent_6args' }, +{ oid => '3791', descr => 'GIN tsvector support (obsolete)', + proname => 'gin_extract_tsquery', prorettype => 'internal', + proargtypes => 'tsquery internal int2 internal internal internal internal', + prosrc => 'gin_extract_tsquery_oldsig' }, +{ oid => '3792', descr => 'GIN tsvector support (obsolete)', + proname => 'gin_tsquery_consistent', prorettype => 'bool', + proargtypes => 'internal int2 tsquery int4 internal internal internal internal', + prosrc => 'gin_tsquery_consistent_oldsig' }, + +{ oid => '3789', descr => 'clean up GIN pending list', + proname => 'gin_clean_pending_list', provolatile => 'v', proparallel => 'u', + prorettype => 'int8', proargtypes => 'regclass', + prosrc => 'gin_clean_pending_list' }, + +{ oid => '3662', + proname => 'tsquery_lt', prorettype => 'bool', + proargtypes => 'tsquery tsquery', prosrc => 'tsquery_lt' }, +{ oid => '3663', + proname => 'tsquery_le', prorettype => 'bool', + proargtypes => 'tsquery tsquery', prosrc => 'tsquery_le' }, +{ oid => '3664', + proname => 'tsquery_eq', prorettype => 'bool', + proargtypes => 'tsquery tsquery', prosrc => 'tsquery_eq' }, +{ oid => '3665', + proname => 'tsquery_ne', prorettype => 'bool', + proargtypes => 'tsquery tsquery', prosrc => 'tsquery_ne' }, +{ oid => '3666', + proname => 'tsquery_ge', prorettype => 'bool', + proargtypes => 'tsquery tsquery', prosrc => 'tsquery_ge' }, +{ oid => '3667', + proname => 'tsquery_gt', prorettype => 'bool', + proargtypes => 'tsquery tsquery', prosrc => 'tsquery_gt' }, +{ oid => '3668', descr => 'less-equal-greater', + proname => 'tsquery_cmp', prorettype => 'int4', + proargtypes => 'tsquery tsquery', prosrc => 'tsquery_cmp' }, + +{ oid => '3669', + proname => 'tsquery_and', prorettype => 'tsquery', + proargtypes => 'tsquery tsquery', prosrc => 'tsquery_and' }, +{ oid => '3670', + proname => 'tsquery_or', prorettype => 'tsquery', + proargtypes => 'tsquery tsquery', prosrc => 'tsquery_or' }, +{ oid => '5003', + proname => 'tsquery_phrase', prorettype => 'tsquery', + proargtypes => 'tsquery tsquery', prosrc => 'tsquery_phrase' }, +{ oid => '5004', descr => 'phrase-concatenate with distance', + proname => 'tsquery_phrase', prorettype => 'tsquery', + proargtypes => 'tsquery tsquery int4', prosrc => 'tsquery_phrase_distance' }, +{ oid => '3671', + proname => 'tsquery_not', prorettype => 'tsquery', proargtypes => 'tsquery', + prosrc => 'tsquery_not' }, + +{ oid => '3691', + proname => 'tsq_mcontains', prorettype => 'bool', + proargtypes => 'tsquery tsquery', prosrc => 'tsq_mcontains' }, +{ oid => '3692', + proname => 'tsq_mcontained', prorettype => 'bool', + proargtypes => 'tsquery tsquery', prosrc => 'tsq_mcontained' }, + +{ oid => '3672', descr => 'number of nodes', + proname => 'numnode', prorettype => 'int4', proargtypes => 'tsquery', + prosrc => 'tsquery_numnode' }, +{ oid => '3673', descr => 'show real useful query for GiST index', + proname => 'querytree', prorettype => 'text', proargtypes => 'tsquery', + prosrc => 'tsquerytree' }, + +{ oid => '3684', descr => 'rewrite tsquery', + proname => 'ts_rewrite', prorettype => 'tsquery', + proargtypes => 'tsquery tsquery tsquery', prosrc => 'tsquery_rewrite' }, +{ oid => '3685', descr => 'rewrite tsquery', + proname => 'ts_rewrite', procost => '100', provolatile => 'v', + proparallel => 'u', prorettype => 'tsquery', proargtypes => 'tsquery text', + prosrc => 'tsquery_rewrite_query' }, + +{ oid => '3695', descr => 'GiST tsquery support', + proname => 'gtsquery_compress', prorettype => 'internal', + proargtypes => 'internal', prosrc => 'gtsquery_compress' }, +{ oid => '3697', descr => 'GiST tsquery support', + proname => 'gtsquery_picksplit', prorettype => 'internal', + proargtypes => 'internal internal', prosrc => 'gtsquery_picksplit' }, +{ oid => '3698', descr => 'GiST tsquery support', + proname => 'gtsquery_union', prorettype => 'int8', + proargtypes => 'internal internal', prosrc => 'gtsquery_union' }, +{ oid => '3699', descr => 'GiST tsquery support', + proname => 'gtsquery_same', prorettype => 'internal', + proargtypes => 'int8 int8 internal', prosrc => 'gtsquery_same' }, +{ oid => '3700', descr => 'GiST tsquery support', + proname => 'gtsquery_penalty', prorettype => 'internal', + proargtypes => 'internal internal internal', prosrc => 'gtsquery_penalty' }, +{ oid => '3701', descr => 'GiST tsquery support', + proname => 'gtsquery_consistent', prorettype => 'bool', + proargtypes => 'internal tsquery int2 oid internal', + prosrc => 'gtsquery_consistent' }, +{ oid => '3793', descr => 'GiST tsquery support (obsolete)', + proname => 'gtsquery_consistent', prorettype => 'bool', + proargtypes => 'internal internal int4 oid internal', + prosrc => 'gtsquery_consistent_oldsig' }, + +{ oid => '3686', descr => 'restriction selectivity of tsvector @@ tsquery', + proname => 'tsmatchsel', provolatile => 's', prorettype => 'float8', + proargtypes => 'internal oid internal int4', prosrc => 'tsmatchsel' }, +{ oid => '3687', descr => 'join selectivity of tsvector @@ tsquery', + proname => 'tsmatchjoinsel', provolatile => 's', prorettype => 'float8', + proargtypes => 'internal oid internal int2 internal', + prosrc => 'tsmatchjoinsel' }, +{ oid => '3688', descr => 'tsvector typanalyze', + proname => 'ts_typanalyze', provolatile => 's', prorettype => 'bool', + proargtypes => 'internal', prosrc => 'ts_typanalyze' }, + +{ oid => '3689', descr => 'statistics of tsvector column', + proname => 'ts_stat', procost => '10', prorows => '10000', proretset => 't', + provolatile => 'v', proparallel => 'u', prorettype => 'record', + proargtypes => 'text', proallargtypes => '{text,text,int4,int4}', + proargmodes => '{i,o,o,o}', proargnames => '{query,word,ndoc,nentry}', + prosrc => 'ts_stat1' }, +{ oid => '3690', descr => 'statistics of tsvector column', + proname => 'ts_stat', procost => '10', prorows => '10000', proretset => 't', + provolatile => 'v', proparallel => 'u', prorettype => 'record', + proargtypes => 'text text', proallargtypes => '{text,text,text,int4,int4}', + proargmodes => '{i,i,o,o,o}', + proargnames => '{query,weights,word,ndoc,nentry}', prosrc => 'ts_stat2' }, + +{ oid => '3703', descr => 'relevance', + proname => 'ts_rank', prorettype => 'float4', + proargtypes => '_float4 tsvector tsquery int4', prosrc => 'ts_rank_wttf' }, +{ oid => '3704', descr => 'relevance', + proname => 'ts_rank', prorettype => 'float4', + proargtypes => '_float4 tsvector tsquery', prosrc => 'ts_rank_wtt' }, +{ oid => '3705', descr => 'relevance', + proname => 'ts_rank', prorettype => 'float4', + proargtypes => 'tsvector tsquery int4', prosrc => 'ts_rank_ttf' }, +{ oid => '3706', descr => 'relevance', + proname => 'ts_rank', prorettype => 'float4', + proargtypes => 'tsvector tsquery', prosrc => 'ts_rank_tt' }, +{ oid => '3707', descr => 'relevance', + proname => 'ts_rank_cd', prorettype => 'float4', + proargtypes => '_float4 tsvector tsquery int4', prosrc => 'ts_rankcd_wttf' }, +{ oid => '3708', descr => 'relevance', + proname => 'ts_rank_cd', prorettype => 'float4', + proargtypes => '_float4 tsvector tsquery', prosrc => 'ts_rankcd_wtt' }, +{ oid => '3709', descr => 'relevance', + proname => 'ts_rank_cd', prorettype => 'float4', + proargtypes => 'tsvector tsquery int4', prosrc => 'ts_rankcd_ttf' }, +{ oid => '3710', descr => 'relevance', + proname => 'ts_rank_cd', prorettype => 'float4', + proargtypes => 'tsvector tsquery', prosrc => 'ts_rankcd_tt' }, + +{ oid => '3713', descr => 'get parser\'s token types', + proname => 'ts_token_type', prorows => '16', proretset => 't', + prorettype => 'record', proargtypes => 'oid', + proallargtypes => '{oid,int4,text,text}', proargmodes => '{i,o,o,o}', + proargnames => '{parser_oid,tokid,alias,description}', + prosrc => 'ts_token_type_byid' }, +{ oid => '3714', descr => 'get parser\'s token types', + proname => 'ts_token_type', prorows => '16', proretset => 't', + provolatile => 's', prorettype => 'record', proargtypes => 'text', + proallargtypes => '{text,int4,text,text}', proargmodes => '{i,o,o,o}', + proargnames => '{parser_name,tokid,alias,description}', + prosrc => 'ts_token_type_byname' }, +{ oid => '3715', descr => 'parse text to tokens', + proname => 'ts_parse', prorows => '1000', proretset => 't', + prorettype => 'record', proargtypes => 'oid text', + proallargtypes => '{oid,text,int4,text}', proargmodes => '{i,i,o,o}', + proargnames => '{parser_oid,txt,tokid,token}', prosrc => 'ts_parse_byid' }, +{ oid => '3716', descr => 'parse text to tokens', + proname => 'ts_parse', prorows => '1000', proretset => 't', + provolatile => 's', prorettype => 'record', proargtypes => 'text text', + proallargtypes => '{text,text,int4,text}', proargmodes => '{i,i,o,o}', + proargnames => '{parser_name,txt,tokid,token}', prosrc => 'ts_parse_byname' }, + +{ oid => '3717', descr => '(internal)', + proname => 'prsd_start', prorettype => 'internal', + proargtypes => 'internal int4', prosrc => 'prsd_start' }, +{ oid => '3718', descr => '(internal)', + proname => 'prsd_nexttoken', prorettype => 'internal', + proargtypes => 'internal internal internal', prosrc => 'prsd_nexttoken' }, +{ oid => '3719', descr => '(internal)', + proname => 'prsd_end', prorettype => 'void', proargtypes => 'internal', + prosrc => 'prsd_end' }, +{ oid => '3720', descr => '(internal)', + proname => 'prsd_headline', prorettype => 'internal', + proargtypes => 'internal internal tsquery', prosrc => 'prsd_headline' }, +{ oid => '3721', descr => '(internal)', + proname => 'prsd_lextype', prorettype => 'internal', + proargtypes => 'internal', prosrc => 'prsd_lextype' }, + +{ oid => '3723', descr => 'normalize one word by dictionary', + proname => 'ts_lexize', prorettype => '_text', + proargtypes => 'regdictionary text', prosrc => 'ts_lexize' }, + +{ oid => '3725', descr => '(internal)', + proname => 'dsimple_init', prorettype => 'internal', + proargtypes => 'internal', prosrc => 'dsimple_init' }, +{ oid => '3726', descr => '(internal)', + proname => 'dsimple_lexize', prorettype => 'internal', + proargtypes => 'internal internal internal internal', + prosrc => 'dsimple_lexize' }, + +{ oid => '3728', descr => '(internal)', + proname => 'dsynonym_init', prorettype => 'internal', + proargtypes => 'internal', prosrc => 'dsynonym_init' }, +{ oid => '3729', descr => '(internal)', + proname => 'dsynonym_lexize', prorettype => 'internal', + proargtypes => 'internal internal internal internal', + prosrc => 'dsynonym_lexize' }, + +{ oid => '3731', descr => '(internal)', + proname => 'dispell_init', prorettype => 'internal', + proargtypes => 'internal', prosrc => 'dispell_init' }, +{ oid => '3732', descr => '(internal)', + proname => 'dispell_lexize', prorettype => 'internal', + proargtypes => 'internal internal internal internal', + prosrc => 'dispell_lexize' }, + +{ oid => '3740', descr => '(internal)', + proname => 'thesaurus_init', prorettype => 'internal', + proargtypes => 'internal', prosrc => 'thesaurus_init' }, +{ oid => '3741', descr => '(internal)', + proname => 'thesaurus_lexize', prorettype => 'internal', + proargtypes => 'internal internal internal internal', + prosrc => 'thesaurus_lexize' }, + +{ oid => '3743', descr => 'generate headline', + proname => 'ts_headline', procost => '100', prorettype => 'text', + proargtypes => 'regconfig text tsquery text', + prosrc => 'ts_headline_byid_opt' }, +{ oid => '3744', descr => 'generate headline', + proname => 'ts_headline', procost => '100', prorettype => 'text', + proargtypes => 'regconfig text tsquery', prosrc => 'ts_headline_byid' }, +{ oid => '3754', descr => 'generate headline', + proname => 'ts_headline', procost => '100', provolatile => 's', + prorettype => 'text', proargtypes => 'text tsquery text', + prosrc => 'ts_headline_opt' }, +{ oid => '3755', descr => 'generate headline', + proname => 'ts_headline', procost => '100', provolatile => 's', + prorettype => 'text', proargtypes => 'text tsquery', + prosrc => 'ts_headline' }, + +{ oid => '4201', descr => 'generate headline from jsonb', + proname => 'ts_headline', procost => '100', prorettype => 'jsonb', + proargtypes => 'regconfig jsonb tsquery text', + prosrc => 'ts_headline_jsonb_byid_opt' }, +{ oid => '4202', descr => 'generate headline from jsonb', + proname => 'ts_headline', procost => '100', prorettype => 'jsonb', + proargtypes => 'regconfig jsonb tsquery', + prosrc => 'ts_headline_jsonb_byid' }, +{ oid => '4203', descr => 'generate headline from jsonb', + proname => 'ts_headline', procost => '100', provolatile => 's', + prorettype => 'jsonb', proargtypes => 'jsonb tsquery text', + prosrc => 'ts_headline_jsonb_opt' }, +{ oid => '4204', descr => 'generate headline from jsonb', + proname => 'ts_headline', procost => '100', provolatile => 's', + prorettype => 'jsonb', proargtypes => 'jsonb tsquery', + prosrc => 'ts_headline_jsonb' }, + +{ oid => '4205', descr => 'generate headline from json', + proname => 'ts_headline', procost => '100', prorettype => 'json', + proargtypes => 'regconfig json tsquery text', + prosrc => 'ts_headline_json_byid_opt' }, +{ oid => '4206', descr => 'generate headline from json', + proname => 'ts_headline', procost => '100', prorettype => 'json', + proargtypes => 'regconfig json tsquery', prosrc => 'ts_headline_json_byid' }, +{ oid => '4207', descr => 'generate headline from json', + proname => 'ts_headline', procost => '100', provolatile => 's', + prorettype => 'json', proargtypes => 'json tsquery text', + prosrc => 'ts_headline_json_opt' }, +{ oid => '4208', descr => 'generate headline from json', + proname => 'ts_headline', procost => '100', provolatile => 's', + prorettype => 'json', proargtypes => 'json tsquery', + prosrc => 'ts_headline_json' }, + +{ oid => '3745', descr => 'transform to tsvector', + proname => 'to_tsvector', procost => '100', prorettype => 'tsvector', + proargtypes => 'regconfig text', prosrc => 'to_tsvector_byid' }, +{ oid => '3746', descr => 'make tsquery', + proname => 'to_tsquery', procost => '100', prorettype => 'tsquery', + proargtypes => 'regconfig text', prosrc => 'to_tsquery_byid' }, +{ oid => '3747', descr => 'transform to tsquery', + proname => 'plainto_tsquery', procost => '100', prorettype => 'tsquery', + proargtypes => 'regconfig text', prosrc => 'plainto_tsquery_byid' }, +{ oid => '5006', descr => 'transform to tsquery', + proname => 'phraseto_tsquery', procost => '100', prorettype => 'tsquery', + proargtypes => 'regconfig text', prosrc => 'phraseto_tsquery_byid' }, +{ oid => '8889', descr => 'transform to tsquery', + proname => 'websearch_to_tsquery', procost => '100', prorettype => 'tsquery', + proargtypes => 'regconfig text', prosrc => 'websearch_to_tsquery_byid' }, +{ oid => '3749', descr => 'transform to tsvector', + proname => 'to_tsvector', procost => '100', provolatile => 's', + prorettype => 'tsvector', proargtypes => 'text', prosrc => 'to_tsvector' }, +{ oid => '3750', descr => 'make tsquery', + proname => 'to_tsquery', procost => '100', provolatile => 's', + prorettype => 'tsquery', proargtypes => 'text', prosrc => 'to_tsquery' }, +{ oid => '3751', descr => 'transform to tsquery', + proname => 'plainto_tsquery', procost => '100', provolatile => 's', + prorettype => 'tsquery', proargtypes => 'text', prosrc => 'plainto_tsquery' }, +{ oid => '5001', descr => 'transform to tsquery', + proname => 'phraseto_tsquery', procost => '100', provolatile => 's', + prorettype => 'tsquery', proargtypes => 'text', + prosrc => 'phraseto_tsquery' }, +{ oid => '8890', descr => 'transform to tsquery', + proname => 'websearch_to_tsquery', procost => '100', provolatile => 's', + prorettype => 'tsquery', proargtypes => 'text', + prosrc => 'websearch_to_tsquery' }, +{ oid => '4209', descr => 'transform string values from jsonb to tsvector', + proname => 'to_tsvector', procost => '100', provolatile => 's', + prorettype => 'tsvector', proargtypes => 'jsonb', + prosrc => 'jsonb_string_to_tsvector' }, +{ oid => '4213', descr => 'transform specified values from jsonb to tsvector', + proname => 'jsonb_to_tsvector', procost => '100', provolatile => 's', + prorettype => 'tsvector', proargtypes => 'jsonb jsonb', + prosrc => 'jsonb_to_tsvector' }, +{ oid => '4210', descr => 'transform string values from json to tsvector', + proname => 'to_tsvector', procost => '100', provolatile => 's', + prorettype => 'tsvector', proargtypes => 'json', + prosrc => 'json_string_to_tsvector' }, +{ oid => '4215', descr => 'transform specified values from json to tsvector', + proname => 'json_to_tsvector', procost => '100', provolatile => 's', + prorettype => 'tsvector', proargtypes => 'json jsonb', + prosrc => 'json_to_tsvector' }, +{ oid => '4211', descr => 'transform string values from jsonb to tsvector', + proname => 'to_tsvector', procost => '100', prorettype => 'tsvector', + proargtypes => 'regconfig jsonb', prosrc => 'jsonb_string_to_tsvector_byid' }, +{ oid => '4214', descr => 'transform specified values from jsonb to tsvector', + proname => 'jsonb_to_tsvector', procost => '100', prorettype => 'tsvector', + proargtypes => 'regconfig jsonb jsonb', prosrc => 'jsonb_to_tsvector_byid' }, +{ oid => '4212', descr => 'transform string values from json to tsvector', + proname => 'to_tsvector', procost => '100', prorettype => 'tsvector', + proargtypes => 'regconfig json', prosrc => 'json_string_to_tsvector_byid' }, +{ oid => '4216', descr => 'transform specified values from json to tsvector', + proname => 'json_to_tsvector', procost => '100', prorettype => 'tsvector', + proargtypes => 'regconfig json jsonb', prosrc => 'json_to_tsvector_byid' }, + +{ oid => '3752', descr => 'trigger for automatic update of tsvector column', + proname => 'tsvector_update_trigger', proisstrict => 'f', provolatile => 'v', + prorettype => 'trigger', proargtypes => '', + prosrc => 'tsvector_update_trigger_byid' }, +{ oid => '3753', descr => 'trigger for automatic update of tsvector column', + proname => 'tsvector_update_trigger_column', proisstrict => 'f', + provolatile => 'v', prorettype => 'trigger', proargtypes => '', + prosrc => 'tsvector_update_trigger_bycolumn' }, + +{ oid => '3759', descr => 'get current tsearch configuration', + proname => 'get_current_ts_config', provolatile => 's', + prorettype => 'regconfig', proargtypes => '', + prosrc => 'get_current_ts_config' }, + +{ oid => '3736', descr => 'I/O', + proname => 'regconfigin', provolatile => 's', prorettype => 'regconfig', + proargtypes => 'cstring', prosrc => 'regconfigin' }, +{ oid => '3737', descr => 'I/O', + proname => 'regconfigout', provolatile => 's', prorettype => 'cstring', + proargtypes => 'regconfig', prosrc => 'regconfigout' }, +{ oid => '3738', descr => 'I/O', + proname => 'regconfigrecv', prorettype => 'regconfig', + proargtypes => 'internal', prosrc => 'regconfigrecv' }, +{ oid => '3739', descr => 'I/O', + proname => 'regconfigsend', prorettype => 'bytea', proargtypes => 'regconfig', + prosrc => 'regconfigsend' }, + +{ oid => '3771', descr => 'I/O', + proname => 'regdictionaryin', provolatile => 's', + prorettype => 'regdictionary', proargtypes => 'cstring', + prosrc => 'regdictionaryin' }, +{ oid => '3772', descr => 'I/O', + proname => 'regdictionaryout', provolatile => 's', prorettype => 'cstring', + proargtypes => 'regdictionary', prosrc => 'regdictionaryout' }, +{ oid => '3773', descr => 'I/O', + proname => 'regdictionaryrecv', prorettype => 'regdictionary', + proargtypes => 'internal', prosrc => 'regdictionaryrecv' }, +{ oid => '3774', descr => 'I/O', + proname => 'regdictionarysend', prorettype => 'bytea', + proargtypes => 'regdictionary', prosrc => 'regdictionarysend' }, + +# jsonb +{ oid => '3806', descr => 'I/O', + proname => 'jsonb_in', prorettype => 'jsonb', proargtypes => 'cstring', + prosrc => 'jsonb_in' }, +{ oid => '3805', descr => 'I/O', + proname => 'jsonb_recv', prorettype => 'jsonb', proargtypes => 'internal', + prosrc => 'jsonb_recv' }, +{ oid => '3804', descr => 'I/O', + proname => 'jsonb_out', prorettype => 'cstring', proargtypes => 'jsonb', + prosrc => 'jsonb_out' }, +{ oid => '3803', descr => 'I/O', + proname => 'jsonb_send', prorettype => 'bytea', proargtypes => 'jsonb', + prosrc => 'jsonb_send' }, + +{ oid => '3263', descr => 'map text array of key value pairs to jsonb object', + proname => 'jsonb_object', prorettype => 'jsonb', proargtypes => '_text', + prosrc => 'jsonb_object' }, +{ oid => '3264', descr => 'map text array of key value pairs to jsonb object', + proname => 'jsonb_object', prorettype => 'jsonb', + proargtypes => '_text _text', prosrc => 'jsonb_object_two_arg' }, +{ oid => '3787', descr => 'map input to jsonb', + proname => 'to_jsonb', provolatile => 's', prorettype => 'jsonb', + proargtypes => 'anyelement', prosrc => 'to_jsonb' }, +{ oid => '3265', descr => 'jsonb aggregate transition function', + proname => 'jsonb_agg_transfn', proisstrict => 'f', provolatile => 's', + prorettype => 'internal', proargtypes => 'internal anyelement', + prosrc => 'jsonb_agg_transfn' }, +{ oid => '3266', descr => 'jsonb aggregate final function', + proname => 'jsonb_agg_finalfn', proisstrict => 'f', provolatile => 's', + prorettype => 'jsonb', proargtypes => 'internal', + prosrc => 'jsonb_agg_finalfn' }, +{ oid => '3267', descr => 'aggregate input into jsonb', + proname => 'jsonb_agg', prokind => 'a', proisstrict => 'f', + provolatile => 's', prorettype => 'jsonb', proargtypes => 'anyelement', + prosrc => 'aggregate_dummy' }, +{ oid => '3268', descr => 'jsonb object aggregate transition function', + proname => 'jsonb_object_agg_transfn', proisstrict => 'f', provolatile => 's', + prorettype => 'internal', proargtypes => 'internal any any', + prosrc => 'jsonb_object_agg_transfn' }, +{ oid => '3269', descr => 'jsonb object aggregate final function', + proname => 'jsonb_object_agg_finalfn', proisstrict => 'f', provolatile => 's', + prorettype => 'jsonb', proargtypes => 'internal', + prosrc => 'jsonb_object_agg_finalfn' }, +{ oid => '3270', descr => 'aggregate inputs into jsonb object', + proname => 'jsonb_object_agg', prokind => 'a', proisstrict => 'f', + prorettype => 'jsonb', proargtypes => 'any any', + prosrc => 'aggregate_dummy' }, +{ oid => '3271', descr => 'build a jsonb array from any inputs', + proname => 'jsonb_build_array', provariadic => 'any', proisstrict => 'f', + provolatile => 's', prorettype => 'jsonb', proargtypes => 'any', + proallargtypes => '{any}', proargmodes => '{v}', + prosrc => 'jsonb_build_array' }, +{ oid => '3272', descr => 'build an empty jsonb array', + proname => 'jsonb_build_array', proisstrict => 'f', provolatile => 's', + prorettype => 'jsonb', proargtypes => '', + prosrc => 'jsonb_build_array_noargs' }, +{ oid => '3273', + descr => 'build a jsonb object from pairwise key/value inputs', + proname => 'jsonb_build_object', provariadic => 'any', proisstrict => 'f', + provolatile => 's', prorettype => 'jsonb', proargtypes => 'any', + proallargtypes => '{any}', proargmodes => '{v}', + prosrc => 'jsonb_build_object' }, +{ oid => '3274', descr => 'build an empty jsonb object', + proname => 'jsonb_build_object', proisstrict => 'f', provolatile => 's', + prorettype => 'jsonb', proargtypes => '', + prosrc => 'jsonb_build_object_noargs' }, +{ oid => '3262', descr => 'remove object fields with null values from jsonb', + proname => 'jsonb_strip_nulls', prorettype => 'jsonb', proargtypes => 'jsonb', + prosrc => 'jsonb_strip_nulls' }, + +{ oid => '3478', + proname => 'jsonb_object_field', prorettype => 'jsonb', + proargtypes => 'jsonb text', proargnames => '{from_json, field_name}', + prosrc => 'jsonb_object_field' }, +{ oid => '3214', + proname => 'jsonb_object_field_text', prorettype => 'text', + proargtypes => 'jsonb text', proargnames => '{from_json, field_name}', + prosrc => 'jsonb_object_field_text' }, +{ oid => '3215', + proname => 'jsonb_array_element', prorettype => 'jsonb', + proargtypes => 'jsonb int4', proargnames => '{from_json, element_index}', + prosrc => 'jsonb_array_element' }, +{ oid => '3216', + proname => 'jsonb_array_element_text', prorettype => 'text', + proargtypes => 'jsonb int4', proargnames => '{from_json, element_index}', + prosrc => 'jsonb_array_element_text' }, +{ oid => '3217', descr => 'get value from jsonb with path elements', + proname => 'jsonb_extract_path', provariadic => 'text', prorettype => 'jsonb', + proargtypes => 'jsonb _text', proallargtypes => '{jsonb,_text}', + proargmodes => '{i,v}', proargnames => '{from_json,path_elems}', + prosrc => 'jsonb_extract_path' }, +{ oid => '3940', descr => 'get value from jsonb as text with path elements', + proname => 'jsonb_extract_path_text', provariadic => 'text', + prorettype => 'text', proargtypes => 'jsonb _text', + proallargtypes => '{jsonb,_text}', proargmodes => '{i,v}', + proargnames => '{from_json,path_elems}', + prosrc => 'jsonb_extract_path_text' }, +{ oid => '3219', descr => 'elements of a jsonb array', + proname => 'jsonb_array_elements', prorows => '100', proretset => 't', + prorettype => 'jsonb', proargtypes => 'jsonb', + proallargtypes => '{jsonb,jsonb}', proargmodes => '{i,o}', + proargnames => '{from_json,value}', prosrc => 'jsonb_array_elements' }, +{ oid => '3465', descr => 'elements of jsonb array', + proname => 'jsonb_array_elements_text', prorows => '100', proretset => 't', + prorettype => 'text', proargtypes => 'jsonb', + proallargtypes => '{jsonb,text}', proargmodes => '{i,o}', + proargnames => '{from_json,value}', prosrc => 'jsonb_array_elements_text' }, +{ oid => '3207', descr => 'length of jsonb array', + proname => 'jsonb_array_length', prorettype => 'int4', proargtypes => 'jsonb', + prosrc => 'jsonb_array_length' }, +{ oid => '3931', descr => 'get jsonb object keys', + proname => 'jsonb_object_keys', prorows => '100', proretset => 't', + prorettype => 'text', proargtypes => 'jsonb', prosrc => 'jsonb_object_keys' }, +{ oid => '3208', descr => 'key value pairs of a jsonb object', + proname => 'jsonb_each', prorows => '100', proretset => 't', + prorettype => 'record', proargtypes => 'jsonb', + proallargtypes => '{jsonb,text,jsonb}', proargmodes => '{i,o,o}', + proargnames => '{from_json,key,value}', prosrc => 'jsonb_each' }, +{ oid => '3932', descr => 'key value pairs of a jsonb object', + proname => 'jsonb_each_text', prorows => '100', proretset => 't', + prorettype => 'record', proargtypes => 'jsonb', + proallargtypes => '{jsonb,text,text}', proargmodes => '{i,o,o}', + proargnames => '{from_json,key,value}', prosrc => 'jsonb_each_text' }, +{ oid => '3209', descr => 'get record fields from a jsonb object', + proname => 'jsonb_populate_record', proisstrict => 'f', provolatile => 's', + prorettype => 'anyelement', proargtypes => 'anyelement jsonb', + prosrc => 'jsonb_populate_record' }, +{ oid => '3475', + descr => 'get set of records with fields from a jsonb array of objects', + proname => 'jsonb_populate_recordset', prorows => '100', proisstrict => 'f', + proretset => 't', provolatile => 's', prorettype => 'anyelement', + proargtypes => 'anyelement jsonb', prosrc => 'jsonb_populate_recordset' }, +{ oid => '3490', descr => 'get record fields from a jsonb object', + proname => 'jsonb_to_record', provolatile => 's', prorettype => 'record', + proargtypes => 'jsonb', prosrc => 'jsonb_to_record' }, +{ oid => '3491', + descr => 'get set of records with fields from a jsonb array of objects', + proname => 'jsonb_to_recordset', prorows => '100', proisstrict => 'f', + proretset => 't', provolatile => 's', prorettype => 'record', + proargtypes => 'jsonb', prosrc => 'jsonb_to_recordset' }, +{ oid => '3210', descr => 'get the type of a jsonb value', + proname => 'jsonb_typeof', prorettype => 'text', proargtypes => 'jsonb', + prosrc => 'jsonb_typeof' }, +{ oid => '4038', + proname => 'jsonb_ne', prorettype => 'bool', proargtypes => 'jsonb jsonb', + prosrc => 'jsonb_ne' }, +{ oid => '4039', + proname => 'jsonb_lt', prorettype => 'bool', proargtypes => 'jsonb jsonb', + prosrc => 'jsonb_lt' }, +{ oid => '4040', + proname => 'jsonb_gt', prorettype => 'bool', proargtypes => 'jsonb jsonb', + prosrc => 'jsonb_gt' }, +{ oid => '4041', + proname => 'jsonb_le', prorettype => 'bool', proargtypes => 'jsonb jsonb', + prosrc => 'jsonb_le' }, +{ oid => '4042', + proname => 'jsonb_ge', prorettype => 'bool', proargtypes => 'jsonb jsonb', + prosrc => 'jsonb_ge' }, +{ oid => '4043', + proname => 'jsonb_eq', prorettype => 'bool', proargtypes => 'jsonb jsonb', + prosrc => 'jsonb_eq' }, +{ oid => '4044', descr => 'less-equal-greater', + proname => 'jsonb_cmp', prorettype => 'int4', proargtypes => 'jsonb jsonb', + prosrc => 'jsonb_cmp' }, +{ oid => '4045', descr => 'hash', + proname => 'jsonb_hash', prorettype => 'int4', proargtypes => 'jsonb', + prosrc => 'jsonb_hash' }, +{ oid => '3416', descr => 'hash', + proname => 'jsonb_hash_extended', prorettype => 'int8', + proargtypes => 'jsonb int8', prosrc => 'jsonb_hash_extended' }, +{ oid => '4046', + proname => 'jsonb_contains', prorettype => 'bool', + proargtypes => 'jsonb jsonb', prosrc => 'jsonb_contains' }, +{ oid => '4047', + proname => 'jsonb_exists', prorettype => 'bool', proargtypes => 'jsonb text', + prosrc => 'jsonb_exists' }, +{ oid => '4048', + proname => 'jsonb_exists_any', prorettype => 'bool', + proargtypes => 'jsonb _text', prosrc => 'jsonb_exists_any' }, +{ oid => '4049', + proname => 'jsonb_exists_all', prorettype => 'bool', + proargtypes => 'jsonb _text', prosrc => 'jsonb_exists_all' }, +{ oid => '4050', + proname => 'jsonb_contained', prorettype => 'bool', + proargtypes => 'jsonb jsonb', prosrc => 'jsonb_contained' }, +{ oid => '3480', descr => 'GIN support', + proname => 'gin_compare_jsonb', prorettype => 'int4', + proargtypes => 'text text', prosrc => 'gin_compare_jsonb' }, +{ oid => '3482', descr => 'GIN support', + proname => 'gin_extract_jsonb', prorettype => 'internal', + proargtypes => 'jsonb internal internal', prosrc => 'gin_extract_jsonb' }, +{ oid => '3483', descr => 'GIN support', + proname => 'gin_extract_jsonb_query', prorettype => 'internal', + proargtypes => 'jsonb internal int2 internal internal internal internal', + prosrc => 'gin_extract_jsonb_query' }, +{ oid => '3484', descr => 'GIN support', + proname => 'gin_consistent_jsonb', prorettype => 'bool', + proargtypes => 'internal int2 jsonb int4 internal internal internal internal', + prosrc => 'gin_consistent_jsonb' }, +{ oid => '3488', descr => 'GIN support', + proname => 'gin_triconsistent_jsonb', prorettype => 'char', + proargtypes => 'internal int2 jsonb int4 internal internal internal', + prosrc => 'gin_triconsistent_jsonb' }, +{ oid => '3485', descr => 'GIN support', + proname => 'gin_extract_jsonb_path', prorettype => 'internal', + proargtypes => 'jsonb internal internal', + prosrc => 'gin_extract_jsonb_path' }, +{ oid => '3486', descr => 'GIN support', + proname => 'gin_extract_jsonb_query_path', prorettype => 'internal', + proargtypes => 'jsonb internal int2 internal internal internal internal', + prosrc => 'gin_extract_jsonb_query_path' }, +{ oid => '3487', descr => 'GIN support', + proname => 'gin_consistent_jsonb_path', prorettype => 'bool', + proargtypes => 'internal int2 jsonb int4 internal internal internal internal', + prosrc => 'gin_consistent_jsonb_path' }, +{ oid => '3489', descr => 'GIN support', + proname => 'gin_triconsistent_jsonb_path', prorettype => 'char', + proargtypes => 'internal int2 jsonb int4 internal internal internal', + prosrc => 'gin_triconsistent_jsonb_path' }, +{ oid => '3301', + proname => 'jsonb_concat', prorettype => 'jsonb', + proargtypes => 'jsonb jsonb', prosrc => 'jsonb_concat' }, +{ oid => '3302', + proname => 'jsonb_delete', prorettype => 'jsonb', proargtypes => 'jsonb text', + prosrc => 'jsonb_delete' }, +{ oid => '3303', + proname => 'jsonb_delete', prorettype => 'jsonb', proargtypes => 'jsonb int4', + prosrc => 'jsonb_delete_idx' }, +{ oid => '3343', + proname => 'jsonb_delete', provariadic => 'text', prorettype => 'jsonb', + proargtypes => 'jsonb _text', proallargtypes => '{jsonb,_text}', + proargmodes => '{i,v}', proargnames => '{from_json,path_elems}', + prosrc => 'jsonb_delete_array' }, +{ oid => '3304', + proname => 'jsonb_delete_path', prorettype => 'jsonb', + proargtypes => 'jsonb _text', prosrc => 'jsonb_delete_path' }, +{ oid => '3305', descr => 'Set part of a jsonb', + proname => 'jsonb_set', prorettype => 'jsonb', + proargtypes => 'jsonb _text jsonb bool', prosrc => 'jsonb_set' }, +{ oid => '3306', descr => 'Indented text from jsonb', + proname => 'jsonb_pretty', prorettype => 'text', proargtypes => 'jsonb', + prosrc => 'jsonb_pretty' }, +{ oid => '3579', descr => 'Insert value into a jsonb', + proname => 'jsonb_insert', prorettype => 'jsonb', + proargtypes => 'jsonb _text jsonb bool', prosrc => 'jsonb_insert' }, + +# txid +{ oid => '2939', descr => 'I/O', + proname => 'txid_snapshot_in', prorettype => 'txid_snapshot', + proargtypes => 'cstring', prosrc => 'txid_snapshot_in' }, +{ oid => '2940', descr => 'I/O', + proname => 'txid_snapshot_out', prorettype => 'cstring', + proargtypes => 'txid_snapshot', prosrc => 'txid_snapshot_out' }, +{ oid => '2941', descr => 'I/O', + proname => 'txid_snapshot_recv', prorettype => 'txid_snapshot', + proargtypes => 'internal', prosrc => 'txid_snapshot_recv' }, +{ oid => '2942', descr => 'I/O', + proname => 'txid_snapshot_send', prorettype => 'bytea', + proargtypes => 'txid_snapshot', prosrc => 'txid_snapshot_send' }, +{ oid => '2943', descr => 'get current transaction ID', + proname => 'txid_current', provolatile => 's', proparallel => 'u', + prorettype => 'int8', proargtypes => '', prosrc => 'txid_current' }, +{ oid => '3348', descr => 'get current transaction ID', + proname => 'txid_current_if_assigned', provolatile => 's', proparallel => 'u', + prorettype => 'int8', proargtypes => '', + prosrc => 'txid_current_if_assigned' }, +{ oid => '2944', descr => 'get current snapshot', + proname => 'txid_current_snapshot', provolatile => 's', + prorettype => 'txid_snapshot', proargtypes => '', + prosrc => 'txid_current_snapshot' }, +{ oid => '2945', descr => 'get xmin of snapshot', + proname => 'txid_snapshot_xmin', prorettype => 'int8', + proargtypes => 'txid_snapshot', prosrc => 'txid_snapshot_xmin' }, +{ oid => '2946', descr => 'get xmax of snapshot', + proname => 'txid_snapshot_xmax', prorettype => 'int8', + proargtypes => 'txid_snapshot', prosrc => 'txid_snapshot_xmax' }, +{ oid => '2947', descr => 'get set of in-progress txids in snapshot', + proname => 'txid_snapshot_xip', prorows => '50', proretset => 't', + prorettype => 'int8', proargtypes => 'txid_snapshot', + prosrc => 'txid_snapshot_xip' }, +{ oid => '2948', descr => 'is txid visible in snapshot?', + proname => 'txid_visible_in_snapshot', prorettype => 'bool', + proargtypes => 'int8 txid_snapshot', prosrc => 'txid_visible_in_snapshot' }, +{ oid => '3360', descr => 'commit status of transaction', + proname => 'txid_status', provolatile => 'v', prorettype => 'text', + proargtypes => 'int8', prosrc => 'txid_status' }, + +# record comparison using normal comparison rules +{ oid => '2981', + proname => 'record_eq', prorettype => 'bool', proargtypes => 'record record', + prosrc => 'record_eq' }, +{ oid => '2982', + proname => 'record_ne', prorettype => 'bool', proargtypes => 'record record', + prosrc => 'record_ne' }, +{ oid => '2983', + proname => 'record_lt', prorettype => 'bool', proargtypes => 'record record', + prosrc => 'record_lt' }, +{ oid => '2984', + proname => 'record_gt', prorettype => 'bool', proargtypes => 'record record', + prosrc => 'record_gt' }, +{ oid => '2985', + proname => 'record_le', prorettype => 'bool', proargtypes => 'record record', + prosrc => 'record_le' }, +{ oid => '2986', + proname => 'record_ge', prorettype => 'bool', proargtypes => 'record record', + prosrc => 'record_ge' }, +{ oid => '2987', descr => 'less-equal-greater', + proname => 'btrecordcmp', prorettype => 'int4', + proargtypes => 'record record', prosrc => 'btrecordcmp' }, + +# record comparison using raw byte images +{ oid => '3181', + proname => 'record_image_eq', prorettype => 'bool', + proargtypes => 'record record', prosrc => 'record_image_eq' }, +{ oid => '3182', + proname => 'record_image_ne', prorettype => 'bool', + proargtypes => 'record record', prosrc => 'record_image_ne' }, +{ oid => '3183', + proname => 'record_image_lt', prorettype => 'bool', + proargtypes => 'record record', prosrc => 'record_image_lt' }, +{ oid => '3184', + proname => 'record_image_gt', prorettype => 'bool', + proargtypes => 'record record', prosrc => 'record_image_gt' }, +{ oid => '3185', + proname => 'record_image_le', prorettype => 'bool', + proargtypes => 'record record', prosrc => 'record_image_le' }, +{ oid => '3186', + proname => 'record_image_ge', prorettype => 'bool', + proargtypes => 'record record', prosrc => 'record_image_ge' }, +{ oid => '3187', descr => 'less-equal-greater based on byte images', + proname => 'btrecordimagecmp', prorettype => 'int4', + proargtypes => 'record record', prosrc => 'btrecordimagecmp' }, + +# Extensions +{ oid => '3082', descr => 'list available extensions', + proname => 'pg_available_extensions', procost => '10', prorows => '100', + proretset => 't', provolatile => 's', prorettype => 'record', + proargtypes => '', proallargtypes => '{name,text,text}', + proargmodes => '{o,o,o}', proargnames => '{name,default_version,comment}', + prosrc => 'pg_available_extensions' }, +{ oid => '3083', descr => 'list available extension versions', + proname => 'pg_available_extension_versions', procost => '10', + prorows => '100', proretset => 't', provolatile => 's', + prorettype => 'record', proargtypes => '', + proallargtypes => '{name,text,bool,bool,name,_name,text}', + proargmodes => '{o,o,o,o,o,o,o}', + proargnames => '{name,version,superuser,relocatable,schema,requires,comment}', + prosrc => 'pg_available_extension_versions' }, +{ oid => '3084', descr => 'list an extension\'s version update paths', + proname => 'pg_extension_update_paths', procost => '10', prorows => '100', + proretset => 't', provolatile => 's', prorettype => 'record', + proargtypes => 'name', proallargtypes => '{name,text,text,text}', + proargmodes => '{i,o,o,o}', proargnames => '{name,source,target,path}', + prosrc => 'pg_extension_update_paths' }, +{ oid => '3086', + descr => 'flag an extension\'s table contents to be emitted by pg_dump', + proname => 'pg_extension_config_dump', provolatile => 'v', proparallel => 'u', + prorettype => 'void', proargtypes => 'regclass text', + prosrc => 'pg_extension_config_dump' }, + +# SQL-spec window functions +{ oid => '3100', descr => 'row number within partition', + proname => 'row_number', prokind => 'w', proisstrict => 'f', + prorettype => 'int8', proargtypes => '', prosrc => 'window_row_number' }, +{ oid => '3101', descr => 'integer rank with gaps', + proname => 'rank', prokind => 'w', proisstrict => 'f', prorettype => 'int8', + proargtypes => '', prosrc => 'window_rank' }, +{ oid => '3102', descr => 'integer rank without gaps', + proname => 'dense_rank', prokind => 'w', proisstrict => 'f', + prorettype => 'int8', proargtypes => '', prosrc => 'window_dense_rank' }, +{ oid => '3103', descr => 'fractional rank within partition', + proname => 'percent_rank', prokind => 'w', proisstrict => 'f', + prorettype => 'float8', proargtypes => '', prosrc => 'window_percent_rank' }, +{ oid => '3104', descr => 'fractional row number within partition', + proname => 'cume_dist', prokind => 'w', proisstrict => 'f', + prorettype => 'float8', proargtypes => '', prosrc => 'window_cume_dist' }, +{ oid => '3105', descr => 'split rows into N groups', + proname => 'ntile', prokind => 'w', prorettype => 'int4', + proargtypes => 'int4', prosrc => 'window_ntile' }, +{ oid => '3106', descr => 'fetch the preceding row value', + proname => 'lag', prokind => 'w', prorettype => 'anyelement', + proargtypes => 'anyelement', prosrc => 'window_lag' }, +{ oid => '3107', descr => 'fetch the Nth preceding row value', + proname => 'lag', prokind => 'w', prorettype => 'anyelement', + proargtypes => 'anyelement int4', prosrc => 'window_lag_with_offset' }, +{ oid => '3108', descr => 'fetch the Nth preceding row value with default', + proname => 'lag', prokind => 'w', prorettype => 'anyelement', + proargtypes => 'anyelement int4 anyelement', + prosrc => 'window_lag_with_offset_and_default' }, +{ oid => '3109', descr => 'fetch the following row value', + proname => 'lead', prokind => 'w', prorettype => 'anyelement', + proargtypes => 'anyelement', prosrc => 'window_lead' }, +{ oid => '3110', descr => 'fetch the Nth following row value', + proname => 'lead', prokind => 'w', prorettype => 'anyelement', + proargtypes => 'anyelement int4', prosrc => 'window_lead_with_offset' }, +{ oid => '3111', descr => 'fetch the Nth following row value with default', + proname => 'lead', prokind => 'w', prorettype => 'anyelement', + proargtypes => 'anyelement int4 anyelement', + prosrc => 'window_lead_with_offset_and_default' }, +{ oid => '3112', descr => 'fetch the first row value', + proname => 'first_value', prokind => 'w', prorettype => 'anyelement', + proargtypes => 'anyelement', prosrc => 'window_first_value' }, +{ oid => '3113', descr => 'fetch the last row value', + proname => 'last_value', prokind => 'w', prorettype => 'anyelement', + proargtypes => 'anyelement', prosrc => 'window_last_value' }, +{ oid => '3114', descr => 'fetch the Nth row value', + proname => 'nth_value', prokind => 'w', prorettype => 'anyelement', + proargtypes => 'anyelement int4', prosrc => 'window_nth_value' }, + +# functions for range types +{ oid => '3832', descr => 'I/O', + proname => 'anyrange_in', provolatile => 's', prorettype => 'anyrange', + proargtypes => 'cstring oid int4', prosrc => 'anyrange_in' }, +{ oid => '3833', descr => 'I/O', + proname => 'anyrange_out', provolatile => 's', prorettype => 'cstring', + proargtypes => 'anyrange', prosrc => 'anyrange_out' }, +{ oid => '3834', descr => 'I/O', + proname => 'range_in', provolatile => 's', prorettype => 'anyrange', + proargtypes => 'cstring oid int4', prosrc => 'range_in' }, +{ oid => '3835', descr => 'I/O', + proname => 'range_out', provolatile => 's', prorettype => 'cstring', + proargtypes => 'anyrange', prosrc => 'range_out' }, +{ oid => '3836', descr => 'I/O', + proname => 'range_recv', provolatile => 's', prorettype => 'anyrange', + proargtypes => 'internal oid int4', prosrc => 'range_recv' }, +{ oid => '3837', descr => 'I/O', + proname => 'range_send', provolatile => 's', prorettype => 'bytea', + proargtypes => 'anyrange', prosrc => 'range_send' }, +{ oid => '3848', descr => 'lower bound of range', + proname => 'lower', prorettype => 'anyelement', proargtypes => 'anyrange', + prosrc => 'range_lower' }, +{ oid => '3849', descr => 'upper bound of range', + proname => 'upper', prorettype => 'anyelement', proargtypes => 'anyrange', + prosrc => 'range_upper' }, +{ oid => '3850', descr => 'is the range empty?', + proname => 'isempty', prorettype => 'bool', proargtypes => 'anyrange', + prosrc => 'range_empty' }, +{ oid => '3851', descr => 'is the range\'s lower bound inclusive?', + proname => 'lower_inc', prorettype => 'bool', proargtypes => 'anyrange', + prosrc => 'range_lower_inc' }, +{ oid => '3852', descr => 'is the range\'s upper bound inclusive?', + proname => 'upper_inc', prorettype => 'bool', proargtypes => 'anyrange', + prosrc => 'range_upper_inc' }, +{ oid => '3853', descr => 'is the range\'s lower bound infinite?', + proname => 'lower_inf', prorettype => 'bool', proargtypes => 'anyrange', + prosrc => 'range_lower_inf' }, +{ oid => '3854', descr => 'is the range\'s upper bound infinite?', + proname => 'upper_inf', prorettype => 'bool', proargtypes => 'anyrange', + prosrc => 'range_upper_inf' }, +{ oid => '3855', + proname => 'range_eq', prorettype => 'bool', + proargtypes => 'anyrange anyrange', prosrc => 'range_eq' }, +{ oid => '3856', + proname => 'range_ne', prorettype => 'bool', + proargtypes => 'anyrange anyrange', prosrc => 'range_ne' }, +{ oid => '3857', + proname => 'range_overlaps', prorettype => 'bool', + proargtypes => 'anyrange anyrange', prosrc => 'range_overlaps' }, +{ oid => '3858', + proname => 'range_contains_elem', prorettype => 'bool', + proargtypes => 'anyrange anyelement', prosrc => 'range_contains_elem' }, +{ oid => '3859', + proname => 'range_contains', prorettype => 'bool', + proargtypes => 'anyrange anyrange', prosrc => 'range_contains' }, +{ oid => '3860', + proname => 'elem_contained_by_range', prorettype => 'bool', + proargtypes => 'anyelement anyrange', prosrc => 'elem_contained_by_range' }, +{ oid => '3861', + proname => 'range_contained_by', prorettype => 'bool', + proargtypes => 'anyrange anyrange', prosrc => 'range_contained_by' }, +{ oid => '3862', + proname => 'range_adjacent', prorettype => 'bool', + proargtypes => 'anyrange anyrange', prosrc => 'range_adjacent' }, +{ oid => '3863', + proname => 'range_before', prorettype => 'bool', + proargtypes => 'anyrange anyrange', prosrc => 'range_before' }, +{ oid => '3864', + proname => 'range_after', prorettype => 'bool', + proargtypes => 'anyrange anyrange', prosrc => 'range_after' }, +{ oid => '3865', + proname => 'range_overleft', prorettype => 'bool', + proargtypes => 'anyrange anyrange', prosrc => 'range_overleft' }, +{ oid => '3866', + proname => 'range_overright', prorettype => 'bool', + proargtypes => 'anyrange anyrange', prosrc => 'range_overright' }, +{ oid => '3867', + proname => 'range_union', prorettype => 'anyrange', + proargtypes => 'anyrange anyrange', prosrc => 'range_union' }, +{ oid => '4057', + descr => 'the smallest range which includes both of the given ranges', + proname => 'range_merge', prorettype => 'anyrange', + proargtypes => 'anyrange anyrange', prosrc => 'range_merge' }, +{ oid => '3868', + proname => 'range_intersect', prorettype => 'anyrange', + proargtypes => 'anyrange anyrange', prosrc => 'range_intersect' }, +{ oid => '3869', + proname => 'range_minus', prorettype => 'anyrange', + proargtypes => 'anyrange anyrange', prosrc => 'range_minus' }, +{ oid => '3870', descr => 'less-equal-greater', + proname => 'range_cmp', prorettype => 'int4', + proargtypes => 'anyrange anyrange', prosrc => 'range_cmp' }, +{ oid => '3871', + proname => 'range_lt', prorettype => 'bool', + proargtypes => 'anyrange anyrange', prosrc => 'range_lt' }, +{ oid => '3872', + proname => 'range_le', prorettype => 'bool', + proargtypes => 'anyrange anyrange', prosrc => 'range_le' }, +{ oid => '3873', + proname => 'range_ge', prorettype => 'bool', + proargtypes => 'anyrange anyrange', prosrc => 'range_ge' }, +{ oid => '3874', + proname => 'range_gt', prorettype => 'bool', + proargtypes => 'anyrange anyrange', prosrc => 'range_gt' }, +{ oid => '3875', descr => 'GiST support', + proname => 'range_gist_consistent', prorettype => 'bool', + proargtypes => 'internal anyrange int2 oid internal', + prosrc => 'range_gist_consistent' }, +{ oid => '3876', descr => 'GiST support', + proname => 'range_gist_union', prorettype => 'anyrange', + proargtypes => 'internal internal', prosrc => 'range_gist_union' }, +{ oid => '3879', descr => 'GiST support', + proname => 'range_gist_penalty', prorettype => 'internal', + proargtypes => 'internal internal internal', prosrc => 'range_gist_penalty' }, +{ oid => '3880', descr => 'GiST support', + proname => 'range_gist_picksplit', prorettype => 'internal', + proargtypes => 'internal internal', prosrc => 'range_gist_picksplit' }, +{ oid => '3881', descr => 'GiST support', + proname => 'range_gist_same', prorettype => 'internal', + proargtypes => 'anyrange anyrange internal', prosrc => 'range_gist_same' }, +{ oid => '3902', descr => 'hash a range', + proname => 'hash_range', prorettype => 'int4', proargtypes => 'anyrange', + prosrc => 'hash_range' }, +{ oid => '3417', descr => 'hash a range', + proname => 'hash_range_extended', prorettype => 'int8', + proargtypes => 'anyrange int8', prosrc => 'hash_range_extended' }, +{ oid => '3916', descr => 'range typanalyze', + proname => 'range_typanalyze', provolatile => 's', prorettype => 'bool', + proargtypes => 'internal', prosrc => 'range_typanalyze' }, +{ oid => '3169', descr => 'restriction selectivity for range operators', + proname => 'rangesel', provolatile => 's', prorettype => 'float8', + proargtypes => 'internal oid internal int4', prosrc => 'rangesel' }, + +{ oid => '3914', descr => 'convert an int4 range to canonical form', + proname => 'int4range_canonical', prorettype => 'int4range', + proargtypes => 'int4range', prosrc => 'int4range_canonical' }, +{ oid => '3928', descr => 'convert an int8 range to canonical form', + proname => 'int8range_canonical', prorettype => 'int8range', + proargtypes => 'int8range', prosrc => 'int8range_canonical' }, +{ oid => '3915', descr => 'convert a date range to canonical form', + proname => 'daterange_canonical', prorettype => 'daterange', + proargtypes => 'daterange', prosrc => 'daterange_canonical' }, +{ oid => '3922', descr => 'float8 difference of two int4 values', + proname => 'int4range_subdiff', prorettype => 'float8', + proargtypes => 'int4 int4', prosrc => 'int4range_subdiff' }, +{ oid => '3923', descr => 'float8 difference of two int8 values', + proname => 'int8range_subdiff', prorettype => 'float8', + proargtypes => 'int8 int8', prosrc => 'int8range_subdiff' }, +{ oid => '3924', descr => 'float8 difference of two numeric values', + proname => 'numrange_subdiff', prorettype => 'float8', + proargtypes => 'numeric numeric', prosrc => 'numrange_subdiff' }, +{ oid => '3925', descr => 'float8 difference of two date values', + proname => 'daterange_subdiff', prorettype => 'float8', + proargtypes => 'date date', prosrc => 'daterange_subdiff' }, +{ oid => '3929', descr => 'float8 difference of two timestamp values', + proname => 'tsrange_subdiff', prorettype => 'float8', + proargtypes => 'timestamp timestamp', prosrc => 'tsrange_subdiff' }, +{ oid => '3930', + descr => 'float8 difference of two timestamp with time zone values', + proname => 'tstzrange_subdiff', prorettype => 'float8', + proargtypes => 'timestamptz timestamptz', prosrc => 'tstzrange_subdiff' }, + +{ oid => '3840', descr => 'int4range constructor', + proname => 'int4range', proisstrict => 'f', prorettype => 'int4range', + proargtypes => 'int4 int4', prosrc => 'range_constructor2' }, +{ oid => '3841', descr => 'int4range constructor', + proname => 'int4range', proisstrict => 'f', prorettype => 'int4range', + proargtypes => 'int4 int4 text', prosrc => 'range_constructor3' }, +{ oid => '3844', descr => 'numrange constructor', + proname => 'numrange', proisstrict => 'f', prorettype => 'numrange', + proargtypes => 'numeric numeric', prosrc => 'range_constructor2' }, +{ oid => '3845', descr => 'numrange constructor', + proname => 'numrange', proisstrict => 'f', prorettype => 'numrange', + proargtypes => 'numeric numeric text', prosrc => 'range_constructor3' }, +{ oid => '3933', descr => 'tsrange constructor', + proname => 'tsrange', proisstrict => 'f', prorettype => 'tsrange', + proargtypes => 'timestamp timestamp', prosrc => 'range_constructor2' }, +{ oid => '3934', descr => 'tsrange constructor', + proname => 'tsrange', proisstrict => 'f', prorettype => 'tsrange', + proargtypes => 'timestamp timestamp text', prosrc => 'range_constructor3' }, +{ oid => '3937', descr => 'tstzrange constructor', + proname => 'tstzrange', proisstrict => 'f', prorettype => 'tstzrange', + proargtypes => 'timestamptz timestamptz', prosrc => 'range_constructor2' }, +{ oid => '3938', descr => 'tstzrange constructor', + proname => 'tstzrange', proisstrict => 'f', prorettype => 'tstzrange', + proargtypes => 'timestamptz timestamptz text', + prosrc => 'range_constructor3' }, +{ oid => '3941', descr => 'daterange constructor', + proname => 'daterange', proisstrict => 'f', prorettype => 'daterange', + proargtypes => 'date date', prosrc => 'range_constructor2' }, +{ oid => '3942', descr => 'daterange constructor', + proname => 'daterange', proisstrict => 'f', prorettype => 'daterange', + proargtypes => 'date date text', prosrc => 'range_constructor3' }, +{ oid => '3945', descr => 'int8range constructor', + proname => 'int8range', proisstrict => 'f', prorettype => 'int8range', + proargtypes => 'int8 int8', prosrc => 'range_constructor2' }, +{ oid => '3946', descr => 'int8range constructor', + proname => 'int8range', proisstrict => 'f', prorettype => 'int8range', + proargtypes => 'int8 int8 text', prosrc => 'range_constructor3' }, + +# date, time, timestamp constructors +{ oid => '3846', descr => 'construct date', + proname => 'make_date', prorettype => 'date', proargtypes => 'int4 int4 int4', + proargnames => '{year,month,day}', prosrc => 'make_date' }, +{ oid => '3847', descr => 'construct time', + proname => 'make_time', prorettype => 'time', + proargtypes => 'int4 int4 float8', proargnames => '{hour,min,sec}', + prosrc => 'make_time' }, +{ oid => '3461', descr => 'construct timestamp', + proname => 'make_timestamp', prorettype => 'timestamp', + proargtypes => 'int4 int4 int4 int4 int4 float8', + proargnames => '{year,month,mday,hour,min,sec}', prosrc => 'make_timestamp' }, +{ oid => '3462', descr => 'construct timestamp with time zone', + proname => 'make_timestamptz', provolatile => 's', + prorettype => 'timestamptz', proargtypes => 'int4 int4 int4 int4 int4 float8', + proargnames => '{year,month,mday,hour,min,sec}', + prosrc => 'make_timestamptz' }, +{ oid => '3463', descr => 'construct timestamp with time zone', + proname => 'make_timestamptz', provolatile => 's', + prorettype => 'timestamptz', + proargtypes => 'int4 int4 int4 int4 int4 float8 text', + proargnames => '{year,month,mday,hour,min,sec,timezone}', + prosrc => 'make_timestamptz_at_timezone' }, +{ oid => '3464', descr => 'construct interval', + proname => 'make_interval', prorettype => 'interval', + proargtypes => 'int4 int4 int4 int4 int4 int4 float8', + proargnames => '{years,months,weeks,days,hours,mins,secs}', + prosrc => 'make_interval' }, + +# spgist opclasses +{ oid => '4018', descr => 'SP-GiST support for quad tree over point', + proname => 'spg_quad_config', prorettype => 'void', + proargtypes => 'internal internal', prosrc => 'spg_quad_config' }, +{ oid => '4019', descr => 'SP-GiST support for quad tree over point', + proname => 'spg_quad_choose', prorettype => 'void', + proargtypes => 'internal internal', prosrc => 'spg_quad_choose' }, +{ oid => '4020', descr => 'SP-GiST support for quad tree over point', + proname => 'spg_quad_picksplit', prorettype => 'void', + proargtypes => 'internal internal', prosrc => 'spg_quad_picksplit' }, +{ oid => '4021', descr => 'SP-GiST support for quad tree over point', + proname => 'spg_quad_inner_consistent', prorettype => 'void', + proargtypes => 'internal internal', prosrc => 'spg_quad_inner_consistent' }, +{ oid => '4022', + descr => 'SP-GiST support for quad tree and k-d tree over point', + proname => 'spg_quad_leaf_consistent', prorettype => 'bool', + proargtypes => 'internal internal', prosrc => 'spg_quad_leaf_consistent' }, + +{ oid => '4023', descr => 'SP-GiST support for k-d tree over point', + proname => 'spg_kd_config', prorettype => 'void', + proargtypes => 'internal internal', prosrc => 'spg_kd_config' }, +{ oid => '4024', descr => 'SP-GiST support for k-d tree over point', + proname => 'spg_kd_choose', prorettype => 'void', + proargtypes => 'internal internal', prosrc => 'spg_kd_choose' }, +{ oid => '4025', descr => 'SP-GiST support for k-d tree over point', + proname => 'spg_kd_picksplit', prorettype => 'void', + proargtypes => 'internal internal', prosrc => 'spg_kd_picksplit' }, +{ oid => '4026', descr => 'SP-GiST support for k-d tree over point', + proname => 'spg_kd_inner_consistent', prorettype => 'void', + proargtypes => 'internal internal', prosrc => 'spg_kd_inner_consistent' }, + +{ oid => '4027', descr => 'SP-GiST support for radix tree over text', + proname => 'spg_text_config', prorettype => 'void', + proargtypes => 'internal internal', prosrc => 'spg_text_config' }, +{ oid => '4028', descr => 'SP-GiST support for radix tree over text', + proname => 'spg_text_choose', prorettype => 'void', + proargtypes => 'internal internal', prosrc => 'spg_text_choose' }, +{ oid => '4029', descr => 'SP-GiST support for radix tree over text', + proname => 'spg_text_picksplit', prorettype => 'void', + proargtypes => 'internal internal', prosrc => 'spg_text_picksplit' }, +{ oid => '4030', descr => 'SP-GiST support for radix tree over text', + proname => 'spg_text_inner_consistent', prorettype => 'void', + proargtypes => 'internal internal', prosrc => 'spg_text_inner_consistent' }, +{ oid => '4031', descr => 'SP-GiST support for radix tree over text', + proname => 'spg_text_leaf_consistent', prorettype => 'bool', + proargtypes => 'internal internal', prosrc => 'spg_text_leaf_consistent' }, + +{ oid => '3469', descr => 'SP-GiST support for quad tree over range', + proname => 'spg_range_quad_config', prorettype => 'void', + proargtypes => 'internal internal', prosrc => 'spg_range_quad_config' }, +{ oid => '3470', descr => 'SP-GiST support for quad tree over range', + proname => 'spg_range_quad_choose', prorettype => 'void', + proargtypes => 'internal internal', prosrc => 'spg_range_quad_choose' }, +{ oid => '3471', descr => 'SP-GiST support for quad tree over range', + proname => 'spg_range_quad_picksplit', prorettype => 'void', + proargtypes => 'internal internal', prosrc => 'spg_range_quad_picksplit' }, +{ oid => '3472', descr => 'SP-GiST support for quad tree over range', + proname => 'spg_range_quad_inner_consistent', prorettype => 'void', + proargtypes => 'internal internal', + prosrc => 'spg_range_quad_inner_consistent' }, +{ oid => '3473', descr => 'SP-GiST support for quad tree over range', + proname => 'spg_range_quad_leaf_consistent', prorettype => 'bool', + proargtypes => 'internal internal', + prosrc => 'spg_range_quad_leaf_consistent' }, + +{ oid => '5012', descr => 'SP-GiST support for quad tree over box', + proname => 'spg_box_quad_config', prorettype => 'void', + proargtypes => 'internal internal', prosrc => 'spg_box_quad_config' }, +{ oid => '5013', descr => 'SP-GiST support for quad tree over box', + proname => 'spg_box_quad_choose', prorettype => 'void', + proargtypes => 'internal internal', prosrc => 'spg_box_quad_choose' }, +{ oid => '5014', descr => 'SP-GiST support for quad tree over box', + proname => 'spg_box_quad_picksplit', prorettype => 'void', + proargtypes => 'internal internal', prosrc => 'spg_box_quad_picksplit' }, +{ oid => '5015', descr => 'SP-GiST support for quad tree over box', + proname => 'spg_box_quad_inner_consistent', prorettype => 'void', + proargtypes => 'internal internal', + prosrc => 'spg_box_quad_inner_consistent' }, +{ oid => '5016', descr => 'SP-GiST support for quad tree over box', + proname => 'spg_box_quad_leaf_consistent', prorettype => 'bool', + proargtypes => 'internal internal', + prosrc => 'spg_box_quad_leaf_consistent' }, + +{ oid => '5010', + descr => 'SP-GiST support for quad tree over 2-D types represented by their bounding boxes', + proname => 'spg_bbox_quad_config', prorettype => 'void', + proargtypes => 'internal internal', prosrc => 'spg_bbox_quad_config' }, +{ oid => '5011', descr => 'SP-GiST support for quad tree over polygons', + proname => 'spg_poly_quad_compress', prorettype => 'box', + proargtypes => 'polygon', prosrc => 'spg_poly_quad_compress' }, + +# replication slots +{ oid => '3779', descr => 'create a physical replication slot', + proname => 'pg_create_physical_replication_slot', provolatile => 'v', + proparallel => 'u', prorettype => 'record', proargtypes => 'name bool bool', + proallargtypes => '{name,bool,bool,name,pg_lsn}', + proargmodes => '{i,i,i,o,o}', + proargnames => '{slot_name,immediately_reserve,temporary,slot_name,lsn}', + prosrc => 'pg_create_physical_replication_slot' }, +{ oid => '3780', descr => 'drop a replication slot', + proname => 'pg_drop_replication_slot', provolatile => 'v', proparallel => 'u', + prorettype => 'void', proargtypes => 'name', + prosrc => 'pg_drop_replication_slot' }, +{ oid => '3781', + descr => 'information about replication slots currently in use', + proname => 'pg_get_replication_slots', prorows => '10', proisstrict => 'f', + proretset => 't', provolatile => 's', prorettype => 'record', + proargtypes => '', + proallargtypes => '{name,name,text,oid,bool,bool,int4,xid,xid,pg_lsn,pg_lsn}', + proargmodes => '{o,o,o,o,o,o,o,o,o,o,o}', + proargnames => '{slot_name,plugin,slot_type,datoid,temporary,active,active_pid,xmin,catalog_xmin,restart_lsn,confirmed_flush_lsn}', + prosrc => 'pg_get_replication_slots' }, +{ oid => '3786', descr => 'set up a logical replication slot', + proname => 'pg_create_logical_replication_slot', provolatile => 'v', + proparallel => 'u', prorettype => 'record', proargtypes => 'name name bool', + proallargtypes => '{name,name,bool,text,pg_lsn}', + proargmodes => '{i,i,i,o,o}', + proargnames => '{slot_name,plugin,temporary,slot_name,lsn}', + prosrc => 'pg_create_logical_replication_slot' }, +{ oid => '3782', descr => 'get changes from replication slot', + proname => 'pg_logical_slot_get_changes', procost => '1000', + prorows => '1000', provariadic => 'text', proisstrict => 'f', + proretset => 't', provolatile => 'v', proparallel => 'u', + prorettype => 'record', proargtypes => 'name pg_lsn int4 _text', + proallargtypes => '{name,pg_lsn,int4,_text,pg_lsn,xid,text}', + proargmodes => '{i,i,i,v,o,o,o}', + proargnames => '{slot_name,upto_lsn,upto_nchanges,options,lsn,xid,data}', + prosrc => 'pg_logical_slot_get_changes' }, +{ oid => '3783', descr => 'get binary changes from replication slot', + proname => 'pg_logical_slot_get_binary_changes', procost => '1000', + prorows => '1000', provariadic => 'text', proisstrict => 'f', + proretset => 't', provolatile => 'v', proparallel => 'u', + prorettype => 'record', proargtypes => 'name pg_lsn int4 _text', + proallargtypes => '{name,pg_lsn,int4,_text,pg_lsn,xid,bytea}', + proargmodes => '{i,i,i,v,o,o,o}', + proargnames => '{slot_name,upto_lsn,upto_nchanges,options,lsn,xid,data}', + prosrc => 'pg_logical_slot_get_binary_changes' }, +{ oid => '3784', descr => 'peek at changes from replication slot', + proname => 'pg_logical_slot_peek_changes', procost => '1000', + prorows => '1000', provariadic => 'text', proisstrict => 'f', + proretset => 't', provolatile => 'v', proparallel => 'u', + prorettype => 'record', proargtypes => 'name pg_lsn int4 _text', + proallargtypes => '{name,pg_lsn,int4,_text,pg_lsn,xid,text}', + proargmodes => '{i,i,i,v,o,o,o}', + proargnames => '{slot_name,upto_lsn,upto_nchanges,options,lsn,xid,data}', + prosrc => 'pg_logical_slot_peek_changes' }, +{ oid => '3785', descr => 'peek at binary changes from replication slot', + proname => 'pg_logical_slot_peek_binary_changes', procost => '1000', + prorows => '1000', provariadic => 'text', proisstrict => 'f', + proretset => 't', provolatile => 'v', proparallel => 'u', + prorettype => 'record', proargtypes => 'name pg_lsn int4 _text', + proallargtypes => '{name,pg_lsn,int4,_text,pg_lsn,xid,bytea}', + proargmodes => '{i,i,i,v,o,o,o}', + proargnames => '{slot_name,upto_lsn,upto_nchanges,options,lsn,xid,data}', + prosrc => 'pg_logical_slot_peek_binary_changes' }, +{ oid => '3878', descr => 'advance logical replication slot', + proname => 'pg_replication_slot_advance', provolatile => 'v', + proparallel => 'u', prorettype => 'record', proargtypes => 'name pg_lsn', + proallargtypes => '{name,pg_lsn,name,pg_lsn}', proargmodes => '{i,i,o,o}', + proargnames => '{slot_name,upto_lsn,slot_name,end_lsn}', + prosrc => 'pg_replication_slot_advance' }, +{ oid => '3577', descr => 'emit a textual logical decoding message', + proname => 'pg_logical_emit_message', provolatile => 'v', proparallel => 'u', + prorettype => 'pg_lsn', proargtypes => 'bool text text', + prosrc => 'pg_logical_emit_message_text' }, +{ oid => '3578', descr => 'emit a binary logical decoding message', + proname => 'pg_logical_emit_message', provolatile => 'v', proparallel => 'u', + prorettype => 'pg_lsn', proargtypes => 'bool text bytea', + prosrc => 'pg_logical_emit_message_bytea' }, + +# event triggers +{ oid => '3566', descr => 'list objects dropped by the current command', + proname => 'pg_event_trigger_dropped_objects', procost => '10', + prorows => '100', proretset => 't', provolatile => 's', proparallel => 'r', + prorettype => 'record', proargtypes => '', + proallargtypes => '{oid,oid,int4,bool,bool,bool,text,text,text,text,_text,_text}', + proargmodes => '{o,o,o,o,o,o,o,o,o,o,o,o}', + proargnames => '{classid, objid, objsubid, original, normal, is_temporary, object_type, schema_name, object_name, object_identity, address_names, address_args}', + prosrc => 'pg_event_trigger_dropped_objects' }, +{ oid => '4566', descr => 'return Oid of the table getting rewritten', + proname => 'pg_event_trigger_table_rewrite_oid', provolatile => 's', + proparallel => 'r', prorettype => 'oid', proargtypes => '', + proallargtypes => '{oid}', proargmodes => '{o}', proargnames => '{oid}', + prosrc => 'pg_event_trigger_table_rewrite_oid' }, +{ oid => '4567', descr => 'return reason code for table getting rewritten', + proname => 'pg_event_trigger_table_rewrite_reason', provolatile => 's', + proparallel => 'r', prorettype => 'int4', proargtypes => '', + prosrc => 'pg_event_trigger_table_rewrite_reason' }, +{ oid => '4568', + descr => 'list DDL actions being executed by the current command', + proname => 'pg_event_trigger_ddl_commands', procost => '10', prorows => '100', + proretset => 't', provolatile => 's', proparallel => 'r', + prorettype => 'record', proargtypes => '', + proallargtypes => '{oid,oid,int4,text,text,text,text,bool,pg_ddl_command}', + proargmodes => '{o,o,o,o,o,o,o,o,o}', + proargnames => '{classid, objid, objsubid, command_tag, object_type, schema_name, object_identity, in_extension, command}', + prosrc => 'pg_event_trigger_ddl_commands' }, + +# generic transition functions for ordered-set aggregates +{ oid => '3970', descr => 'aggregate transition function', + proname => 'ordered_set_transition', proisstrict => 'f', + prorettype => 'internal', proargtypes => 'internal any', + prosrc => 'ordered_set_transition' }, +{ oid => '3971', descr => 'aggregate transition function', + proname => 'ordered_set_transition_multi', provariadic => 'any', + proisstrict => 'f', prorettype => 'internal', proargtypes => 'internal any', + proallargtypes => '{internal,any}', proargmodes => '{i,v}', + prosrc => 'ordered_set_transition_multi' }, + +# inverse distribution aggregates (and their support functions) +{ oid => '3972', descr => 'discrete percentile', + proname => 'percentile_disc', prokind => 'a', proisstrict => 'f', + prorettype => 'anyelement', proargtypes => 'float8 anyelement', + prosrc => 'aggregate_dummy' }, +{ oid => '3973', descr => 'aggregate final function', + proname => 'percentile_disc_final', proisstrict => 'f', + prorettype => 'anyelement', proargtypes => 'internal float8 anyelement', + prosrc => 'percentile_disc_final' }, +{ oid => '3974', descr => 'continuous distribution percentile', + proname => 'percentile_cont', prokind => 'a', proisstrict => 'f', + prorettype => 'float8', proargtypes => 'float8 float8', + prosrc => 'aggregate_dummy' }, +{ oid => '3975', descr => 'aggregate final function', + proname => 'percentile_cont_float8_final', proisstrict => 'f', + prorettype => 'float8', proargtypes => 'internal float8', + prosrc => 'percentile_cont_float8_final' }, +{ oid => '3976', descr => 'continuous distribution percentile', + proname => 'percentile_cont', prokind => 'a', proisstrict => 'f', + prorettype => 'interval', proargtypes => 'float8 interval', + prosrc => 'aggregate_dummy' }, +{ oid => '3977', descr => 'aggregate final function', + proname => 'percentile_cont_interval_final', proisstrict => 'f', + prorettype => 'interval', proargtypes => 'internal float8', + prosrc => 'percentile_cont_interval_final' }, +{ oid => '3978', descr => 'multiple discrete percentiles', + proname => 'percentile_disc', prokind => 'a', proisstrict => 'f', + prorettype => 'anyarray', proargtypes => '_float8 anyelement', + prosrc => 'aggregate_dummy' }, +{ oid => '3979', descr => 'aggregate final function', + proname => 'percentile_disc_multi_final', proisstrict => 'f', + prorettype => 'anyarray', proargtypes => 'internal _float8 anyelement', + prosrc => 'percentile_disc_multi_final' }, +{ oid => '3980', descr => 'multiple continuous percentiles', + proname => 'percentile_cont', prokind => 'a', proisstrict => 'f', + prorettype => '_float8', proargtypes => '_float8 float8', + prosrc => 'aggregate_dummy' }, +{ oid => '3981', descr => 'aggregate final function', + proname => 'percentile_cont_float8_multi_final', proisstrict => 'f', + prorettype => '_float8', proargtypes => 'internal _float8', + prosrc => 'percentile_cont_float8_multi_final' }, +{ oid => '3982', descr => 'multiple continuous percentiles', + proname => 'percentile_cont', prokind => 'a', proisstrict => 'f', + prorettype => '_interval', proargtypes => '_float8 interval', + prosrc => 'aggregate_dummy' }, +{ oid => '3983', descr => 'aggregate final function', + proname => 'percentile_cont_interval_multi_final', proisstrict => 'f', + prorettype => '_interval', proargtypes => 'internal _float8', + prosrc => 'percentile_cont_interval_multi_final' }, +{ oid => '3984', descr => 'most common value', + proname => 'mode', prokind => 'a', proisstrict => 'f', + prorettype => 'anyelement', proargtypes => 'anyelement', + prosrc => 'aggregate_dummy' }, +{ oid => '3985', descr => 'aggregate final function', + proname => 'mode_final', proisstrict => 'f', prorettype => 'anyelement', + proargtypes => 'internal anyelement', prosrc => 'mode_final' }, + +# hypothetical-set aggregates (and their support functions) +{ oid => '3986', descr => 'rank of hypothetical row', + proname => 'rank', provariadic => 'any', prokind => 'a', proisstrict => 'f', + prorettype => 'int8', proargtypes => 'any', proallargtypes => '{any}', + proargmodes => '{v}', prosrc => 'aggregate_dummy' }, +{ oid => '3987', descr => 'aggregate final function', + proname => 'rank_final', provariadic => 'any', proisstrict => 'f', + prorettype => 'int8', proargtypes => 'internal any', + proallargtypes => '{internal,any}', proargmodes => '{i,v}', + prosrc => 'hypothetical_rank_final' }, +{ oid => '3988', descr => 'fractional rank of hypothetical row', + proname => 'percent_rank', provariadic => 'any', prokind => 'a', + proisstrict => 'f', prorettype => 'float8', proargtypes => 'any', + proallargtypes => '{any}', proargmodes => '{v}', + prosrc => 'aggregate_dummy' }, +{ oid => '3989', descr => 'aggregate final function', + proname => 'percent_rank_final', provariadic => 'any', proisstrict => 'f', + prorettype => 'float8', proargtypes => 'internal any', + proallargtypes => '{internal,any}', proargmodes => '{i,v}', + prosrc => 'hypothetical_percent_rank_final' }, +{ oid => '3990', descr => 'cumulative distribution of hypothetical row', + proname => 'cume_dist', provariadic => 'any', prokind => 'a', + proisstrict => 'f', prorettype => 'float8', proargtypes => 'any', + proallargtypes => '{any}', proargmodes => '{v}', + prosrc => 'aggregate_dummy' }, +{ oid => '3991', descr => 'aggregate final function', + proname => 'cume_dist_final', provariadic => 'any', proisstrict => 'f', + prorettype => 'float8', proargtypes => 'internal any', + proallargtypes => '{internal,any}', proargmodes => '{i,v}', + prosrc => 'hypothetical_cume_dist_final' }, +{ oid => '3992', descr => 'rank of hypothetical row without gaps', + proname => 'dense_rank', provariadic => 'any', prokind => 'a', + proisstrict => 'f', prorettype => 'int8', proargtypes => 'any', + proallargtypes => '{any}', proargmodes => '{v}', + prosrc => 'aggregate_dummy' }, +{ oid => '3993', descr => 'aggregate final function', + proname => 'dense_rank_final', provariadic => 'any', proisstrict => 'f', + prorettype => 'int8', proargtypes => 'internal any', + proallargtypes => '{internal,any}', proargmodes => '{i,v}', + prosrc => 'hypothetical_dense_rank_final' }, + +# pg_upgrade support +{ oid => '3582', descr => 'for use by pg_upgrade', + proname => 'binary_upgrade_set_next_pg_type_oid', provolatile => 'v', + proparallel => 'r', prorettype => 'void', proargtypes => 'oid', + prosrc => 'binary_upgrade_set_next_pg_type_oid' }, +{ oid => '3584', descr => 'for use by pg_upgrade', + proname => 'binary_upgrade_set_next_array_pg_type_oid', provolatile => 'v', + proparallel => 'r', prorettype => 'void', proargtypes => 'oid', + prosrc => 'binary_upgrade_set_next_array_pg_type_oid' }, +{ oid => '3585', descr => 'for use by pg_upgrade', + proname => 'binary_upgrade_set_next_toast_pg_type_oid', provolatile => 'v', + proparallel => 'r', prorettype => 'void', proargtypes => 'oid', + prosrc => 'binary_upgrade_set_next_toast_pg_type_oid' }, +{ oid => '3586', descr => 'for use by pg_upgrade', + proname => 'binary_upgrade_set_next_heap_pg_class_oid', provolatile => 'v', + proparallel => 'r', prorettype => 'void', proargtypes => 'oid', + prosrc => 'binary_upgrade_set_next_heap_pg_class_oid' }, +{ oid => '3587', descr => 'for use by pg_upgrade', + proname => 'binary_upgrade_set_next_index_pg_class_oid', provolatile => 'v', + proparallel => 'r', prorettype => 'void', proargtypes => 'oid', + prosrc => 'binary_upgrade_set_next_index_pg_class_oid' }, +{ oid => '3588', descr => 'for use by pg_upgrade', + proname => 'binary_upgrade_set_next_toast_pg_class_oid', provolatile => 'v', + proparallel => 'r', prorettype => 'void', proargtypes => 'oid', + prosrc => 'binary_upgrade_set_next_toast_pg_class_oid' }, +{ oid => '3589', descr => 'for use by pg_upgrade', + proname => 'binary_upgrade_set_next_pg_enum_oid', provolatile => 'v', + proparallel => 'r', prorettype => 'void', proargtypes => 'oid', + prosrc => 'binary_upgrade_set_next_pg_enum_oid' }, +{ oid => '3590', descr => 'for use by pg_upgrade', + proname => 'binary_upgrade_set_next_pg_authid_oid', provolatile => 'v', + proparallel => 'r', prorettype => 'void', proargtypes => 'oid', + prosrc => 'binary_upgrade_set_next_pg_authid_oid' }, +{ oid => '3591', descr => 'for use by pg_upgrade', + proname => 'binary_upgrade_create_empty_extension', proisstrict => 'f', + provolatile => 'v', proparallel => 'u', prorettype => 'void', + proargtypes => 'text text bool text _oid _text _text', + prosrc => 'binary_upgrade_create_empty_extension' }, +{ oid => '4083', descr => 'for use by pg_upgrade', + proname => 'binary_upgrade_set_record_init_privs', provolatile => 'v', + proparallel => 'r', prorettype => 'void', proargtypes => 'bool', + prosrc => 'binary_upgrade_set_record_init_privs' }, + +# replication/origin.h +{ oid => '6003', descr => 'create a replication origin', + proname => 'pg_replication_origin_create', provolatile => 'v', + proparallel => 'u', prorettype => 'oid', proargtypes => 'text', + prosrc => 'pg_replication_origin_create' }, + +{ oid => '6004', descr => 'drop replication origin identified by its name', + proname => 'pg_replication_origin_drop', provolatile => 'v', + proparallel => 'u', prorettype => 'void', proargtypes => 'text', + prosrc => 'pg_replication_origin_drop' }, + +{ oid => '6005', + descr => 'translate the replication origin\'s name to its id', + proname => 'pg_replication_origin_oid', provolatile => 's', + prorettype => 'oid', proargtypes => 'text', + 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', + proparallel => 'u', prorettype => 'void', proargtypes => 'text', + prosrc => 'pg_replication_origin_session_setup' }, + +{ oid => '6007', descr => 'teardown configured replication progress tracking', + proname => 'pg_replication_origin_session_reset', provolatile => 'v', + proparallel => 'u', prorettype => 'void', 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', prorettype => 'bool', 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', + proparallel => 'u', prorettype => 'pg_lsn', proargtypes => 'bool', + 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', prorettype => 'void', proargtypes => 'pg_lsn timestamptz', + 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', prorettype => 'void', proargtypes => '', + prosrc => 'pg_replication_origin_xact_reset' }, + +{ oid => '6012', + descr => 'advance replication identifier to specific location', + proname => 'pg_replication_origin_advance', provolatile => 'v', + proparallel => 'u', prorettype => 'void', proargtypes => 'text pg_lsn', + prosrc => 'pg_replication_origin_advance' }, + +{ oid => '6013', + descr => 'get an individual replication origin\'s replication progress', + proname => 'pg_replication_origin_progress', provolatile => 'v', + proparallel => 'u', prorettype => 'pg_lsn', proargtypes => 'text bool', + 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', + prorettype => 'record', proargtypes => '', + proallargtypes => '{oid,text,pg_lsn,pg_lsn}', proargmodes => '{o,o,o,o}', + proargnames => '{local_id, external_id, remote_lsn, local_lsn}', + prosrc => 'pg_show_replication_origin_status' }, + +# publications +{ oid => '6119', descr => 'get OIDs of tables in a publication', + proname => 'pg_get_publication_tables', prorows => '1000', proretset => 't', + provolatile => 's', prorettype => 'oid', proargtypes => 'text', + proallargtypes => '{text,oid}', proargmodes => '{i,o}', + proargnames => '{pubname,relid}', prosrc => 'pg_get_publication_tables' }, +{ oid => '6121', + descr => 'returns whether a relation can be part of a publication', + proname => 'pg_relation_is_publishable', provolatile => 's', + prorettype => 'bool', proargtypes => 'regclass', + prosrc => 'pg_relation_is_publishable' }, + +# rls +{ oid => '3298', + descr => 'row security for current context active on table by table oid', + proname => 'row_security_active', provolatile => 's', prorettype => 'bool', + proargtypes => 'oid', prosrc => 'row_security_active' }, +{ oid => '3299', + descr => 'row security for current context active on table by table name', + proname => 'row_security_active', provolatile => 's', prorettype => 'bool', + proargtypes => 'text', prosrc => 'row_security_active_name' }, + +# pg_config +{ oid => '3400', descr => 'pg_config binary as a function', + proname => 'pg_config', prorows => '23', proretset => 't', proparallel => 'r', + prorettype => 'record', proargtypes => '', proallargtypes => '{text,text}', + proargmodes => '{o,o}', proargnames => '{name,setting}', + prosrc => 'pg_config' }, + +# pg_controldata related functions +{ oid => '3441', + descr => 'pg_controldata general state information as a function', + proname => 'pg_control_system', provolatile => 'v', prorettype => 'record', + proargtypes => '', proallargtypes => '{int4,int4,int8,timestamptz}', + 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', + prorettype => 'record', proargtypes => '', + proallargtypes => '{pg_lsn,pg_lsn,text,int4,int4,bool,text,oid,xid,xid,xid,oid,xid,xid,oid,xid,xid,timestamptz}', + 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', prorettype => 'record', + proargtypes => '', proallargtypes => '{pg_lsn,int4,pg_lsn,pg_lsn,bool}', + 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', prorettype => 'record', + proargtypes => '', + proallargtypes => '{int4,int4,int4,int4,int4,int4,int4,int4,int4,bool,bool,int4}', + 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' }, + +{ oid => '3996', descr => 'disable data checksums', + proname => 'pg_disable_data_checksums', provolatile => 'v', + prorettype => 'void', proargtypes => '', prosrc => 'disable_data_checksums' }, +{ oid => '3998', descr => 'enable data checksums', + proname => 'pg_enable_data_checksums', provolatile => 'v', + prorettype => 'void', proargtypes => 'int4 int4', + proargnames => '{cost_delay,cost_limit}', prosrc => 'enable_data_checksums' }, + +# collation management functions +{ oid => '3445', descr => 'import collations from operating system', + proname => 'pg_import_system_collations', procost => '100', + provolatile => 'v', proparallel => 'u', prorettype => 'int4', + proargtypes => 'regnamespace', 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', prorettype => 'text', proargtypes => 'oid', + prosrc => 'pg_collation_actual_version' }, + +# system management/monitoring related functions +{ oid => '3353', descr => 'list files in the log directory', + proname => 'pg_ls_logdir', procost => '10', prorows => '20', proretset => 't', + provolatile => 'v', prorettype => 'record', proargtypes => '', + proallargtypes => '{text,int8,timestamptz}', proargmodes => '{o,o,o}', + proargnames => '{name,size,modification}', prosrc => 'pg_ls_logdir' }, +{ oid => '3354', descr => 'list of files in the WAL directory', + proname => 'pg_ls_waldir', procost => '10', prorows => '20', proretset => 't', + provolatile => 'v', prorettype => 'record', proargtypes => '', + proallargtypes => '{text,int8,timestamptz}', proargmodes => '{o,o,o}', + proargnames => '{name,size,modification}', prosrc => 'pg_ls_waldir' }, + +# hash partitioning constraint function +{ oid => '5028', descr => 'hash partition CHECK constraint', + proname => 'satisfies_hash_partition', provariadic => 'any', + proisstrict => 'f', prorettype => 'bool', proargtypes => 'oid int4 int4 any', + proargmodes => '{i,i,i,v}', prosrc => 'satisfies_hash_partition' }, + +] diff --git a/src/include/catalog/pg_proc.h b/src/include/catalog/pg_proc.h index 42c2c429b4..0b5203a68a 100644 --- a/src/include/catalog/pg_proc.h +++ b/src/include/catalog/pg_proc.h @@ -2,7 +2,6 @@ * * pg_proc.h * definition of the system "procedure" relation (pg_proc) - * along with the relation's initial contents. * * Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California @@ -10,13 +9,8 @@ * src/include/catalog/pg_proc.h * * NOTES - * The script catalog/genbki.pl reads this file and generates .bki - * information from the DATA() statements. utils/Gen_fmgrtab.pl - * generates fmgroids.h and fmgrtab.c the same way. - * - * XXX do NOT break up DATA() statements into multiple lines! - * the scripts are not as smart as you might think... - * XXX (eg. #if 0 #endif won't do what you think) + * The Catalog.pm module reads this file and derives schema + * information. * *------------------------------------------------------------------------- */ @@ -24,53 +18,106 @@ #define PG_PROC_H #include "catalog/genbki.h" +#include "catalog/pg_proc_d.h" /* ---------------- * pg_proc definition. cpp turns this into * typedef struct FormData_pg_proc * ---------------- */ -#define ProcedureRelationId 1255 -#define ProcedureRelation_Rowtype_Id 81 - -CATALOG(pg_proc,1255) BKI_BOOTSTRAP BKI_ROWTYPE_OID(81) BKI_SCHEMA_MACRO +CATALOG(pg_proc,1255,ProcedureRelationId) BKI_BOOTSTRAP BKI_ROWTYPE_OID(81,ProcedureRelation_Rowtype_Id) BKI_SCHEMA_MACRO { - NameData proname; /* procedure name */ - Oid pronamespace; /* OID of namespace containing this proc */ - Oid proowner; /* procedure owner */ - Oid prolang; /* OID of pg_language entry */ - float4 procost; /* estimated execution cost */ - float4 prorows; /* estimated # of rows out (if proretset) */ - Oid provariadic; /* element type of variadic array, or 0 */ - regproc protransform; /* transforms calls to it during planning */ - char prokind; /* see PROKIND_ categories below */ - bool prosecdef; /* security definer */ - bool proleakproof; /* is it a leak-proof function? */ - bool proisstrict; /* strict with respect to NULLs? */ - bool proretset; /* returns a set? */ - char provolatile; /* see PROVOLATILE_ categories below */ - char proparallel; /* see PROPARALLEL_ categories below */ - int16 pronargs; /* number of arguments */ - int16 pronargdefaults; /* number of arguments with defaults */ - Oid prorettype; /* OID of result type */ + /* procedure name */ + NameData proname; + + /* OID of namespace containing this proc */ + Oid pronamespace BKI_DEFAULT(PGNSP); + + /* procedure owner */ + Oid proowner BKI_DEFAULT(PGUID); + + /* OID of pg_language entry */ + Oid prolang BKI_DEFAULT(12); + + /* estimated execution cost */ + float4 procost BKI_DEFAULT(1); + + /* estimated # of rows out (if proretset) */ + float4 prorows BKI_DEFAULT(0); + + /* element type of variadic array, or 0 */ + Oid provariadic BKI_DEFAULT(0) BKI_LOOKUP(pg_type); + + /* transforms calls to it during planning */ + regproc protransform BKI_DEFAULT(0) BKI_LOOKUP(pg_proc); + + /* see PROKIND_ categories below */ + char prokind BKI_DEFAULT(f); + + /* security definer */ + bool prosecdef BKI_DEFAULT(f); + + /* is it a leak-proof function? */ + bool proleakproof BKI_DEFAULT(f); + + /* strict with respect to NULLs? */ + bool proisstrict BKI_DEFAULT(t); + + /* returns a set? */ + bool proretset BKI_DEFAULT(f); + + /* see PROVOLATILE_ categories below */ + char provolatile BKI_DEFAULT(i); + + /* see PROPARALLEL_ categories below */ + char proparallel BKI_DEFAULT(s); + + /* number of arguments */ + /* Note: need not be given in pg_proc.dat; genbki.pl will compute it */ + int16 pronargs; + + /* number of arguments with defaults */ + int16 pronargdefaults BKI_DEFAULT(0); + + /* OID of result type */ + Oid prorettype BKI_LOOKUP(pg_type); /* * variable-length fields start here, but we allow direct access to * proargtypes */ - oidvector proargtypes; /* parameter types (excludes OUT params) */ + + /* parameter types (excludes OUT params) */ + oidvector proargtypes BKI_LOOKUP(pg_type); #ifdef CATALOG_VARLEN - Oid proallargtypes[1]; /* all param types (NULL if IN only) */ - char proargmodes[1]; /* parameter modes (NULL if IN only) */ - text proargnames[1]; /* parameter names (NULL if no names) */ - pg_node_tree proargdefaults; /* list of expression trees for argument - * defaults (NULL if none) */ - Oid protrftypes[1]; /* types for which to apply transforms */ - text prosrc BKI_FORCE_NOT_NULL; /* procedure source text */ - text probin; /* secondary procedure info (can be NULL) */ - text proconfig[1]; /* procedure-local GUC settings */ - aclitem proacl[1]; /* access permissions */ + + /* all param types (NULL if IN only) */ + Oid proallargtypes[1] BKI_DEFAULT(_null_) BKI_LOOKUP(pg_type); + + /* parameter modes (NULL if IN only) */ + char proargmodes[1] BKI_DEFAULT(_null_); + + /* parameter names (NULL if no names) */ + text proargnames[1] BKI_DEFAULT(_null_); + + /* list of expression trees for argument defaults (NULL if none) */ + pg_node_tree proargdefaults BKI_DEFAULT(_null_); + + /* types for which to apply transforms */ + Oid protrftypes[1] BKI_DEFAULT(_null_); + + /* procedure source text */ + text prosrc BKI_FORCE_NOT_NULL; + + /* secondary procedure info (can be NULL) */ + text probin BKI_DEFAULT(_null_); + + /* procedure-local GUC settings */ + text proconfig[1] BKI_DEFAULT(_null_); + + /* access permissions */ + aclitem proacl[1] BKI_DEFAULT(_null_); #endif } FormData_pg_proc; @@ -81,5541 +128,7 @@ CATALOG(pg_proc,1255) BKI_BOOTSTRAP BKI_ROWTYPE_OID(81) BKI_SCHEMA_MACRO */ typedef FormData_pg_proc *Form_pg_proc; -/* ---------------- - * compiler constants for pg_proc - * ---------------- - */ -#define Natts_pg_proc 28 -#define Anum_pg_proc_proname 1 -#define Anum_pg_proc_pronamespace 2 -#define Anum_pg_proc_proowner 3 -#define Anum_pg_proc_prolang 4 -#define Anum_pg_proc_procost 5 -#define Anum_pg_proc_prorows 6 -#define Anum_pg_proc_provariadic 7 -#define Anum_pg_proc_protransform 8 -#define Anum_pg_proc_prokind 9 -#define Anum_pg_proc_prosecdef 10 -#define Anum_pg_proc_proleakproof 11 -#define Anum_pg_proc_proisstrict 12 -#define Anum_pg_proc_proretset 13 -#define Anum_pg_proc_provolatile 14 -#define Anum_pg_proc_proparallel 15 -#define Anum_pg_proc_pronargs 16 -#define Anum_pg_proc_pronargdefaults 17 -#define Anum_pg_proc_prorettype 18 -#define Anum_pg_proc_proargtypes 19 -#define Anum_pg_proc_proallargtypes 20 -#define Anum_pg_proc_proargmodes 21 -#define Anum_pg_proc_proargnames 22 -#define Anum_pg_proc_proargdefaults 23 -#define Anum_pg_proc_protrftypes 24 -#define Anum_pg_proc_prosrc 25 -#define Anum_pg_proc_probin 26 -#define Anum_pg_proc_proconfig 27 -#define Anum_pg_proc_proacl 28 - -/* ---------------- - * initial contents of pg_proc - * ---------------- - */ - -/* - * 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 - * they are reasonably useful in their own right - * "aggregate final function" for aggfinalfn functions (likewise) - * "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 */ - -DATA(insert OID = 1242 ( boolin PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 16 "2275" _null_ _null_ _null_ _null_ _null_ boolin _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 1243 ( boolout PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2275 "16" _null_ _null_ _null_ _null_ _null_ boolout _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 1244 ( byteain PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 17 "2275" _null_ _null_ _null_ _null_ _null_ byteain _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 31 ( byteaout PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2275 "17" _null_ _null_ _null_ _null_ _null_ byteaout _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 1245 ( charin PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 18 "2275" _null_ _null_ _null_ _null_ _null_ charin _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 33 ( charout PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2275 "18" _null_ _null_ _null_ _null_ _null_ charout _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 34 ( namein PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 19 "2275" _null_ _null_ _null_ _null_ _null_ namein _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 35 ( nameout PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2275 "19" _null_ _null_ _null_ _null_ _null_ nameout _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 38 ( int2in PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 21 "2275" _null_ _null_ _null_ _null_ _null_ int2in _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 39 ( int2out PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2275 "21" _null_ _null_ _null_ _null_ _null_ int2out _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 40 ( int2vectorin PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 22 "2275" _null_ _null_ _null_ _null_ _null_ int2vectorin _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 41 ( int2vectorout PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2275 "22" _null_ _null_ _null_ _null_ _null_ int2vectorout _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 42 ( int4in PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "2275" _null_ _null_ _null_ _null_ _null_ int4in _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 43 ( int4out PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2275 "23" _null_ _null_ _null_ _null_ _null_ int4out _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 44 ( regprocin PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 24 "2275" _null_ _null_ _null_ _null_ _null_ regprocin _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 45 ( regprocout PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 2275 "24" _null_ _null_ _null_ _null_ _null_ regprocout _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 3494 ( to_regproc PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 24 "25" _null_ _null_ _null_ _null_ _null_ to_regproc _null_ _null_ _null_ )); -DESCR("convert proname to regproc"); -DATA(insert OID = 3479 ( to_regprocedure PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 2202 "25" _null_ _null_ _null_ _null_ _null_ to_regprocedure _null_ _null_ _null_ )); -DESCR("convert proname to regprocedure"); -DATA(insert OID = 46 ( textin PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 25 "2275" _null_ _null_ _null_ _null_ _null_ textin _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 47 ( textout PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2275 "25" _null_ _null_ _null_ _null_ _null_ textout _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 48 ( tidin PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 27 "2275" _null_ _null_ _null_ _null_ _null_ tidin _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 49 ( tidout PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2275 "27" _null_ _null_ _null_ _null_ _null_ tidout _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 50 ( xidin PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 28 "2275" _null_ _null_ _null_ _null_ _null_ xidin _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 51 ( xidout PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2275 "28" _null_ _null_ _null_ _null_ _null_ xidout _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 52 ( cidin PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 29 "2275" _null_ _null_ _null_ _null_ _null_ cidin _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 53 ( cidout PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2275 "29" _null_ _null_ _null_ _null_ _null_ cidout _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 54 ( oidvectorin PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 30 "2275" _null_ _null_ _null_ _null_ _null_ oidvectorin _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 55 ( oidvectorout PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2275 "30" _null_ _null_ _null_ _null_ _null_ oidvectorout _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 56 ( boollt PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "16 16" _null_ _null_ _null_ _null_ _null_ boollt _null_ _null_ _null_ )); -DATA(insert OID = 57 ( boolgt PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "16 16" _null_ _null_ _null_ _null_ _null_ boolgt _null_ _null_ _null_ )); -DATA(insert OID = 60 ( booleq PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "16 16" _null_ _null_ _null_ _null_ _null_ booleq _null_ _null_ _null_ )); -DATA(insert OID = 61 ( chareq PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "18 18" _null_ _null_ _null_ _null_ _null_ chareq _null_ _null_ _null_ )); -DATA(insert OID = 62 ( nameeq PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "19 19" _null_ _null_ _null_ _null_ _null_ nameeq _null_ _null_ _null_ )); -DATA(insert OID = 63 ( int2eq PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "21 21" _null_ _null_ _null_ _null_ _null_ int2eq _null_ _null_ _null_ )); -DATA(insert OID = 64 ( int2lt PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "21 21" _null_ _null_ _null_ _null_ _null_ int2lt _null_ _null_ _null_ )); -DATA(insert OID = 65 ( int4eq PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "23 23" _null_ _null_ _null_ _null_ _null_ int4eq _null_ _null_ _null_ )); -DATA(insert OID = 66 ( int4lt PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "23 23" _null_ _null_ _null_ _null_ _null_ int4lt _null_ _null_ _null_ )); -DATA(insert OID = 67 ( texteq PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "25 25" _null_ _null_ _null_ _null_ _null_ texteq _null_ _null_ _null_ )); -DATA(insert OID = 3696 ( starts_with PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "25 25" _null_ _null_ _null_ _null_ _null_ text_starts_with _null_ _null_ _null_ )); -DATA(insert OID = 68 ( xideq PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "28 28" _null_ _null_ _null_ _null_ _null_ xideq _null_ _null_ _null_ )); -DATA(insert OID = 3308 ( xidneq PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "28 28" _null_ _null_ _null_ _null_ _null_ xidneq _null_ _null_ _null_ )); -DATA(insert OID = 69 ( cideq PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "29 29" _null_ _null_ _null_ _null_ _null_ cideq _null_ _null_ _null_ )); -DATA(insert OID = 70 ( charne PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "18 18" _null_ _null_ _null_ _null_ _null_ charne _null_ _null_ _null_ )); -DATA(insert OID = 1246 ( charlt PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "18 18" _null_ _null_ _null_ _null_ _null_ charlt _null_ _null_ _null_ )); -DATA(insert OID = 72 ( charle PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "18 18" _null_ _null_ _null_ _null_ _null_ charle _null_ _null_ _null_ )); -DATA(insert OID = 73 ( chargt PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "18 18" _null_ _null_ _null_ _null_ _null_ chargt _null_ _null_ _null_ )); -DATA(insert OID = 74 ( charge PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "18 18" _null_ _null_ _null_ _null_ _null_ charge _null_ _null_ _null_ )); -DATA(insert OID = 77 ( int4 PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "18" _null_ _null_ _null_ _null_ _null_ chartoi4 _null_ _null_ _null_ )); -DESCR("convert char to int4"); -DATA(insert OID = 78 ( char PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 18 "23" _null_ _null_ _null_ _null_ _null_ i4tochar _null_ _null_ _null_ )); -DESCR("convert int4 to char"); - -DATA(insert OID = 79 ( nameregexeq PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "19 25" _null_ _null_ _null_ _null_ _null_ nameregexeq _null_ _null_ _null_ )); -DATA(insert OID = 1252 ( nameregexne PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "19 25" _null_ _null_ _null_ _null_ _null_ nameregexne _null_ _null_ _null_ )); -DATA(insert OID = 1254 ( textregexeq PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "25 25" _null_ _null_ _null_ _null_ _null_ textregexeq _null_ _null_ _null_ )); -DATA(insert OID = 1256 ( textregexne PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "25 25" _null_ _null_ _null_ _null_ _null_ textregexne _null_ _null_ _null_ )); -DATA(insert OID = 1257 ( textlen PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "25" _null_ _null_ _null_ _null_ _null_ textlen _null_ _null_ _null_ )); -DESCR("length"); -DATA(insert OID = 1258 ( textcat PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 25 "25 25" _null_ _null_ _null_ _null_ _null_ textcat _null_ _null_ _null_ )); - -DATA(insert OID = 84 ( boolne PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "16 16" _null_ _null_ _null_ _null_ _null_ boolne _null_ _null_ _null_ )); -DATA(insert OID = 89 ( version PGNSP PGUID 12 1 0 0 0 f f f t f s s 0 0 25 "" _null_ _null_ _null_ _null_ _null_ pgsql_version _null_ _null_ _null_ )); -DESCR("PostgreSQL version string"); - -DATA(insert OID = 86 ( pg_ddl_command_in PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 32 "2275" _null_ _null_ _null_ _null_ _null_ pg_ddl_command_in _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 87 ( pg_ddl_command_out PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2275 "32" _null_ _null_ _null_ _null_ _null_ pg_ddl_command_out _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 88 ( pg_ddl_command_recv PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 32 "2281" _null_ _null_ _null_ _null_ _null_ pg_ddl_command_recv _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 90 ( pg_ddl_command_send PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 17 "32" _null_ _null_ _null_ _null_ _null_ pg_ddl_command_send _null_ _null_ _null_ )); -DESCR("I/O"); - -/* OIDS 100 - 199 */ - -DATA(insert OID = 101 ( eqsel PGNSP PGUID 12 1 0 0 0 f f f t f s s 4 0 701 "2281 26 2281 23" _null_ _null_ _null_ _null_ _null_ eqsel _null_ _null_ _null_ )); -DESCR("restriction selectivity of = and related operators"); -DATA(insert OID = 102 ( neqsel PGNSP PGUID 12 1 0 0 0 f f f t f s s 4 0 701 "2281 26 2281 23" _null_ _null_ _null_ _null_ _null_ neqsel _null_ _null_ _null_ )); -DESCR("restriction selectivity of <> and related operators"); -DATA(insert OID = 103 ( scalarltsel PGNSP PGUID 12 1 0 0 0 f f f t f s s 4 0 701 "2281 26 2281 23" _null_ _null_ _null_ _null_ _null_ scalarltsel _null_ _null_ _null_ )); -DESCR("restriction selectivity of < and related operators on scalar datatypes"); -DATA(insert OID = 104 ( scalargtsel PGNSP PGUID 12 1 0 0 0 f f f t f s s 4 0 701 "2281 26 2281 23" _null_ _null_ _null_ _null_ _null_ scalargtsel _null_ _null_ _null_ )); -DESCR("restriction selectivity of > and related operators on scalar datatypes"); -DATA(insert OID = 105 ( eqjoinsel PGNSP PGUID 12 1 0 0 0 f f f t f s s 5 0 701 "2281 26 2281 21 2281" _null_ _null_ _null_ _null_ _null_ eqjoinsel _null_ _null_ _null_ )); -DESCR("join selectivity of = and related operators"); -DATA(insert OID = 106 ( neqjoinsel PGNSP PGUID 12 1 0 0 0 f f f t f s s 5 0 701 "2281 26 2281 21 2281" _null_ _null_ _null_ _null_ _null_ neqjoinsel _null_ _null_ _null_ )); -DESCR("join selectivity of <> and related operators"); -DATA(insert OID = 107 ( scalarltjoinsel PGNSP PGUID 12 1 0 0 0 f f f t f s s 5 0 701 "2281 26 2281 21 2281" _null_ _null_ _null_ _null_ _null_ scalarltjoinsel _null_ _null_ _null_ )); -DESCR("join selectivity of < and related operators on scalar datatypes"); -DATA(insert OID = 108 ( scalargtjoinsel PGNSP PGUID 12 1 0 0 0 f f f t f s s 5 0 701 "2281 26 2281 21 2281" _null_ _null_ _null_ _null_ _null_ scalargtjoinsel _null_ _null_ _null_ )); -DESCR("join selectivity of > and related operators on scalar datatypes"); - -DATA(insert OID = 336 ( scalarlesel PGNSP PGUID 12 1 0 0 0 f f f t f s s 4 0 701 "2281 26 2281 23" _null_ _null_ _null_ _null_ _null_ scalarlesel _null_ _null_ _null_ )); -DESCR("restriction selectivity of <= and related operators on scalar datatypes"); -DATA(insert OID = 337 ( scalargesel PGNSP PGUID 12 1 0 0 0 f f f t f s s 4 0 701 "2281 26 2281 23" _null_ _null_ _null_ _null_ _null_ scalargesel _null_ _null_ _null_ )); -DESCR("restriction selectivity of >= and related operators on scalar datatypes"); -DATA(insert OID = 386 ( scalarlejoinsel PGNSP PGUID 12 1 0 0 0 f f f t f s s 5 0 701 "2281 26 2281 21 2281" _null_ _null_ _null_ _null_ _null_ scalarlejoinsel _null_ _null_ _null_ )); -DESCR("join selectivity of <= and related operators on scalar datatypes"); -DATA(insert OID = 398 ( scalargejoinsel PGNSP PGUID 12 1 0 0 0 f f f t f s s 5 0 701 "2281 26 2281 21 2281" _null_ _null_ _null_ _null_ _null_ scalargejoinsel _null_ _null_ _null_ )); -DESCR("join selectivity of >= and related operators on scalar datatypes"); - -DATA(insert OID = 109 ( unknownin PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 705 "2275" _null_ _null_ _null_ _null_ _null_ unknownin _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 110 ( unknownout PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2275 "705" _null_ _null_ _null_ _null_ _null_ unknownout _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 111 ( numeric_fac PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 1700 "20" _null_ _null_ _null_ _null_ _null_ numeric_fac _null_ _null_ _null_ )); - -DATA(insert OID = 115 ( box_above_eq PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "603 603" _null_ _null_ _null_ _null_ _null_ box_above_eq _null_ _null_ _null_ )); -DATA(insert OID = 116 ( box_below_eq PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "603 603" _null_ _null_ _null_ _null_ _null_ box_below_eq _null_ _null_ _null_ )); - -DATA(insert OID = 117 ( point_in PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 600 "2275" _null_ _null_ _null_ _null_ _null_ point_in _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 118 ( point_out PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2275 "600" _null_ _null_ _null_ _null_ _null_ point_out _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 119 ( lseg_in PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 601 "2275" _null_ _null_ _null_ _null_ _null_ lseg_in _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 120 ( lseg_out PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2275 "601" _null_ _null_ _null_ _null_ _null_ lseg_out _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 121 ( path_in PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 602 "2275" _null_ _null_ _null_ _null_ _null_ path_in _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 122 ( path_out PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2275 "602" _null_ _null_ _null_ _null_ _null_ path_out _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 123 ( box_in PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 603 "2275" _null_ _null_ _null_ _null_ _null_ box_in _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 124 ( box_out PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2275 "603" _null_ _null_ _null_ _null_ _null_ box_out _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 125 ( box_overlap PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "603 603" _null_ _null_ _null_ _null_ _null_ box_overlap _null_ _null_ _null_ )); -DATA(insert OID = 126 ( box_ge PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "603 603" _null_ _null_ _null_ _null_ _null_ box_ge _null_ _null_ _null_ )); -DATA(insert OID = 127 ( box_gt PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "603 603" _null_ _null_ _null_ _null_ _null_ box_gt _null_ _null_ _null_ )); -DATA(insert OID = 128 ( box_eq PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "603 603" _null_ _null_ _null_ _null_ _null_ box_eq _null_ _null_ _null_ )); -DATA(insert OID = 129 ( box_lt PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "603 603" _null_ _null_ _null_ _null_ _null_ box_lt _null_ _null_ _null_ )); -DATA(insert OID = 130 ( box_le PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "603 603" _null_ _null_ _null_ _null_ _null_ box_le _null_ _null_ _null_ )); -DATA(insert OID = 131 ( point_above PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "600 600" _null_ _null_ _null_ _null_ _null_ point_above _null_ _null_ _null_ )); -DATA(insert OID = 132 ( point_left PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "600 600" _null_ _null_ _null_ _null_ _null_ point_left _null_ _null_ _null_ )); -DATA(insert OID = 133 ( point_right PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "600 600" _null_ _null_ _null_ _null_ _null_ point_right _null_ _null_ _null_ )); -DATA(insert OID = 134 ( point_below PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "600 600" _null_ _null_ _null_ _null_ _null_ point_below _null_ _null_ _null_ )); -DATA(insert OID = 135 ( point_eq PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "600 600" _null_ _null_ _null_ _null_ _null_ point_eq _null_ _null_ _null_ )); -DATA(insert OID = 136 ( on_pb PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "600 603" _null_ _null_ _null_ _null_ _null_ on_pb _null_ _null_ _null_ )); -DATA(insert OID = 137 ( on_ppath PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "600 602" _null_ _null_ _null_ _null_ _null_ on_ppath _null_ _null_ _null_ )); -DATA(insert OID = 138 ( box_center PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 600 "603" _null_ _null_ _null_ _null_ _null_ box_center _null_ _null_ _null_ )); -DATA(insert OID = 139 ( areasel PGNSP PGUID 12 1 0 0 0 f f f t f s s 4 0 701 "2281 26 2281 23" _null_ _null_ _null_ _null_ _null_ areasel _null_ _null_ _null_ )); -DESCR("restriction selectivity for area-comparison operators"); -DATA(insert OID = 140 ( areajoinsel PGNSP PGUID 12 1 0 0 0 f f f t f s s 5 0 701 "2281 26 2281 21 2281" _null_ _null_ _null_ _null_ _null_ areajoinsel _null_ _null_ _null_ )); -DESCR("join selectivity for area-comparison operators"); -DATA(insert OID = 141 ( int4mul PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "23 23" _null_ _null_ _null_ _null_ _null_ int4mul _null_ _null_ _null_ )); -DATA(insert OID = 144 ( int4ne PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "23 23" _null_ _null_ _null_ _null_ _null_ int4ne _null_ _null_ _null_ )); -DATA(insert OID = 145 ( int2ne PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "21 21" _null_ _null_ _null_ _null_ _null_ int2ne _null_ _null_ _null_ )); -DATA(insert OID = 146 ( int2gt PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "21 21" _null_ _null_ _null_ _null_ _null_ int2gt _null_ _null_ _null_ )); -DATA(insert OID = 147 ( int4gt PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "23 23" _null_ _null_ _null_ _null_ _null_ int4gt _null_ _null_ _null_ )); -DATA(insert OID = 148 ( int2le PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "21 21" _null_ _null_ _null_ _null_ _null_ int2le _null_ _null_ _null_ )); -DATA(insert OID = 149 ( int4le PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "23 23" _null_ _null_ _null_ _null_ _null_ int4le _null_ _null_ _null_ )); -DATA(insert OID = 150 ( int4ge PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "23 23" _null_ _null_ _null_ _null_ _null_ int4ge _null_ _null_ _null_ )); -DATA(insert OID = 151 ( int2ge PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "21 21" _null_ _null_ _null_ _null_ _null_ int2ge _null_ _null_ _null_ )); -DATA(insert OID = 152 ( int2mul PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 21 "21 21" _null_ _null_ _null_ _null_ _null_ int2mul _null_ _null_ _null_ )); -DATA(insert OID = 153 ( int2div PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 21 "21 21" _null_ _null_ _null_ _null_ _null_ int2div _null_ _null_ _null_ )); -DATA(insert OID = 154 ( int4div PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "23 23" _null_ _null_ _null_ _null_ _null_ int4div _null_ _null_ _null_ )); -DATA(insert OID = 155 ( int2mod PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 21 "21 21" _null_ _null_ _null_ _null_ _null_ int2mod _null_ _null_ _null_ )); -DATA(insert OID = 156 ( int4mod PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "23 23" _null_ _null_ _null_ _null_ _null_ int4mod _null_ _null_ _null_ )); -DATA(insert OID = 157 ( textne PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "25 25" _null_ _null_ _null_ _null_ _null_ textne _null_ _null_ _null_ )); -DATA(insert OID = 158 ( int24eq PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "21 23" _null_ _null_ _null_ _null_ _null_ int24eq _null_ _null_ _null_ )); -DATA(insert OID = 159 ( int42eq PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "23 21" _null_ _null_ _null_ _null_ _null_ int42eq _null_ _null_ _null_ )); -DATA(insert OID = 160 ( int24lt PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "21 23" _null_ _null_ _null_ _null_ _null_ int24lt _null_ _null_ _null_ )); -DATA(insert OID = 161 ( int42lt PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "23 21" _null_ _null_ _null_ _null_ _null_ int42lt _null_ _null_ _null_ )); -DATA(insert OID = 162 ( int24gt PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "21 23" _null_ _null_ _null_ _null_ _null_ int24gt _null_ _null_ _null_ )); -DATA(insert OID = 163 ( int42gt PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "23 21" _null_ _null_ _null_ _null_ _null_ int42gt _null_ _null_ _null_ )); -DATA(insert OID = 164 ( int24ne PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "21 23" _null_ _null_ _null_ _null_ _null_ int24ne _null_ _null_ _null_ )); -DATA(insert OID = 165 ( int42ne PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "23 21" _null_ _null_ _null_ _null_ _null_ int42ne _null_ _null_ _null_ )); -DATA(insert OID = 166 ( int24le PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "21 23" _null_ _null_ _null_ _null_ _null_ int24le _null_ _null_ _null_ )); -DATA(insert OID = 167 ( int42le PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "23 21" _null_ _null_ _null_ _null_ _null_ int42le _null_ _null_ _null_ )); -DATA(insert OID = 168 ( int24ge PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "21 23" _null_ _null_ _null_ _null_ _null_ int24ge _null_ _null_ _null_ )); -DATA(insert OID = 169 ( int42ge PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "23 21" _null_ _null_ _null_ _null_ _null_ int42ge _null_ _null_ _null_ )); -DATA(insert OID = 170 ( int24mul PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "21 23" _null_ _null_ _null_ _null_ _null_ int24mul _null_ _null_ _null_ )); -DATA(insert OID = 171 ( int42mul PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "23 21" _null_ _null_ _null_ _null_ _null_ int42mul _null_ _null_ _null_ )); -DATA(insert OID = 172 ( int24div PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "21 23" _null_ _null_ _null_ _null_ _null_ int24div _null_ _null_ _null_ )); -DATA(insert OID = 173 ( int42div PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "23 21" _null_ _null_ _null_ _null_ _null_ int42div _null_ _null_ _null_ )); -DATA(insert OID = 176 ( int2pl PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 21 "21 21" _null_ _null_ _null_ _null_ _null_ int2pl _null_ _null_ _null_ )); -DATA(insert OID = 177 ( int4pl PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "23 23" _null_ _null_ _null_ _null_ _null_ int4pl _null_ _null_ _null_ )); -DATA(insert OID = 178 ( int24pl PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "21 23" _null_ _null_ _null_ _null_ _null_ int24pl _null_ _null_ _null_ )); -DATA(insert OID = 179 ( int42pl PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "23 21" _null_ _null_ _null_ _null_ _null_ int42pl _null_ _null_ _null_ )); -DATA(insert OID = 180 ( int2mi PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 21 "21 21" _null_ _null_ _null_ _null_ _null_ int2mi _null_ _null_ _null_ )); -DATA(insert OID = 181 ( int4mi PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "23 23" _null_ _null_ _null_ _null_ _null_ int4mi _null_ _null_ _null_ )); -DATA(insert OID = 182 ( int24mi PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "21 23" _null_ _null_ _null_ _null_ _null_ int24mi _null_ _null_ _null_ )); -DATA(insert OID = 183 ( int42mi PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "23 21" _null_ _null_ _null_ _null_ _null_ int42mi _null_ _null_ _null_ )); -DATA(insert OID = 184 ( oideq PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "26 26" _null_ _null_ _null_ _null_ _null_ oideq _null_ _null_ _null_ )); -DATA(insert OID = 185 ( oidne PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "26 26" _null_ _null_ _null_ _null_ _null_ oidne _null_ _null_ _null_ )); -DATA(insert OID = 186 ( box_same PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "603 603" _null_ _null_ _null_ _null_ _null_ box_same _null_ _null_ _null_ )); -DATA(insert OID = 187 ( box_contain PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "603 603" _null_ _null_ _null_ _null_ _null_ box_contain _null_ _null_ _null_ )); -DATA(insert OID = 188 ( box_left PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "603 603" _null_ _null_ _null_ _null_ _null_ box_left _null_ _null_ _null_ )); -DATA(insert OID = 189 ( box_overleft PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "603 603" _null_ _null_ _null_ _null_ _null_ box_overleft _null_ _null_ _null_ )); -DATA(insert OID = 190 ( box_overright PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "603 603" _null_ _null_ _null_ _null_ _null_ box_overright _null_ _null_ _null_ )); -DATA(insert OID = 191 ( box_right PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "603 603" _null_ _null_ _null_ _null_ _null_ box_right _null_ _null_ _null_ )); -DATA(insert OID = 192 ( box_contained PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "603 603" _null_ _null_ _null_ _null_ _null_ box_contained _null_ _null_ _null_ )); -DATA(insert OID = 193 ( box_contain_pt PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "603 600" _null_ _null_ _null_ _null_ _null_ box_contain_pt _null_ _null_ _null_ )); - -DATA(insert OID = 195 ( pg_node_tree_in PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 194 "2275" _null_ _null_ _null_ _null_ _null_ pg_node_tree_in _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 196 ( pg_node_tree_out PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2275 "194" _null_ _null_ _null_ _null_ _null_ pg_node_tree_out _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 197 ( pg_node_tree_recv PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 194 "2281" _null_ _null_ _null_ _null_ _null_ pg_node_tree_recv _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 198 ( pg_node_tree_send PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 17 "194" _null_ _null_ _null_ _null_ _null_ pg_node_tree_send _null_ _null_ _null_ )); -DESCR("I/O"); - -/* OIDS 200 - 299 */ - -DATA(insert OID = 200 ( float4in PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 700 "2275" _null_ _null_ _null_ _null_ _null_ float4in _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 201 ( float4out PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2275 "700" _null_ _null_ _null_ _null_ _null_ float4out _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 202 ( float4mul PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 700 "700 700" _null_ _null_ _null_ _null_ _null_ float4mul _null_ _null_ _null_ )); -DATA(insert OID = 203 ( float4div PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 700 "700 700" _null_ _null_ _null_ _null_ _null_ float4div _null_ _null_ _null_ )); -DATA(insert OID = 204 ( float4pl PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 700 "700 700" _null_ _null_ _null_ _null_ _null_ float4pl _null_ _null_ _null_ )); -DATA(insert OID = 205 ( float4mi PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 700 "700 700" _null_ _null_ _null_ _null_ _null_ float4mi _null_ _null_ _null_ )); -DATA(insert OID = 206 ( float4um PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 700 "700" _null_ _null_ _null_ _null_ _null_ float4um _null_ _null_ _null_ )); -DATA(insert OID = 207 ( float4abs PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 700 "700" _null_ _null_ _null_ _null_ _null_ float4abs _null_ _null_ _null_ )); -DATA(insert OID = 208 ( float4_accum PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1022 "1022 700" _null_ _null_ _null_ _null_ _null_ float4_accum _null_ _null_ _null_ )); -DESCR("aggregate transition function"); -DATA(insert OID = 209 ( float4larger PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 700 "700 700" _null_ _null_ _null_ _null_ _null_ float4larger _null_ _null_ _null_ )); -DESCR("larger of two"); -DATA(insert OID = 211 ( float4smaller PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 700 "700 700" _null_ _null_ _null_ _null_ _null_ float4smaller _null_ _null_ _null_ )); -DESCR("smaller of two"); - -DATA(insert OID = 212 ( int4um PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "23" _null_ _null_ _null_ _null_ _null_ int4um _null_ _null_ _null_ )); -DATA(insert OID = 213 ( int2um PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 21 "21" _null_ _null_ _null_ _null_ _null_ int2um _null_ _null_ _null_ )); - -DATA(insert OID = 214 ( float8in PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 701 "2275" _null_ _null_ _null_ _null_ _null_ float8in _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 215 ( float8out PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2275 "701" _null_ _null_ _null_ _null_ _null_ float8out _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 216 ( float8mul PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 701 "701 701" _null_ _null_ _null_ _null_ _null_ float8mul _null_ _null_ _null_ )); -DATA(insert OID = 217 ( float8div PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 701 "701 701" _null_ _null_ _null_ _null_ _null_ float8div _null_ _null_ _null_ )); -DATA(insert OID = 218 ( float8pl PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 701 "701 701" _null_ _null_ _null_ _null_ _null_ float8pl _null_ _null_ _null_ )); -DATA(insert OID = 219 ( float8mi PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 701 "701 701" _null_ _null_ _null_ _null_ _null_ float8mi _null_ _null_ _null_ )); -DATA(insert OID = 220 ( float8um PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 701 "701" _null_ _null_ _null_ _null_ _null_ float8um _null_ _null_ _null_ )); -DATA(insert OID = 221 ( float8abs PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 701 "701" _null_ _null_ _null_ _null_ _null_ float8abs _null_ _null_ _null_ )); -DATA(insert OID = 222 ( float8_accum PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1022 "1022 701" _null_ _null_ _null_ _null_ _null_ float8_accum _null_ _null_ _null_ )); -DESCR("aggregate transition function"); -DATA(insert OID = 276 ( float8_combine PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1022 "1022 1022" _null_ _null_ _null_ _null_ _null_ float8_combine _null_ _null_ _null_ )); -DESCR("aggregate combine function"); -DATA(insert OID = 223 ( float8larger PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 701 "701 701" _null_ _null_ _null_ _null_ _null_ float8larger _null_ _null_ _null_ )); -DESCR("larger of two"); -DATA(insert OID = 224 ( float8smaller PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 701 "701 701" _null_ _null_ _null_ _null_ _null_ float8smaller _null_ _null_ _null_ )); -DESCR("smaller of two"); - -DATA(insert OID = 225 ( lseg_center PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 600 "601" _null_ _null_ _null_ _null_ _null_ lseg_center _null_ _null_ _null_ )); -DATA(insert OID = 226 ( path_center PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 600 "602" _null_ _null_ _null_ _null_ _null_ path_center _null_ _null_ _null_ )); -DATA(insert OID = 227 ( poly_center PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 600 "604" _null_ _null_ _null_ _null_ _null_ poly_center _null_ _null_ _null_ )); - -DATA(insert OID = 228 ( dround PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 701 "701" _null_ _null_ _null_ _null_ _null_ dround _null_ _null_ _null_ )); -DESCR("round to nearest integer"); -DATA(insert OID = 229 ( dtrunc PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 701 "701" _null_ _null_ _null_ _null_ _null_ dtrunc _null_ _null_ _null_ )); -DESCR("truncate to integer"); -DATA(insert OID = 2308 ( ceil PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 701 "701" _null_ _null_ _null_ _null_ _null_ dceil _null_ _null_ _null_ )); -DESCR("nearest integer >= value"); -DATA(insert OID = 2320 ( ceiling PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 701 "701" _null_ _null_ _null_ _null_ _null_ dceil _null_ _null_ _null_ )); -DESCR("nearest integer >= value"); -DATA(insert OID = 2309 ( floor PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 701 "701" _null_ _null_ _null_ _null_ _null_ dfloor _null_ _null_ _null_ )); -DESCR("nearest integer <= value"); -DATA(insert OID = 2310 ( sign PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 701 "701" _null_ _null_ _null_ _null_ _null_ dsign _null_ _null_ _null_ )); -DESCR("sign of value"); -DATA(insert OID = 230 ( dsqrt PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 701 "701" _null_ _null_ _null_ _null_ _null_ dsqrt _null_ _null_ _null_ )); -DATA(insert OID = 231 ( dcbrt PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 701 "701" _null_ _null_ _null_ _null_ _null_ dcbrt _null_ _null_ _null_ )); -DATA(insert OID = 232 ( dpow PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 701 "701 701" _null_ _null_ _null_ _null_ _null_ dpow _null_ _null_ _null_ )); -DATA(insert OID = 233 ( dexp PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 701 "701" _null_ _null_ _null_ _null_ _null_ dexp _null_ _null_ _null_ )); -DESCR("natural exponential (e^x)"); -DATA(insert OID = 234 ( dlog1 PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 701 "701" _null_ _null_ _null_ _null_ _null_ dlog1 _null_ _null_ _null_ )); -DESCR("natural logarithm"); -DATA(insert OID = 235 ( float8 PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 701 "21" _null_ _null_ _null_ _null_ _null_ i2tod _null_ _null_ _null_ )); -DESCR("convert int2 to float8"); -DATA(insert OID = 236 ( float4 PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 700 "21" _null_ _null_ _null_ _null_ _null_ i2tof _null_ _null_ _null_ )); -DESCR("convert int2 to float4"); -DATA(insert OID = 237 ( int2 PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 21 "701" _null_ _null_ _null_ _null_ _null_ dtoi2 _null_ _null_ _null_ )); -DESCR("convert float8 to int2"); -DATA(insert OID = 238 ( int2 PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 21 "700" _null_ _null_ _null_ _null_ _null_ ftoi2 _null_ _null_ _null_ )); -DESCR("convert float4 to int2"); -DATA(insert OID = 239 ( line_distance PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 701 "628 628" _null_ _null_ _null_ _null_ _null_ line_distance _null_ _null_ _null_ )); - -DATA(insert OID = 240 ( abstimein PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 702 "2275" _null_ _null_ _null_ _null_ _null_ abstimein _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 241 ( abstimeout PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 2275 "702" _null_ _null_ _null_ _null_ _null_ abstimeout _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 242 ( reltimein PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 703 "2275" _null_ _null_ _null_ _null_ _null_ reltimein _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 243 ( reltimeout PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 2275 "703" _null_ _null_ _null_ _null_ _null_ reltimeout _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 244 ( timepl PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 702 "702 703" _null_ _null_ _null_ _null_ _null_ timepl _null_ _null_ _null_ )); -DATA(insert OID = 245 ( timemi PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 702 "702 703" _null_ _null_ _null_ _null_ _null_ timemi _null_ _null_ _null_ )); -DATA(insert OID = 246 ( tintervalin PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 704 "2275" _null_ _null_ _null_ _null_ _null_ tintervalin _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 247 ( tintervalout PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 2275 "704" _null_ _null_ _null_ _null_ _null_ tintervalout _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 248 ( intinterval PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "702 704" _null_ _null_ _null_ _null_ _null_ intinterval _null_ _null_ _null_ )); -DATA(insert OID = 249 ( tintervalrel PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 703 "704" _null_ _null_ _null_ _null_ _null_ tintervalrel _null_ _null_ _null_ )); -DESCR("tinterval to reltime"); -DATA(insert OID = 250 ( timenow PGNSP PGUID 12 1 0 0 0 f f f t f s s 0 0 702 "" _null_ _null_ _null_ _null_ _null_ timenow _null_ _null_ _null_ )); -DESCR("current date and time (abstime)"); -DATA(insert OID = 251 ( abstimeeq PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "702 702" _null_ _null_ _null_ _null_ _null_ abstimeeq _null_ _null_ _null_ )); -DATA(insert OID = 252 ( abstimene PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "702 702" _null_ _null_ _null_ _null_ _null_ abstimene _null_ _null_ _null_ )); -DATA(insert OID = 253 ( abstimelt PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "702 702" _null_ _null_ _null_ _null_ _null_ abstimelt _null_ _null_ _null_ )); -DATA(insert OID = 254 ( abstimegt PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "702 702" _null_ _null_ _null_ _null_ _null_ abstimegt _null_ _null_ _null_ )); -DATA(insert OID = 255 ( abstimele PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "702 702" _null_ _null_ _null_ _null_ _null_ abstimele _null_ _null_ _null_ )); -DATA(insert OID = 256 ( abstimege PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "702 702" _null_ _null_ _null_ _null_ _null_ abstimege _null_ _null_ _null_ )); -DATA(insert OID = 257 ( reltimeeq PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "703 703" _null_ _null_ _null_ _null_ _null_ reltimeeq _null_ _null_ _null_ )); -DATA(insert OID = 258 ( reltimene PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "703 703" _null_ _null_ _null_ _null_ _null_ reltimene _null_ _null_ _null_ )); -DATA(insert OID = 259 ( reltimelt PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "703 703" _null_ _null_ _null_ _null_ _null_ reltimelt _null_ _null_ _null_ )); -DATA(insert OID = 260 ( reltimegt PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "703 703" _null_ _null_ _null_ _null_ _null_ reltimegt _null_ _null_ _null_ )); -DATA(insert OID = 261 ( reltimele PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "703 703" _null_ _null_ _null_ _null_ _null_ reltimele _null_ _null_ _null_ )); -DATA(insert OID = 262 ( reltimege PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "703 703" _null_ _null_ _null_ _null_ _null_ reltimege _null_ _null_ _null_ )); -DATA(insert OID = 263 ( tintervalsame PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "704 704" _null_ _null_ _null_ _null_ _null_ tintervalsame _null_ _null_ _null_ )); -DATA(insert OID = 264 ( tintervalct PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "704 704" _null_ _null_ _null_ _null_ _null_ tintervalct _null_ _null_ _null_ )); -DATA(insert OID = 265 ( tintervalov PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "704 704" _null_ _null_ _null_ _null_ _null_ tintervalov _null_ _null_ _null_ )); -DATA(insert OID = 266 ( tintervalleneq PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "704 703" _null_ _null_ _null_ _null_ _null_ tintervalleneq _null_ _null_ _null_ )); -DATA(insert OID = 267 ( tintervallenne PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "704 703" _null_ _null_ _null_ _null_ _null_ tintervallenne _null_ _null_ _null_ )); -DATA(insert OID = 268 ( tintervallenlt PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "704 703" _null_ _null_ _null_ _null_ _null_ tintervallenlt _null_ _null_ _null_ )); -DATA(insert OID = 269 ( tintervallengt PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "704 703" _null_ _null_ _null_ _null_ _null_ tintervallengt _null_ _null_ _null_ )); -DATA(insert OID = 270 ( tintervallenle PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "704 703" _null_ _null_ _null_ _null_ _null_ tintervallenle _null_ _null_ _null_ )); -DATA(insert OID = 271 ( tintervallenge PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "704 703" _null_ _null_ _null_ _null_ _null_ tintervallenge _null_ _null_ _null_ )); -DATA(insert OID = 272 ( tintervalstart PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 702 "704" _null_ _null_ _null_ _null_ _null_ tintervalstart _null_ _null_ _null_ )); -DATA(insert OID = 273 ( tintervalend PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 702 "704" _null_ _null_ _null_ _null_ _null_ tintervalend _null_ _null_ _null_ )); -DESCR("end of interval"); -DATA(insert OID = 274 ( timeofday PGNSP PGUID 12 1 0 0 0 f f f t f v s 0 0 25 "" _null_ _null_ _null_ _null_ _null_ timeofday _null_ _null_ _null_ )); -DESCR("current date and time - increments during transactions"); -DATA(insert OID = 275 ( isfinite PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 16 "702" _null_ _null_ _null_ _null_ _null_ abstime_finite _null_ _null_ _null_ )); -DESCR("finite abstime?"); - -DATA(insert OID = 277 ( inter_sl PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "601 628" _null_ _null_ _null_ _null_ _null_ inter_sl _null_ _null_ _null_ )); -DATA(insert OID = 278 ( inter_lb PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "628 603" _null_ _null_ _null_ _null_ _null_ inter_lb _null_ _null_ _null_ )); - -DATA(insert OID = 279 ( float48mul PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 701 "700 701" _null_ _null_ _null_ _null_ _null_ float48mul _null_ _null_ _null_ )); -DATA(insert OID = 280 ( float48div PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 701 "700 701" _null_ _null_ _null_ _null_ _null_ float48div _null_ _null_ _null_ )); -DATA(insert OID = 281 ( float48pl PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 701 "700 701" _null_ _null_ _null_ _null_ _null_ float48pl _null_ _null_ _null_ )); -DATA(insert OID = 282 ( float48mi PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 701 "700 701" _null_ _null_ _null_ _null_ _null_ float48mi _null_ _null_ _null_ )); -DATA(insert OID = 283 ( float84mul PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 701 "701 700" _null_ _null_ _null_ _null_ _null_ float84mul _null_ _null_ _null_ )); -DATA(insert OID = 284 ( float84div PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 701 "701 700" _null_ _null_ _null_ _null_ _null_ float84div _null_ _null_ _null_ )); -DATA(insert OID = 285 ( float84pl PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 701 "701 700" _null_ _null_ _null_ _null_ _null_ float84pl _null_ _null_ _null_ )); -DATA(insert OID = 286 ( float84mi PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 701 "701 700" _null_ _null_ _null_ _null_ _null_ float84mi _null_ _null_ _null_ )); - -DATA(insert OID = 287 ( float4eq PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "700 700" _null_ _null_ _null_ _null_ _null_ float4eq _null_ _null_ _null_ )); -DATA(insert OID = 288 ( float4ne PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "700 700" _null_ _null_ _null_ _null_ _null_ float4ne _null_ _null_ _null_ )); -DATA(insert OID = 289 ( float4lt PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "700 700" _null_ _null_ _null_ _null_ _null_ float4lt _null_ _null_ _null_ )); -DATA(insert OID = 290 ( float4le PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "700 700" _null_ _null_ _null_ _null_ _null_ float4le _null_ _null_ _null_ )); -DATA(insert OID = 291 ( float4gt PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "700 700" _null_ _null_ _null_ _null_ _null_ float4gt _null_ _null_ _null_ )); -DATA(insert OID = 292 ( float4ge PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "700 700" _null_ _null_ _null_ _null_ _null_ float4ge _null_ _null_ _null_ )); - -DATA(insert OID = 293 ( float8eq PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "701 701" _null_ _null_ _null_ _null_ _null_ float8eq _null_ _null_ _null_ )); -DATA(insert OID = 294 ( float8ne PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "701 701" _null_ _null_ _null_ _null_ _null_ float8ne _null_ _null_ _null_ )); -DATA(insert OID = 295 ( float8lt PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "701 701" _null_ _null_ _null_ _null_ _null_ float8lt _null_ _null_ _null_ )); -DATA(insert OID = 296 ( float8le PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "701 701" _null_ _null_ _null_ _null_ _null_ float8le _null_ _null_ _null_ )); -DATA(insert OID = 297 ( float8gt PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "701 701" _null_ _null_ _null_ _null_ _null_ float8gt _null_ _null_ _null_ )); -DATA(insert OID = 298 ( float8ge PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "701 701" _null_ _null_ _null_ _null_ _null_ float8ge _null_ _null_ _null_ )); - -DATA(insert OID = 299 ( float48eq PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "700 701" _null_ _null_ _null_ _null_ _null_ float48eq _null_ _null_ _null_ )); - -/* OIDS 300 - 399 */ - -DATA(insert OID = 300 ( float48ne PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "700 701" _null_ _null_ _null_ _null_ _null_ float48ne _null_ _null_ _null_ )); -DATA(insert OID = 301 ( float48lt PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "700 701" _null_ _null_ _null_ _null_ _null_ float48lt _null_ _null_ _null_ )); -DATA(insert OID = 302 ( float48le PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "700 701" _null_ _null_ _null_ _null_ _null_ float48le _null_ _null_ _null_ )); -DATA(insert OID = 303 ( float48gt PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "700 701" _null_ _null_ _null_ _null_ _null_ float48gt _null_ _null_ _null_ )); -DATA(insert OID = 304 ( float48ge PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "700 701" _null_ _null_ _null_ _null_ _null_ float48ge _null_ _null_ _null_ )); -DATA(insert OID = 305 ( float84eq PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "701 700" _null_ _null_ _null_ _null_ _null_ float84eq _null_ _null_ _null_ )); -DATA(insert OID = 306 ( float84ne PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "701 700" _null_ _null_ _null_ _null_ _null_ float84ne _null_ _null_ _null_ )); -DATA(insert OID = 307 ( float84lt PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "701 700" _null_ _null_ _null_ _null_ _null_ float84lt _null_ _null_ _null_ )); -DATA(insert OID = 308 ( float84le PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "701 700" _null_ _null_ _null_ _null_ _null_ float84le _null_ _null_ _null_ )); -DATA(insert OID = 309 ( float84gt PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "701 700" _null_ _null_ _null_ _null_ _null_ float84gt _null_ _null_ _null_ )); -DATA(insert OID = 310 ( float84ge PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "701 700" _null_ _null_ _null_ _null_ _null_ float84ge _null_ _null_ _null_ )); -DATA(insert OID = 320 ( width_bucket PGNSP PGUID 12 1 0 0 0 f f f t f i s 4 0 23 "701 701 701 23" _null_ _null_ _null_ _null_ _null_ width_bucket_float8 _null_ _null_ _null_ )); -DESCR("bucket number of operand in equal-width histogram"); - -DATA(insert OID = 311 ( float8 PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 701 "700" _null_ _null_ _null_ _null_ _null_ ftod _null_ _null_ _null_ )); -DESCR("convert float4 to float8"); -DATA(insert OID = 312 ( float4 PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 700 "701" _null_ _null_ _null_ _null_ _null_ dtof _null_ _null_ _null_ )); -DESCR("convert float8 to float4"); -DATA(insert OID = 313 ( int4 PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "21" _null_ _null_ _null_ _null_ _null_ i2toi4 _null_ _null_ _null_ )); -DESCR("convert int2 to int4"); -DATA(insert OID = 314 ( int2 PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 21 "23" _null_ _null_ _null_ _null_ _null_ i4toi2 _null_ _null_ _null_ )); -DESCR("convert int4 to int2"); -DATA(insert OID = 316 ( float8 PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 701 "23" _null_ _null_ _null_ _null_ _null_ i4tod _null_ _null_ _null_ )); -DESCR("convert int4 to float8"); -DATA(insert OID = 317 ( int4 PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "701" _null_ _null_ _null_ _null_ _null_ dtoi4 _null_ _null_ _null_ )); -DESCR("convert float8 to int4"); -DATA(insert OID = 318 ( float4 PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 700 "23" _null_ _null_ _null_ _null_ _null_ i4tof _null_ _null_ _null_ )); -DESCR("convert int4 to float4"); -DATA(insert OID = 319 ( int4 PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "700" _null_ _null_ _null_ _null_ _null_ ftoi4 _null_ _null_ _null_ )); -DESCR("convert float4 to int4"); - -/* Index access method handlers */ -DATA(insert OID = 330 ( bthandler PGNSP PGUID 12 1 0 0 0 f f f t f v s 1 0 325 "2281" _null_ _null_ _null_ _null_ _null_ bthandler _null_ _null_ _null_ )); -DESCR("btree index access method handler"); -DATA(insert OID = 331 ( hashhandler PGNSP PGUID 12 1 0 0 0 f f f t f v s 1 0 325 "2281" _null_ _null_ _null_ _null_ _null_ hashhandler _null_ _null_ _null_ )); -DESCR("hash index access method handler"); -DATA(insert OID = 332 ( gisthandler PGNSP PGUID 12 1 0 0 0 f f f t f v s 1 0 325 "2281" _null_ _null_ _null_ _null_ _null_ gisthandler _null_ _null_ _null_ )); -DESCR("gist index access method handler"); -DATA(insert OID = 333 ( ginhandler PGNSP PGUID 12 1 0 0 0 f f f t f v s 1 0 325 "2281" _null_ _null_ _null_ _null_ _null_ ginhandler _null_ _null_ _null_ )); -DESCR("gin index access method handler"); -DATA(insert OID = 334 ( spghandler PGNSP PGUID 12 1 0 0 0 f f f t f v s 1 0 325 "2281" _null_ _null_ _null_ _null_ _null_ spghandler _null_ _null_ _null_ )); -DESCR("spgist index access method handler"); -DATA(insert OID = 335 ( brinhandler PGNSP PGUID 12 1 0 0 0 f f f t f v s 1 0 325 "2281" _null_ _null_ _null_ _null_ _null_ brinhandler _null_ _null_ _null_ )); -DESCR("brin index access method handler"); -DATA(insert OID = 3952 ( brin_summarize_new_values PGNSP PGUID 12 1 0 0 0 f f f t f v u 1 0 23 "2205" _null_ _null_ _null_ _null_ _null_ brin_summarize_new_values _null_ _null_ _null_ )); -DESCR("brin: standalone scan new table pages"); -DATA(insert OID = 3999 ( brin_summarize_range PGNSP PGUID 12 1 0 0 0 f f f t f v u 2 0 23 "2205 20" _null_ _null_ _null_ _null_ _null_ brin_summarize_range _null_ _null_ _null_ )); -DESCR("brin: standalone scan new table pages"); -DATA(insert OID = 4014 ( brin_desummarize_range PGNSP PGUID 12 1 0 0 0 f f f t f v u 2 0 2278 "2205 20" _null_ _null_ _null_ _null_ _null_ brin_desummarize_range _null_ _null_ _null_ )); -DESCR("brin: desummarize page range"); - -DATA(insert OID = 338 ( amvalidate PGNSP PGUID 12 1 0 0 0 f f f t f v s 1 0 16 "26" _null_ _null_ _null_ _null_ _null_ amvalidate _null_ _null_ _null_ )); -DESCR("validate an operator class"); - -DATA(insert OID = 636 ( pg_indexam_has_property PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 16 "26 25" _null_ _null_ _null_ _null_ _null_ pg_indexam_has_property _null_ _null_ _null_ )); -DESCR("test property of an index access method"); -DATA(insert OID = 637 ( pg_index_has_property PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 16 "2205 25" _null_ _null_ _null_ _null_ _null_ pg_index_has_property _null_ _null_ _null_ )); -DESCR("test property of an index"); -DATA(insert OID = 638 ( pg_index_column_has_property PGNSP PGUID 12 1 0 0 0 f f f t f s s 3 0 16 "2205 23 25" _null_ _null_ _null_ _null_ _null_ pg_index_column_has_property _null_ _null_ _null_ )); -DESCR("test property of an index column"); - -DATA(insert OID = 339 ( poly_same PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "604 604" _null_ _null_ _null_ _null_ _null_ poly_same _null_ _null_ _null_ )); -DATA(insert OID = 340 ( poly_contain PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "604 604" _null_ _null_ _null_ _null_ _null_ poly_contain _null_ _null_ _null_ )); -DATA(insert OID = 341 ( poly_left PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "604 604" _null_ _null_ _null_ _null_ _null_ poly_left _null_ _null_ _null_ )); -DATA(insert OID = 342 ( poly_overleft PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "604 604" _null_ _null_ _null_ _null_ _null_ poly_overleft _null_ _null_ _null_ )); -DATA(insert OID = 343 ( poly_overright PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "604 604" _null_ _null_ _null_ _null_ _null_ poly_overright _null_ _null_ _null_ )); -DATA(insert OID = 344 ( poly_right PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "604 604" _null_ _null_ _null_ _null_ _null_ poly_right _null_ _null_ _null_ )); -DATA(insert OID = 345 ( poly_contained PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "604 604" _null_ _null_ _null_ _null_ _null_ poly_contained _null_ _null_ _null_ )); -DATA(insert OID = 346 ( poly_overlap PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "604 604" _null_ _null_ _null_ _null_ _null_ poly_overlap _null_ _null_ _null_ )); -DATA(insert OID = 347 ( poly_in PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 604 "2275" _null_ _null_ _null_ _null_ _null_ poly_in _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 348 ( poly_out PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2275 "604" _null_ _null_ _null_ _null_ _null_ poly_out _null_ _null_ _null_ )); -DESCR("I/O"); - -DATA(insert OID = 350 ( btint2cmp PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "21 21" _null_ _null_ _null_ _null_ _null_ btint2cmp _null_ _null_ _null_ )); -DESCR("less-equal-greater"); -DATA(insert OID = 3129 ( btint2sortsupport PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2278 "2281" _null_ _null_ _null_ _null_ _null_ btint2sortsupport _null_ _null_ _null_ )); -DESCR("sort support"); -DATA(insert OID = 351 ( btint4cmp PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "23 23" _null_ _null_ _null_ _null_ _null_ btint4cmp _null_ _null_ _null_ )); -DESCR("less-equal-greater"); -DATA(insert OID = 3130 ( btint4sortsupport PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2278 "2281" _null_ _null_ _null_ _null_ _null_ btint4sortsupport _null_ _null_ _null_ )); -DESCR("sort support"); -DATA(insert OID = 842 ( btint8cmp PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "20 20" _null_ _null_ _null_ _null_ _null_ btint8cmp _null_ _null_ _null_ )); -DESCR("less-equal-greater"); -DATA(insert OID = 3131 ( btint8sortsupport PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2278 "2281" _null_ _null_ _null_ _null_ _null_ btint8sortsupport _null_ _null_ _null_ )); -DESCR("sort support"); -DATA(insert OID = 354 ( btfloat4cmp PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "700 700" _null_ _null_ _null_ _null_ _null_ btfloat4cmp _null_ _null_ _null_ )); -DESCR("less-equal-greater"); -DATA(insert OID = 3132 ( btfloat4sortsupport PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2278 "2281" _null_ _null_ _null_ _null_ _null_ btfloat4sortsupport _null_ _null_ _null_ )); -DESCR("sort support"); -DATA(insert OID = 355 ( btfloat8cmp PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "701 701" _null_ _null_ _null_ _null_ _null_ btfloat8cmp _null_ _null_ _null_ )); -DESCR("less-equal-greater"); -DATA(insert OID = 3133 ( btfloat8sortsupport PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2278 "2281" _null_ _null_ _null_ _null_ _null_ btfloat8sortsupport _null_ _null_ _null_ )); -DESCR("sort support"); -DATA(insert OID = 356 ( btoidcmp PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "26 26" _null_ _null_ _null_ _null_ _null_ btoidcmp _null_ _null_ _null_ )); -DESCR("less-equal-greater"); -DATA(insert OID = 3134 ( btoidsortsupport PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2278 "2281" _null_ _null_ _null_ _null_ _null_ btoidsortsupport _null_ _null_ _null_ )); -DESCR("sort support"); -DATA(insert OID = 404 ( btoidvectorcmp PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "30 30" _null_ _null_ _null_ _null_ _null_ btoidvectorcmp _null_ _null_ _null_ )); -DESCR("less-equal-greater"); -DATA(insert OID = 357 ( btabstimecmp PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "702 702" _null_ _null_ _null_ _null_ _null_ btabstimecmp _null_ _null_ _null_ )); -DESCR("less-equal-greater"); -DATA(insert OID = 358 ( btcharcmp PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "18 18" _null_ _null_ _null_ _null_ _null_ btcharcmp _null_ _null_ _null_ )); -DESCR("less-equal-greater"); -DATA(insert OID = 359 ( btnamecmp PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "19 19" _null_ _null_ _null_ _null_ _null_ btnamecmp _null_ _null_ _null_ )); -DESCR("less-equal-greater"); -DATA(insert OID = 3135 ( btnamesortsupport PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2278 "2281" _null_ _null_ _null_ _null_ _null_ btnamesortsupport _null_ _null_ _null_ )); -DESCR("sort support"); -DATA(insert OID = 360 ( bttextcmp PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "25 25" _null_ _null_ _null_ _null_ _null_ bttextcmp _null_ _null_ _null_ )); -DESCR("less-equal-greater"); -DATA(insert OID = 3255 ( bttextsortsupport PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2278 "2281" _null_ _null_ _null_ _null_ _null_ bttextsortsupport _null_ _null_ _null_ )); -DESCR("sort support"); -DATA(insert OID = 377 ( cash_cmp PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "790 790" _null_ _null_ _null_ _null_ _null_ cash_cmp _null_ _null_ _null_ )); -DESCR("less-equal-greater"); -DATA(insert OID = 380 ( btreltimecmp PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "703 703" _null_ _null_ _null_ _null_ _null_ btreltimecmp _null_ _null_ _null_ )); -DESCR("less-equal-greater"); -DATA(insert OID = 381 ( bttintervalcmp PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "704 704" _null_ _null_ _null_ _null_ _null_ bttintervalcmp _null_ _null_ _null_ )); -DESCR("less-equal-greater"); -DATA(insert OID = 382 ( btarraycmp PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "2277 2277" _null_ _null_ _null_ _null_ _null_ btarraycmp _null_ _null_ _null_ )); -DESCR("less-equal-greater"); -DATA(insert OID = 4126 ( in_range PGNSP PGUID 12 1 0 0 0 f f f t f i s 5 0 16 "20 20 20 16 16" _null_ _null_ _null_ _null_ _null_ in_range_int8_int8 _null_ _null_ _null_ )); -DESCR("window RANGE support"); -DATA(insert OID = 4127 ( in_range PGNSP PGUID 12 1 0 0 0 f f f t f i s 5 0 16 "23 23 20 16 16" _null_ _null_ _null_ _null_ _null_ in_range_int4_int8 _null_ _null_ _null_ )); -DESCR("window RANGE support"); -DATA(insert OID = 4128 ( in_range PGNSP PGUID 12 1 0 0 0 f f f t f i s 5 0 16 "23 23 23 16 16" _null_ _null_ _null_ _null_ _null_ in_range_int4_int4 _null_ _null_ _null_ )); -DESCR("window RANGE support"); -DATA(insert OID = 4129 ( in_range PGNSP PGUID 12 1 0 0 0 f f f t f i s 5 0 16 "23 23 21 16 16" _null_ _null_ _null_ _null_ _null_ in_range_int4_int2 _null_ _null_ _null_ )); -DESCR("window RANGE support"); -DATA(insert OID = 4130 ( in_range PGNSP PGUID 12 1 0 0 0 f f f t f i s 5 0 16 "21 21 20 16 16" _null_ _null_ _null_ _null_ _null_ in_range_int2_int8 _null_ _null_ _null_ )); -DESCR("window RANGE support"); -DATA(insert OID = 4131 ( in_range PGNSP PGUID 12 1 0 0 0 f f f t f i s 5 0 16 "21 21 23 16 16" _null_ _null_ _null_ _null_ _null_ in_range_int2_int4 _null_ _null_ _null_ )); -DESCR("window RANGE support"); -DATA(insert OID = 4132 ( in_range PGNSP PGUID 12 1 0 0 0 f f f t f i s 5 0 16 "21 21 21 16 16" _null_ _null_ _null_ _null_ _null_ in_range_int2_int2 _null_ _null_ _null_ )); -DESCR("window RANGE support"); -DATA(insert OID = 4139 ( in_range PGNSP PGUID 12 1 0 0 0 f f f t f i s 5 0 16 "701 701 701 16 16" _null_ _null_ _null_ _null_ _null_ in_range_float8_float8 _null_ _null_ _null_ )); -DESCR("window RANGE support"); -DATA(insert OID = 4140 ( in_range PGNSP PGUID 12 1 0 0 0 f f f t f i s 5 0 16 "700 700 701 16 16" _null_ _null_ _null_ _null_ _null_ in_range_float4_float8 _null_ _null_ _null_ )); -DESCR("window RANGE support"); -DATA(insert OID = 4141 ( in_range PGNSP PGUID 12 1 0 0 0 f f f t f i s 5 0 16 "1700 1700 1700 16 16" _null_ _null_ _null_ _null_ _null_ in_range_numeric_numeric _null_ _null_ _null_ )); -DESCR("window RANGE support"); - -DATA(insert OID = 361 ( lseg_distance PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 701 "601 601" _null_ _null_ _null_ _null_ _null_ lseg_distance _null_ _null_ _null_ )); -DATA(insert OID = 362 ( lseg_interpt PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 600 "601 601" _null_ _null_ _null_ _null_ _null_ lseg_interpt _null_ _null_ _null_ )); -DATA(insert OID = 363 ( dist_ps PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 701 "600 601" _null_ _null_ _null_ _null_ _null_ dist_ps _null_ _null_ _null_ )); -DATA(insert OID = 364 ( dist_pb PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 701 "600 603" _null_ _null_ _null_ _null_ _null_ dist_pb _null_ _null_ _null_ )); -DATA(insert OID = 365 ( dist_sb PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 701 "601 603" _null_ _null_ _null_ _null_ _null_ dist_sb _null_ _null_ _null_ )); -DATA(insert OID = 366 ( close_ps PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 600 "600 601" _null_ _null_ _null_ _null_ _null_ close_ps _null_ _null_ _null_ )); -DATA(insert OID = 367 ( close_pb PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 600 "600 603" _null_ _null_ _null_ _null_ _null_ close_pb _null_ _null_ _null_ )); -DATA(insert OID = 368 ( close_sb PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 600 "601 603" _null_ _null_ _null_ _null_ _null_ close_sb _null_ _null_ _null_ )); -DATA(insert OID = 369 ( on_ps PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "600 601" _null_ _null_ _null_ _null_ _null_ on_ps _null_ _null_ _null_ )); -DATA(insert OID = 370 ( path_distance PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 701 "602 602" _null_ _null_ _null_ _null_ _null_ path_distance _null_ _null_ _null_ )); -DATA(insert OID = 371 ( dist_ppath PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 701 "600 602" _null_ _null_ _null_ _null_ _null_ dist_ppath _null_ _null_ _null_ )); -DATA(insert OID = 372 ( on_sb PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "601 603" _null_ _null_ _null_ _null_ _null_ on_sb _null_ _null_ _null_ )); -DATA(insert OID = 373 ( inter_sb PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "601 603" _null_ _null_ _null_ _null_ _null_ inter_sb _null_ _null_ _null_ )); - -/* OIDS 400 - 499 */ - -DATA(insert OID = 401 ( text PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 25 "1042" _null_ _null_ _null_ _null_ _null_ rtrim1 _null_ _null_ _null_ )); -DESCR("convert char(n) to text"); -DATA(insert OID = 406 ( text PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 25 "19" _null_ _null_ _null_ _null_ _null_ name_text _null_ _null_ _null_ )); -DESCR("convert name to text"); -DATA(insert OID = 407 ( name PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 19 "25" _null_ _null_ _null_ _null_ _null_ text_name _null_ _null_ _null_ )); -DESCR("convert text to name"); -DATA(insert OID = 408 ( bpchar PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 1042 "19" _null_ _null_ _null_ _null_ _null_ name_bpchar _null_ _null_ _null_ )); -DESCR("convert name to char(n)"); -DATA(insert OID = 409 ( name PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 19 "1042" _null_ _null_ _null_ _null_ _null_ bpchar_name _null_ _null_ _null_ )); -DESCR("convert char(n) to name"); - -DATA(insert OID = 449 ( hashint2 PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "21" _null_ _null_ _null_ _null_ _null_ hashint2 _null_ _null_ _null_ )); -DESCR("hash"); -DATA(insert OID = 441 ( hashint2extended PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 20 "21 20" _null_ _null_ _null_ _null_ _null_ hashint2extended _null_ _null_ _null_ )); -DESCR("hash"); -DATA(insert OID = 450 ( hashint4 PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "23" _null_ _null_ _null_ _null_ _null_ hashint4 _null_ _null_ _null_ )); -DESCR("hash"); -DATA(insert OID = 425 ( hashint4extended PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 20 "23 20" _null_ _null_ _null_ _null_ _null_ hashint4extended _null_ _null_ _null_ )); -DESCR("hash"); -DATA(insert OID = 949 ( hashint8 PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "20" _null_ _null_ _null_ _null_ _null_ hashint8 _null_ _null_ _null_ )); -DESCR("hash"); -DATA(insert OID = 442 ( hashint8extended PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 20 "20 20" _null_ _null_ _null_ _null_ _null_ hashint8extended _null_ _null_ _null_ )); -DESCR("hash"); -DATA(insert OID = 451 ( hashfloat4 PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "700" _null_ _null_ _null_ _null_ _null_ hashfloat4 _null_ _null_ _null_ )); -DESCR("hash"); -DATA(insert OID = 443 ( hashfloat4extended PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 20 "700 20" _null_ _null_ _null_ _null_ _null_ hashfloat4extended _null_ _null_ _null_ )); -DESCR("hash"); -DATA(insert OID = 452 ( hashfloat8 PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "701" _null_ _null_ _null_ _null_ _null_ hashfloat8 _null_ _null_ _null_ )); -DESCR("hash"); -DATA(insert OID = 444 ( hashfloat8extended PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 20 "701 20" _null_ _null_ _null_ _null_ _null_ hashfloat8extended _null_ _null_ _null_ )); -DESCR("hash"); -DATA(insert OID = 453 ( hashoid PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "26" _null_ _null_ _null_ _null_ _null_ hashoid _null_ _null_ _null_ )); -DESCR("hash"); -DATA(insert OID = 445 ( hashoidextended PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 20 "26 20" _null_ _null_ _null_ _null_ _null_ hashoidextended _null_ _null_ _null_ )); -DESCR("hash"); -DATA(insert OID = 454 ( hashchar PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "18" _null_ _null_ _null_ _null_ _null_ hashchar _null_ _null_ _null_ )); -DESCR("hash"); -DATA(insert OID = 446 ( hashcharextended PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 20 "18 20" _null_ _null_ _null_ _null_ _null_ hashcharextended _null_ _null_ _null_ )); -DESCR("hash"); -DATA(insert OID = 455 ( hashname PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "19" _null_ _null_ _null_ _null_ _null_ hashname _null_ _null_ _null_ )); -DESCR("hash"); -DATA(insert OID = 447 ( hashnameextended PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 20 "19 20" _null_ _null_ _null_ _null_ _null_ hashnameextended _null_ _null_ _null_ )); -DESCR("hash"); -DATA(insert OID = 400 ( hashtext PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "25" _null_ _null_ _null_ _null_ _null_ hashtext _null_ _null_ _null_ )); -DESCR("hash"); -DATA(insert OID = 448 ( hashtextextended PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 20 "25 20" _null_ _null_ _null_ _null_ _null_ hashtextextended _null_ _null_ _null_ )); -DESCR("hash"); -DATA(insert OID = 456 ( hashvarlena PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "2281" _null_ _null_ _null_ _null_ _null_ hashvarlena _null_ _null_ _null_ )); -DESCR("hash"); -DATA(insert OID = 772 ( hashvarlenaextended PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 20 "2281 20" _null_ _null_ _null_ _null_ _null_ hashvarlenaextended _null_ _null_ _null_ )); -DESCR("hash"); -DATA(insert OID = 457 ( hashoidvector PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "30" _null_ _null_ _null_ _null_ _null_ hashoidvector _null_ _null_ _null_ )); -DESCR("hash"); -DATA(insert OID = 776 ( hashoidvectorextended PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 20 "30 20" _null_ _null_ _null_ _null_ _null_ hashoidvectorextended _null_ _null_ _null_ )); -DESCR("hash"); -DATA(insert OID = 329 ( hash_aclitem PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "1033" _null_ _null_ _null_ _null_ _null_ hash_aclitem _null_ _null_ _null_ )); -DESCR("hash"); -DATA(insert OID = 777 ( hash_aclitem_extended PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 20 "1033 20" _null_ _null_ _null_ _null_ _null_ hash_aclitem_extended _null_ _null_ _null_ )); -DESCR("hash"); -DATA(insert OID = 399 ( hashmacaddr PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "829" _null_ _null_ _null_ _null_ _null_ hashmacaddr _null_ _null_ _null_ )); -DESCR("hash"); -DATA(insert OID = 778 ( hashmacaddrextended PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 20 "829 20" _null_ _null_ _null_ _null_ _null_ hashmacaddrextended _null_ _null_ _null_ )); -DESCR("hash"); -DATA(insert OID = 422 ( hashinet PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "869" _null_ _null_ _null_ _null_ _null_ hashinet _null_ _null_ _null_ )); -DESCR("hash"); -DATA(insert OID = 779 ( hashinetextended PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 20 "869 20" _null_ _null_ _null_ _null_ _null_ hashinetextended _null_ _null_ _null_ )); -DESCR("hash"); -DATA(insert OID = 432 ( hash_numeric PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "1700" _null_ _null_ _null_ _null_ _null_ hash_numeric _null_ _null_ _null_ )); -DESCR("hash"); -DATA(insert OID = 780 ( hash_numeric_extended PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 20 "1700 20" _null_ _null_ _null_ _null_ _null_ hash_numeric_extended _null_ _null_ _null_ )); -DESCR("hash"); -DATA(insert OID = 328 ( hashmacaddr8 PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "774" _null_ _null_ _null_ _null_ _null_ hashmacaddr8 _null_ _null_ _null_ )); -DESCR("hash"); -DATA(insert OID = 781 ( hashmacaddr8extended PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 20 "774 20" _null_ _null_ _null_ _null_ _null_ hashmacaddr8extended _null_ _null_ _null_ )); -DESCR("hash"); - -DATA(insert OID = 438 ( num_nulls PGNSP PGUID 12 1 0 2276 0 f f f f f i s 1 0 23 "2276" "{2276}" "{v}" _null_ _null_ _null_ pg_num_nulls _null_ _null_ _null_ )); -DESCR("count the number of NULL arguments"); -DATA(insert OID = 440 ( num_nonnulls PGNSP PGUID 12 1 0 2276 0 f f f f f i s 1 0 23 "2276" "{2276}" "{v}" _null_ _null_ _null_ pg_num_nonnulls _null_ _null_ _null_ )); -DESCR("count the number of non-NULL arguments"); - -DATA(insert OID = 458 ( text_larger PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 25 "25 25" _null_ _null_ _null_ _null_ _null_ text_larger _null_ _null_ _null_ )); -DESCR("larger of two"); -DATA(insert OID = 459 ( text_smaller PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 25 "25 25" _null_ _null_ _null_ _null_ _null_ text_smaller _null_ _null_ _null_ )); -DESCR("smaller of two"); - -DATA(insert OID = 460 ( int8in PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 20 "2275" _null_ _null_ _null_ _null_ _null_ int8in _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 461 ( int8out PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2275 "20" _null_ _null_ _null_ _null_ _null_ int8out _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 462 ( int8um PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 20 "20" _null_ _null_ _null_ _null_ _null_ int8um _null_ _null_ _null_ )); -DATA(insert OID = 463 ( int8pl PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 20 "20 20" _null_ _null_ _null_ _null_ _null_ int8pl _null_ _null_ _null_ )); -DATA(insert OID = 464 ( int8mi PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 20 "20 20" _null_ _null_ _null_ _null_ _null_ int8mi _null_ _null_ _null_ )); -DATA(insert OID = 465 ( int8mul PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 20 "20 20" _null_ _null_ _null_ _null_ _null_ int8mul _null_ _null_ _null_ )); -DATA(insert OID = 466 ( int8div PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 20 "20 20" _null_ _null_ _null_ _null_ _null_ int8div _null_ _null_ _null_ )); -DATA(insert OID = 467 ( int8eq PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "20 20" _null_ _null_ _null_ _null_ _null_ int8eq _null_ _null_ _null_ )); -DATA(insert OID = 468 ( int8ne PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "20 20" _null_ _null_ _null_ _null_ _null_ int8ne _null_ _null_ _null_ )); -DATA(insert OID = 469 ( int8lt PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "20 20" _null_ _null_ _null_ _null_ _null_ int8lt _null_ _null_ _null_ )); -DATA(insert OID = 470 ( int8gt PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "20 20" _null_ _null_ _null_ _null_ _null_ int8gt _null_ _null_ _null_ )); -DATA(insert OID = 471 ( int8le PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "20 20" _null_ _null_ _null_ _null_ _null_ int8le _null_ _null_ _null_ )); -DATA(insert OID = 472 ( int8ge PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "20 20" _null_ _null_ _null_ _null_ _null_ int8ge _null_ _null_ _null_ )); - -DATA(insert OID = 474 ( int84eq PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "20 23" _null_ _null_ _null_ _null_ _null_ int84eq _null_ _null_ _null_ )); -DATA(insert OID = 475 ( int84ne PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "20 23" _null_ _null_ _null_ _null_ _null_ int84ne _null_ _null_ _null_ )); -DATA(insert OID = 476 ( int84lt PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "20 23" _null_ _null_ _null_ _null_ _null_ int84lt _null_ _null_ _null_ )); -DATA(insert OID = 477 ( int84gt PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "20 23" _null_ _null_ _null_ _null_ _null_ int84gt _null_ _null_ _null_ )); -DATA(insert OID = 478 ( int84le PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "20 23" _null_ _null_ _null_ _null_ _null_ int84le _null_ _null_ _null_ )); -DATA(insert OID = 479 ( int84ge PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "20 23" _null_ _null_ _null_ _null_ _null_ int84ge _null_ _null_ _null_ )); - -DATA(insert OID = 480 ( int4 PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "20" _null_ _null_ _null_ _null_ _null_ int84 _null_ _null_ _null_ )); -DESCR("convert int8 to int4"); -DATA(insert OID = 481 ( int8 PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 20 "23" _null_ _null_ _null_ _null_ _null_ int48 _null_ _null_ _null_ )); -DESCR("convert int4 to int8"); -DATA(insert OID = 482 ( float8 PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 701 "20" _null_ _null_ _null_ _null_ _null_ i8tod _null_ _null_ _null_ )); -DESCR("convert int8 to float8"); -DATA(insert OID = 483 ( int8 PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 20 "701" _null_ _null_ _null_ _null_ _null_ dtoi8 _null_ _null_ _null_ )); -DESCR("convert float8 to int8"); - -/* OIDS 500 - 599 */ - -/* OIDS 600 - 699 */ - -DATA(insert OID = 626 ( hash_array PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "2277" _null_ _null_ _null_ _null_ _null_ hash_array _null_ _null_ _null_ )); -DESCR("hash"); -DATA(insert OID = 782 ( hash_array_extended PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 20 "2277 20" _null_ _null_ _null_ _null_ _null_ hash_array_extended _null_ _null_ _null_ )); -DESCR("hash"); - -DATA(insert OID = 652 ( float4 PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 700 "20" _null_ _null_ _null_ _null_ _null_ i8tof _null_ _null_ _null_ )); -DESCR("convert int8 to float4"); -DATA(insert OID = 653 ( int8 PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 20 "700" _null_ _null_ _null_ _null_ _null_ ftoi8 _null_ _null_ _null_ )); -DESCR("convert float4 to int8"); - -DATA(insert OID = 714 ( int2 PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 21 "20" _null_ _null_ _null_ _null_ _null_ int82 _null_ _null_ _null_ )); -DESCR("convert int8 to int2"); -DATA(insert OID = 754 ( int8 PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 20 "21" _null_ _null_ _null_ _null_ _null_ int28 _null_ _null_ _null_ )); -DESCR("convert int2 to int8"); - -DATA(insert OID = 655 ( namelt PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "19 19" _null_ _null_ _null_ _null_ _null_ namelt _null_ _null_ _null_ )); -DATA(insert OID = 656 ( namele PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "19 19" _null_ _null_ _null_ _null_ _null_ namele _null_ _null_ _null_ )); -DATA(insert OID = 657 ( namegt PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "19 19" _null_ _null_ _null_ _null_ _null_ namegt _null_ _null_ _null_ )); -DATA(insert OID = 658 ( namege PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "19 19" _null_ _null_ _null_ _null_ _null_ namege _null_ _null_ _null_ )); -DATA(insert OID = 659 ( namene PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "19 19" _null_ _null_ _null_ _null_ _null_ namene _null_ _null_ _null_ )); - -DATA(insert OID = 668 ( bpchar PGNSP PGUID 12 1 0 0 0 f f f t f i s 3 0 1042 "1042 23 16" _null_ _null_ _null_ _null_ _null_ bpchar _null_ _null_ _null_ )); -DESCR("adjust char() to typmod length"); -DATA(insert OID = 3097 ( varchar_transform PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2281 "2281" _null_ _null_ _null_ _null_ _null_ varchar_transform _null_ _null_ _null_ )); -DESCR("transform a varchar length coercion"); -DATA(insert OID = 669 ( varchar PGNSP PGUID 12 1 0 0 varchar_transform f f f t f i s 3 0 1043 "1043 23 16" _null_ _null_ _null_ _null_ _null_ varchar _null_ _null_ _null_ )); -DESCR("adjust varchar() to typmod length"); - -DATA(insert OID = 676 ( mktinterval PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 704 "702 702" _null_ _null_ _null_ _null_ _null_ mktinterval _null_ _null_ _null_ )); - -DATA(insert OID = 619 ( oidvectorne PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "30 30" _null_ _null_ _null_ _null_ _null_ oidvectorne _null_ _null_ _null_ )); -DATA(insert OID = 677 ( oidvectorlt PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "30 30" _null_ _null_ _null_ _null_ _null_ oidvectorlt _null_ _null_ _null_ )); -DATA(insert OID = 678 ( oidvectorle PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "30 30" _null_ _null_ _null_ _null_ _null_ oidvectorle _null_ _null_ _null_ )); -DATA(insert OID = 679 ( oidvectoreq PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "30 30" _null_ _null_ _null_ _null_ _null_ oidvectoreq _null_ _null_ _null_ )); -DATA(insert OID = 680 ( oidvectorge PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "30 30" _null_ _null_ _null_ _null_ _null_ oidvectorge _null_ _null_ _null_ )); -DATA(insert OID = 681 ( oidvectorgt PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "30 30" _null_ _null_ _null_ _null_ _null_ oidvectorgt _null_ _null_ _null_ )); - -/* OIDS 700 - 799 */ -DATA(insert OID = 710 ( getpgusername PGNSP PGUID 12 1 0 0 0 f f f t f s s 0 0 19 "" _null_ _null_ _null_ _null_ _null_ current_user _null_ _null_ _null_ )); -DESCR("deprecated, use current_user instead"); -DATA(insert OID = 716 ( oidlt PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "26 26" _null_ _null_ _null_ _null_ _null_ oidlt _null_ _null_ _null_ )); -DATA(insert OID = 717 ( oidle PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "26 26" _null_ _null_ _null_ _null_ _null_ oidle _null_ _null_ _null_ )); - -DATA(insert OID = 720 ( octet_length PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "17" _null_ _null_ _null_ _null_ _null_ byteaoctetlen _null_ _null_ _null_ )); -DESCR("octet length"); -DATA(insert OID = 721 ( get_byte PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "17 23" _null_ _null_ _null_ _null_ _null_ byteaGetByte _null_ _null_ _null_ )); -DESCR("get byte"); -DATA(insert OID = 722 ( set_byte PGNSP PGUID 12 1 0 0 0 f f f t f i s 3 0 17 "17 23 23" _null_ _null_ _null_ _null_ _null_ byteaSetByte _null_ _null_ _null_ )); -DESCR("set byte"); -DATA(insert OID = 723 ( get_bit PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "17 23" _null_ _null_ _null_ _null_ _null_ byteaGetBit _null_ _null_ _null_ )); -DESCR("get bit"); -DATA(insert OID = 724 ( set_bit PGNSP PGUID 12 1 0 0 0 f f f t f i s 3 0 17 "17 23 23" _null_ _null_ _null_ _null_ _null_ byteaSetBit _null_ _null_ _null_ )); -DESCR("set bit"); -DATA(insert OID = 749 ( overlay PGNSP PGUID 12 1 0 0 0 f f f t f i s 4 0 17 "17 17 23 23" _null_ _null_ _null_ _null_ _null_ byteaoverlay _null_ _null_ _null_ )); -DESCR("substitute portion of string"); -DATA(insert OID = 752 ( overlay PGNSP PGUID 12 1 0 0 0 f f f t f i s 3 0 17 "17 17 23" _null_ _null_ _null_ _null_ _null_ byteaoverlay_no_len _null_ _null_ _null_ )); -DESCR("substitute portion of string"); - -DATA(insert OID = 725 ( dist_pl PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 701 "600 628" _null_ _null_ _null_ _null_ _null_ dist_pl _null_ _null_ _null_ )); -DATA(insert OID = 726 ( dist_lb PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 701 "628 603" _null_ _null_ _null_ _null_ _null_ dist_lb _null_ _null_ _null_ )); -DATA(insert OID = 727 ( dist_sl PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 701 "601 628" _null_ _null_ _null_ _null_ _null_ dist_sl _null_ _null_ _null_ )); -DATA(insert OID = 728 ( dist_cpoly PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 701 "718 604" _null_ _null_ _null_ _null_ _null_ dist_cpoly _null_ _null_ _null_ )); -DATA(insert OID = 729 ( poly_distance PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 701 "604 604" _null_ _null_ _null_ _null_ _null_ poly_distance _null_ _null_ _null_ )); -DATA(insert OID = 3275 ( dist_ppoly PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 701 "600 604" _null_ _null_ _null_ _null_ _null_ dist_ppoly _null_ _null_ _null_ )); -DATA(insert OID = 3292 ( dist_polyp PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 701 "604 600" _null_ _null_ _null_ _null_ _null_ dist_polyp _null_ _null_ _null_ )); -DATA(insert OID = 3290 ( dist_cpoint PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 701 "718 600" _null_ _null_ _null_ _null_ _null_ dist_cpoint _null_ _null_ _null_ )); - -DATA(insert OID = 740 ( text_lt PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "25 25" _null_ _null_ _null_ _null_ _null_ text_lt _null_ _null_ _null_ )); -DATA(insert OID = 741 ( text_le PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "25 25" _null_ _null_ _null_ _null_ _null_ text_le _null_ _null_ _null_ )); -DATA(insert OID = 742 ( text_gt PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "25 25" _null_ _null_ _null_ _null_ _null_ text_gt _null_ _null_ _null_ )); -DATA(insert OID = 743 ( text_ge PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "25 25" _null_ _null_ _null_ _null_ _null_ text_ge _null_ _null_ _null_ )); - -DATA(insert OID = 745 ( current_user PGNSP PGUID 12 1 0 0 0 f f f t f s s 0 0 19 "" _null_ _null_ _null_ _null_ _null_ current_user _null_ _null_ _null_ )); -DESCR("current user name"); -DATA(insert OID = 746 ( session_user PGNSP PGUID 12 1 0 0 0 f f f t f s s 0 0 19 "" _null_ _null_ _null_ _null_ _null_ session_user _null_ _null_ _null_ )); -DESCR("session user name"); - -DATA(insert OID = 744 ( array_eq PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "2277 2277" _null_ _null_ _null_ _null_ _null_ array_eq _null_ _null_ _null_ )); -DATA(insert OID = 390 ( array_ne PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "2277 2277" _null_ _null_ _null_ _null_ _null_ array_ne _null_ _null_ _null_ )); -DATA(insert OID = 391 ( array_lt PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "2277 2277" _null_ _null_ _null_ _null_ _null_ array_lt _null_ _null_ _null_ )); -DATA(insert OID = 392 ( array_gt PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "2277 2277" _null_ _null_ _null_ _null_ _null_ array_gt _null_ _null_ _null_ )); -DATA(insert OID = 393 ( array_le PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "2277 2277" _null_ _null_ _null_ _null_ _null_ array_le _null_ _null_ _null_ )); -DATA(insert OID = 396 ( array_ge PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "2277 2277" _null_ _null_ _null_ _null_ _null_ array_ge _null_ _null_ _null_ )); -DATA(insert OID = 747 ( array_dims PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 25 "2277" _null_ _null_ _null_ _null_ _null_ array_dims _null_ _null_ _null_ )); -DESCR("array dimensions"); -DATA(insert OID = 748 ( array_ndims PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "2277" _null_ _null_ _null_ _null_ _null_ array_ndims _null_ _null_ _null_ )); -DESCR("number of array dimensions"); -DATA(insert OID = 750 ( array_in PGNSP PGUID 12 1 0 0 0 f f f t f s s 3 0 2277 "2275 26 23" _null_ _null_ _null_ _null_ _null_ array_in _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 751 ( array_out PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 2275 "2277" _null_ _null_ _null_ _null_ _null_ array_out _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2091 ( array_lower PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "2277 23" _null_ _null_ _null_ _null_ _null_ array_lower _null_ _null_ _null_ )); -DESCR("array lower dimension"); -DATA(insert OID = 2092 ( array_upper PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "2277 23" _null_ _null_ _null_ _null_ _null_ array_upper _null_ _null_ _null_ )); -DESCR("array upper dimension"); -DATA(insert OID = 2176 ( array_length PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "2277 23" _null_ _null_ _null_ _null_ _null_ array_length _null_ _null_ _null_ )); -DESCR("array length"); -DATA(insert OID = 3179 ( cardinality PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "2277" _null_ _null_ _null_ _null_ _null_ array_cardinality _null_ _null_ _null_ )); -DESCR("array cardinality"); -DATA(insert OID = 378 ( array_append PGNSP PGUID 12 1 0 0 0 f f f f f i s 2 0 2277 "2277 2283" _null_ _null_ _null_ _null_ _null_ array_append _null_ _null_ _null_ )); -DESCR("append element onto end of array"); -DATA(insert OID = 379 ( array_prepend PGNSP PGUID 12 1 0 0 0 f f f f f i s 2 0 2277 "2283 2277" _null_ _null_ _null_ _null_ _null_ array_prepend _null_ _null_ _null_ )); -DESCR("prepend element onto front of array"); -DATA(insert OID = 383 ( array_cat PGNSP PGUID 12 1 0 0 0 f f f f f i s 2 0 2277 "2277 2277" _null_ _null_ _null_ _null_ _null_ array_cat _null_ _null_ _null_ )); -DATA(insert OID = 394 ( string_to_array PGNSP PGUID 12 1 0 0 0 f f f f f i s 2 0 1009 "25 25" _null_ _null_ _null_ _null_ _null_ text_to_array _null_ _null_ _null_ )); -DESCR("split delimited text into text[]"); -DATA(insert OID = 395 ( array_to_string PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 25 "2277 25" _null_ _null_ _null_ _null_ _null_ array_to_text _null_ _null_ _null_ )); -DESCR("concatenate array elements, using delimiter, into text"); -DATA(insert OID = 376 ( string_to_array PGNSP PGUID 12 1 0 0 0 f f f f f i s 3 0 1009 "25 25 25" _null_ _null_ _null_ _null_ _null_ text_to_array_null _null_ _null_ _null_ )); -DESCR("split delimited text into text[], with null string"); -DATA(insert OID = 384 ( array_to_string PGNSP PGUID 12 1 0 0 0 f f f f f s s 3 0 25 "2277 25 25" _null_ _null_ _null_ _null_ _null_ array_to_text_null _null_ _null_ _null_ )); -DESCR("concatenate array elements, using delimiter and null string, into text"); -DATA(insert OID = 515 ( array_larger PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 2277 "2277 2277" _null_ _null_ _null_ _null_ _null_ array_larger _null_ _null_ _null_ )); -DESCR("larger of two"); -DATA(insert OID = 516 ( array_smaller PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 2277 "2277 2277" _null_ _null_ _null_ _null_ _null_ array_smaller _null_ _null_ _null_ )); -DESCR("smaller of two"); -DATA(insert OID = 3277 ( array_position PGNSP PGUID 12 1 0 0 0 f f f f f i s 2 0 23 "2277 2283" _null_ _null_ _null_ _null_ _null_ array_position _null_ _null_ _null_ )); -DESCR("returns an offset of value in array"); -DATA(insert OID = 3278 ( array_position PGNSP PGUID 12 1 0 0 0 f f f f f i s 3 0 23 "2277 2283 23" _null_ _null_ _null_ _null_ _null_ array_position_start _null_ _null_ _null_ )); -DESCR("returns an offset of value in array with start index"); -DATA(insert OID = 3279 ( array_positions PGNSP PGUID 12 1 0 0 0 f f f f f i s 2 0 1007 "2277 2283" _null_ _null_ _null_ _null_ _null_ array_positions _null_ _null_ _null_ )); -DESCR("returns an array of offsets of some value in array"); -DATA(insert OID = 1191 ( generate_subscripts PGNSP PGUID 12 1 1000 0 0 f f f t t i s 3 0 23 "2277 23 16" _null_ _null_ _null_ _null_ _null_ generate_subscripts _null_ _null_ _null_ )); -DESCR("array subscripts generator"); -DATA(insert OID = 1192 ( generate_subscripts PGNSP PGUID 12 1 1000 0 0 f f f t t i s 2 0 23 "2277 23" _null_ _null_ _null_ _null_ _null_ generate_subscripts_nodir _null_ _null_ _null_ )); -DESCR("array subscripts generator"); -DATA(insert OID = 1193 ( array_fill PGNSP PGUID 12 1 0 0 0 f f f f f i s 2 0 2277 "2283 1007" _null_ _null_ _null_ _null_ _null_ array_fill _null_ _null_ _null_ )); -DESCR("array constructor with value"); -DATA(insert OID = 1286 ( array_fill PGNSP PGUID 12 1 0 0 0 f f f f f i s 3 0 2277 "2283 1007 1007" _null_ _null_ _null_ _null_ _null_ array_fill_with_lower_bounds _null_ _null_ _null_ )); -DESCR("array constructor with value"); -DATA(insert OID = 2331 ( unnest PGNSP PGUID 12 1 100 0 0 f f f t t i s 1 0 2283 "2277" _null_ _null_ _null_ _null_ _null_ array_unnest _null_ _null_ _null_ )); -DESCR("expand array to set of rows"); -DATA(insert OID = 3167 ( array_remove PGNSP PGUID 12 1 0 0 0 f f f f f i s 2 0 2277 "2277 2283" _null_ _null_ _null_ _null_ _null_ array_remove _null_ _null_ _null_ )); -DESCR("remove any occurrences of an element from an array"); -DATA(insert OID = 3168 ( array_replace PGNSP PGUID 12 1 0 0 0 f f f f f i s 3 0 2277 "2277 2283 2283" _null_ _null_ _null_ _null_ _null_ array_replace _null_ _null_ _null_ )); -DESCR("replace any occurrences of an element in an array"); -DATA(insert OID = 2333 ( array_agg_transfn PGNSP PGUID 12 1 0 0 0 f f f f f i s 2 0 2281 "2281 2776" _null_ _null_ _null_ _null_ _null_ array_agg_transfn _null_ _null_ _null_ )); -DESCR("aggregate transition function"); -DATA(insert OID = 2334 ( array_agg_finalfn PGNSP PGUID 12 1 0 0 0 f f f f f i s 2 0 2277 "2281 2776" _null_ _null_ _null_ _null_ _null_ array_agg_finalfn _null_ _null_ _null_ )); -DESCR("aggregate final function"); -DATA(insert OID = 2335 ( array_agg PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 2277 "2776" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("concatenate aggregate input into an array"); -DATA(insert OID = 4051 ( array_agg_array_transfn PGNSP PGUID 12 1 0 0 0 f f f f f i s 2 0 2281 "2281 2277" _null_ _null_ _null_ _null_ _null_ array_agg_array_transfn _null_ _null_ _null_ )); -DESCR("aggregate transition function"); -DATA(insert OID = 4052 ( array_agg_array_finalfn PGNSP PGUID 12 1 0 0 0 f f f f f i s 2 0 2277 "2281 2277" _null_ _null_ _null_ _null_ _null_ array_agg_array_finalfn _null_ _null_ _null_ )); -DESCR("aggregate final function"); -DATA(insert OID = 4053 ( array_agg PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 2277 "2277" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("concatenate aggregate input into an array"); -DATA(insert OID = 3218 ( width_bucket PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "2283 2277" _null_ _null_ _null_ _null_ _null_ width_bucket_array _null_ _null_ _null_ )); -DESCR("bucket number of operand given a sorted array of bucket lower bounds"); -DATA(insert OID = 3816 ( array_typanalyze PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 16 "2281" _null_ _null_ _null_ _null_ _null_ array_typanalyze _null_ _null_ _null_ )); -DESCR("array typanalyze"); -DATA(insert OID = 3817 ( arraycontsel PGNSP PGUID 12 1 0 0 0 f f f t f s s 4 0 701 "2281 26 2281 23" _null_ _null_ _null_ _null_ _null_ arraycontsel _null_ _null_ _null_ )); -DESCR("restriction selectivity for array-containment operators"); -DATA(insert OID = 3818 ( arraycontjoinsel PGNSP PGUID 12 1 0 0 0 f f f t f s s 5 0 701 "2281 26 2281 21 2281" _null_ _null_ _null_ _null_ _null_ arraycontjoinsel _null_ _null_ _null_ )); -DESCR("join selectivity for array-containment operators"); - -DATA(insert OID = 760 ( smgrin PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 210 "2275" _null_ _null_ _null_ _null_ _null_ smgrin _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 761 ( smgrout PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 2275 "210" _null_ _null_ _null_ _null_ _null_ smgrout _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 762 ( smgreq PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "210 210" _null_ _null_ _null_ _null_ _null_ smgreq _null_ _null_ _null_ )); -DESCR("storage manager"); -DATA(insert OID = 763 ( smgrne PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "210 210" _null_ _null_ _null_ _null_ _null_ smgrne _null_ _null_ _null_ )); -DESCR("storage manager"); - -DATA(insert OID = 764 ( lo_import PGNSP PGUID 12 1 0 0 0 f f f t f v u 1 0 26 "25" _null_ _null_ _null_ _null_ _null_ be_lo_import _null_ _null_ _null_ )); -DESCR("large object import"); -DATA(insert OID = 767 ( lo_import PGNSP PGUID 12 1 0 0 0 f f f t f v u 2 0 26 "25 26" _null_ _null_ _null_ _null_ _null_ be_lo_import_with_oid _null_ _null_ _null_ )); -DESCR("large object import"); -DATA(insert OID = 765 ( lo_export PGNSP PGUID 12 1 0 0 0 f f f t f v u 2 0 23 "26 25" _null_ _null_ _null_ _null_ _null_ be_lo_export _null_ _null_ _null_ )); -DESCR("large object export"); - -DATA(insert OID = 766 ( int4inc PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "23" _null_ _null_ _null_ _null_ _null_ int4inc _null_ _null_ _null_ )); -DESCR("increment"); -DATA(insert OID = 768 ( int4larger PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "23 23" _null_ _null_ _null_ _null_ _null_ int4larger _null_ _null_ _null_ )); -DESCR("larger of two"); -DATA(insert OID = 769 ( int4smaller PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "23 23" _null_ _null_ _null_ _null_ _null_ int4smaller _null_ _null_ _null_ )); -DESCR("smaller of two"); -DATA(insert OID = 770 ( int2larger PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 21 "21 21" _null_ _null_ _null_ _null_ _null_ int2larger _null_ _null_ _null_ )); -DESCR("larger of two"); -DATA(insert OID = 771 ( int2smaller PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 21 "21 21" _null_ _null_ _null_ _null_ _null_ int2smaller _null_ _null_ _null_ )); -DESCR("smaller of two"); - -DATA(insert OID = 784 ( tintervaleq PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "704 704" _null_ _null_ _null_ _null_ _null_ tintervaleq _null_ _null_ _null_ )); -DATA(insert OID = 785 ( tintervalne PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "704 704" _null_ _null_ _null_ _null_ _null_ tintervalne _null_ _null_ _null_ )); -DATA(insert OID = 786 ( tintervallt PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "704 704" _null_ _null_ _null_ _null_ _null_ tintervallt _null_ _null_ _null_ )); -DATA(insert OID = 787 ( tintervalgt PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "704 704" _null_ _null_ _null_ _null_ _null_ tintervalgt _null_ _null_ _null_ )); -DATA(insert OID = 788 ( tintervalle PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "704 704" _null_ _null_ _null_ _null_ _null_ tintervalle _null_ _null_ _null_ )); -DATA(insert OID = 789 ( tintervalge PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "704 704" _null_ _null_ _null_ _null_ _null_ tintervalge _null_ _null_ _null_ )); - -/* OIDS 800 - 899 */ - -DATA(insert OID = 846 ( cash_mul_flt4 PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 790 "790 700" _null_ _null_ _null_ _null_ _null_ cash_mul_flt4 _null_ _null_ _null_ )); -DATA(insert OID = 847 ( cash_div_flt4 PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 790 "790 700" _null_ _null_ _null_ _null_ _null_ cash_div_flt4 _null_ _null_ _null_ )); -DATA(insert OID = 848 ( flt4_mul_cash PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 790 "700 790" _null_ _null_ _null_ _null_ _null_ flt4_mul_cash _null_ _null_ _null_ )); - -DATA(insert OID = 849 ( position PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "25 25" _null_ _null_ _null_ _null_ _null_ textpos _null_ _null_ _null_ )); -DESCR("position of substring"); -DATA(insert OID = 850 ( textlike PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "25 25" _null_ _null_ _null_ _null_ _null_ textlike _null_ _null_ _null_ )); -DATA(insert OID = 851 ( textnlike PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "25 25" _null_ _null_ _null_ _null_ _null_ textnlike _null_ _null_ _null_ )); - -DATA(insert OID = 852 ( int48eq PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "23 20" _null_ _null_ _null_ _null_ _null_ int48eq _null_ _null_ _null_ )); -DATA(insert OID = 853 ( int48ne PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "23 20" _null_ _null_ _null_ _null_ _null_ int48ne _null_ _null_ _null_ )); -DATA(insert OID = 854 ( int48lt PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "23 20" _null_ _null_ _null_ _null_ _null_ int48lt _null_ _null_ _null_ )); -DATA(insert OID = 855 ( int48gt PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "23 20" _null_ _null_ _null_ _null_ _null_ int48gt _null_ _null_ _null_ )); -DATA(insert OID = 856 ( int48le PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "23 20" _null_ _null_ _null_ _null_ _null_ int48le _null_ _null_ _null_ )); -DATA(insert OID = 857 ( int48ge PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "23 20" _null_ _null_ _null_ _null_ _null_ int48ge _null_ _null_ _null_ )); - -DATA(insert OID = 858 ( namelike PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "19 25" _null_ _null_ _null_ _null_ _null_ namelike _null_ _null_ _null_ )); -DATA(insert OID = 859 ( namenlike PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "19 25" _null_ _null_ _null_ _null_ _null_ namenlike _null_ _null_ _null_ )); - -DATA(insert OID = 860 ( bpchar PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 1042 "18" _null_ _null_ _null_ _null_ _null_ char_bpchar _null_ _null_ _null_ )); -DESCR("convert char to char(n)"); - -DATA(insert OID = 861 ( current_database PGNSP PGUID 12 1 0 0 0 f f f t f s s 0 0 19 "" _null_ _null_ _null_ _null_ _null_ current_database _null_ _null_ _null_ )); -DESCR("name of the current database"); -DATA(insert OID = 817 ( current_query PGNSP PGUID 12 1 0 0 0 f f f f f v r 0 0 25 "" _null_ _null_ _null_ _null_ _null_ current_query _null_ _null_ _null_ )); -DESCR("get the currently executing query"); - -DATA(insert OID = 3399 ( int8_mul_cash PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 790 "20 790" _null_ _null_ _null_ _null_ _null_ int8_mul_cash _null_ _null_ _null_ )); -DATA(insert OID = 862 ( int4_mul_cash PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 790 "23 790" _null_ _null_ _null_ _null_ _null_ int4_mul_cash _null_ _null_ _null_ )); -DATA(insert OID = 863 ( int2_mul_cash PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 790 "21 790" _null_ _null_ _null_ _null_ _null_ int2_mul_cash _null_ _null_ _null_ )); -DATA(insert OID = 3344 ( cash_mul_int8 PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 790 "790 20" _null_ _null_ _null_ _null_ _null_ cash_mul_int8 _null_ _null_ _null_ )); -DATA(insert OID = 3345 ( cash_div_int8 PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 790 "790 20" _null_ _null_ _null_ _null_ _null_ cash_div_int8 _null_ _null_ _null_ )); -DATA(insert OID = 864 ( cash_mul_int4 PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 790 "790 23" _null_ _null_ _null_ _null_ _null_ cash_mul_int4 _null_ _null_ _null_ )); -DATA(insert OID = 865 ( cash_div_int4 PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 790 "790 23" _null_ _null_ _null_ _null_ _null_ cash_div_int4 _null_ _null_ _null_ )); -DATA(insert OID = 866 ( cash_mul_int2 PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 790 "790 21" _null_ _null_ _null_ _null_ _null_ cash_mul_int2 _null_ _null_ _null_ )); -DATA(insert OID = 867 ( cash_div_int2 PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 790 "790 21" _null_ _null_ _null_ _null_ _null_ cash_div_int2 _null_ _null_ _null_ )); - -DATA(insert OID = 886 ( cash_in PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 790 "2275" _null_ _null_ _null_ _null_ _null_ cash_in _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 887 ( cash_out PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 2275 "790" _null_ _null_ _null_ _null_ _null_ cash_out _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 888 ( cash_eq PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "790 790" _null_ _null_ _null_ _null_ _null_ cash_eq _null_ _null_ _null_ )); -DATA(insert OID = 889 ( cash_ne PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "790 790" _null_ _null_ _null_ _null_ _null_ cash_ne _null_ _null_ _null_ )); -DATA(insert OID = 890 ( cash_lt PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "790 790" _null_ _null_ _null_ _null_ _null_ cash_lt _null_ _null_ _null_ )); -DATA(insert OID = 891 ( cash_le PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "790 790" _null_ _null_ _null_ _null_ _null_ cash_le _null_ _null_ _null_ )); -DATA(insert OID = 892 ( cash_gt PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "790 790" _null_ _null_ _null_ _null_ _null_ cash_gt _null_ _null_ _null_ )); -DATA(insert OID = 893 ( cash_ge PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "790 790" _null_ _null_ _null_ _null_ _null_ cash_ge _null_ _null_ _null_ )); -DATA(insert OID = 894 ( cash_pl PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 790 "790 790" _null_ _null_ _null_ _null_ _null_ cash_pl _null_ _null_ _null_ )); -DATA(insert OID = 895 ( cash_mi PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 790 "790 790" _null_ _null_ _null_ _null_ _null_ cash_mi _null_ _null_ _null_ )); -DATA(insert OID = 896 ( cash_mul_flt8 PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 790 "790 701" _null_ _null_ _null_ _null_ _null_ cash_mul_flt8 _null_ _null_ _null_ )); -DATA(insert OID = 897 ( cash_div_flt8 PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 790 "790 701" _null_ _null_ _null_ _null_ _null_ cash_div_flt8 _null_ _null_ _null_ )); -DATA(insert OID = 898 ( cashlarger PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 790 "790 790" _null_ _null_ _null_ _null_ _null_ cashlarger _null_ _null_ _null_ )); -DESCR("larger of two"); -DATA(insert OID = 899 ( cashsmaller PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 790 "790 790" _null_ _null_ _null_ _null_ _null_ cashsmaller _null_ _null_ _null_ )); -DESCR("smaller of two"); -DATA(insert OID = 919 ( flt8_mul_cash PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 790 "701 790" _null_ _null_ _null_ _null_ _null_ flt8_mul_cash _null_ _null_ _null_ )); -DATA(insert OID = 935 ( cash_words PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 25 "790" _null_ _null_ _null_ _null_ _null_ cash_words _null_ _null_ _null_ )); -DESCR("output money amount as words"); -DATA(insert OID = 3822 ( cash_div_cash PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 701 "790 790" _null_ _null_ _null_ _null_ _null_ cash_div_cash _null_ _null_ _null_ )); -DATA(insert OID = 3823 ( numeric PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 1700 "790" _null_ _null_ _null_ _null_ _null_ cash_numeric _null_ _null_ _null_ )); -DESCR("convert money to numeric"); -DATA(insert OID = 3824 ( money PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 790 "1700" _null_ _null_ _null_ _null_ _null_ numeric_cash _null_ _null_ _null_ )); -DESCR("convert numeric to money"); -DATA(insert OID = 3811 ( money PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 790 "23" _null_ _null_ _null_ _null_ _null_ int4_cash _null_ _null_ _null_ )); -DESCR("convert int4 to money"); -DATA(insert OID = 3812 ( money PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 790 "20" _null_ _null_ _null_ _null_ _null_ int8_cash _null_ _null_ _null_ )); -DESCR("convert int8 to money"); - -/* OIDS 900 - 999 */ - -DATA(insert OID = 940 ( mod PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 21 "21 21" _null_ _null_ _null_ _null_ _null_ int2mod _null_ _null_ _null_ )); -DESCR("modulus"); -DATA(insert OID = 941 ( mod PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "23 23" _null_ _null_ _null_ _null_ _null_ int4mod _null_ _null_ _null_ )); -DESCR("modulus"); - -DATA(insert OID = 945 ( int8mod PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 20 "20 20" _null_ _null_ _null_ _null_ _null_ int8mod _null_ _null_ _null_ )); -DATA(insert OID = 947 ( mod PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 20 "20 20" _null_ _null_ _null_ _null_ _null_ int8mod _null_ _null_ _null_ )); -DESCR("modulus"); - -DATA(insert OID = 944 ( char PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 18 "25" _null_ _null_ _null_ _null_ _null_ text_char _null_ _null_ _null_ )); -DESCR("convert text to char"); -DATA(insert OID = 946 ( text PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 25 "18" _null_ _null_ _null_ _null_ _null_ char_text _null_ _null_ _null_ )); -DESCR("convert char to text"); - -DATA(insert OID = 952 ( lo_open PGNSP PGUID 12 1 0 0 0 f f f t f v u 2 0 23 "26 23" _null_ _null_ _null_ _null_ _null_ be_lo_open _null_ _null_ _null_ )); -DESCR("large object open"); -DATA(insert OID = 953 ( lo_close PGNSP PGUID 12 1 0 0 0 f f f t f v u 1 0 23 "23" _null_ _null_ _null_ _null_ _null_ be_lo_close _null_ _null_ _null_ )); -DESCR("large object close"); -DATA(insert OID = 954 ( loread PGNSP PGUID 12 1 0 0 0 f f f t f v u 2 0 17 "23 23" _null_ _null_ _null_ _null_ _null_ be_loread _null_ _null_ _null_ )); -DESCR("large object read"); -DATA(insert OID = 955 ( lowrite PGNSP PGUID 12 1 0 0 0 f f f t f v u 2 0 23 "23 17" _null_ _null_ _null_ _null_ _null_ be_lowrite _null_ _null_ _null_ )); -DESCR("large object write"); -DATA(insert OID = 956 ( lo_lseek PGNSP PGUID 12 1 0 0 0 f f f t f v u 3 0 23 "23 23 23" _null_ _null_ _null_ _null_ _null_ be_lo_lseek _null_ _null_ _null_ )); -DESCR("large object seek"); -DATA(insert OID = 3170 ( lo_lseek64 PGNSP PGUID 12 1 0 0 0 f f f t f v u 3 0 20 "23 20 23" _null_ _null_ _null_ _null_ _null_ be_lo_lseek64 _null_ _null_ _null_ )); -DESCR("large object seek (64 bit)"); -DATA(insert OID = 957 ( lo_creat PGNSP PGUID 12 1 0 0 0 f f f t f v u 1 0 26 "23" _null_ _null_ _null_ _null_ _null_ be_lo_creat _null_ _null_ _null_ )); -DESCR("large object create"); -DATA(insert OID = 715 ( lo_create PGNSP PGUID 12 1 0 0 0 f f f t f v u 1 0 26 "26" _null_ _null_ _null_ _null_ _null_ be_lo_create _null_ _null_ _null_ )); -DESCR("large object create"); -DATA(insert OID = 958 ( lo_tell PGNSP PGUID 12 1 0 0 0 f f f t f v u 1 0 23 "23" _null_ _null_ _null_ _null_ _null_ be_lo_tell _null_ _null_ _null_ )); -DESCR("large object position"); -DATA(insert OID = 3171 ( lo_tell64 PGNSP PGUID 12 1 0 0 0 f f f t f v u 1 0 20 "23" _null_ _null_ _null_ _null_ _null_ be_lo_tell64 _null_ _null_ _null_ )); -DESCR("large object position (64 bit)"); -DATA(insert OID = 1004 ( lo_truncate PGNSP PGUID 12 1 0 0 0 f f f t f v u 2 0 23 "23 23" _null_ _null_ _null_ _null_ _null_ be_lo_truncate _null_ _null_ _null_ )); -DESCR("truncate large object"); -DATA(insert OID = 3172 ( lo_truncate64 PGNSP PGUID 12 1 0 0 0 f f f t f v u 2 0 23 "23 20" _null_ _null_ _null_ _null_ _null_ be_lo_truncate64 _null_ _null_ _null_ )); -DESCR("truncate large object (64 bit)"); - -DATA(insert OID = 3457 ( lo_from_bytea PGNSP PGUID 12 1 0 0 0 f f f t f v u 2 0 26 "26 17" _null_ _null_ _null_ _null_ _null_ be_lo_from_bytea _null_ _null_ _null_ )); -DESCR("create new large object with given content"); -DATA(insert OID = 3458 ( lo_get PGNSP PGUID 12 1 0 0 0 f f f t f v u 1 0 17 "26" _null_ _null_ _null_ _null_ _null_ be_lo_get _null_ _null_ _null_ )); -DESCR("read entire large object"); -DATA(insert OID = 3459 ( lo_get PGNSP PGUID 12 1 0 0 0 f f f t f v u 3 0 17 "26 20 23" _null_ _null_ _null_ _null_ _null_ be_lo_get_fragment _null_ _null_ _null_ )); -DESCR("read large object from offset for length"); -DATA(insert OID = 3460 ( lo_put PGNSP PGUID 12 1 0 0 0 f f f t f v u 3 0 2278 "26 20 17" _null_ _null_ _null_ _null_ _null_ be_lo_put _null_ _null_ _null_ )); -DESCR("write data at offset"); - -DATA(insert OID = 959 ( on_pl PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "600 628" _null_ _null_ _null_ _null_ _null_ on_pl _null_ _null_ _null_ )); -DATA(insert OID = 960 ( on_sl PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "601 628" _null_ _null_ _null_ _null_ _null_ on_sl _null_ _null_ _null_ )); -DATA(insert OID = 961 ( close_pl PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 600 "600 628" _null_ _null_ _null_ _null_ _null_ close_pl _null_ _null_ _null_ )); -DATA(insert OID = 962 ( close_sl PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 600 "601 628" _null_ _null_ _null_ _null_ _null_ close_sl _null_ _null_ _null_ )); -DATA(insert OID = 963 ( close_lb PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 600 "628 603" _null_ _null_ _null_ _null_ _null_ close_lb _null_ _null_ _null_ )); - -DATA(insert OID = 964 ( lo_unlink PGNSP PGUID 12 1 0 0 0 f f f t f v u 1 0 23 "26" _null_ _null_ _null_ _null_ _null_ be_lo_unlink _null_ _null_ _null_ )); -DESCR("large object unlink (delete)"); - -DATA(insert OID = 973 ( path_inter PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "602 602" _null_ _null_ _null_ _null_ _null_ path_inter _null_ _null_ _null_ )); -DATA(insert OID = 975 ( area PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 701 "603" _null_ _null_ _null_ _null_ _null_ box_area _null_ _null_ _null_ )); -DESCR("box area"); -DATA(insert OID = 976 ( width PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 701 "603" _null_ _null_ _null_ _null_ _null_ box_width _null_ _null_ _null_ )); -DESCR("box width"); -DATA(insert OID = 977 ( height PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 701 "603" _null_ _null_ _null_ _null_ _null_ box_height _null_ _null_ _null_ )); -DESCR("box height"); -DATA(insert OID = 978 ( box_distance PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 701 "603 603" _null_ _null_ _null_ _null_ _null_ box_distance _null_ _null_ _null_ )); -DATA(insert OID = 979 ( area PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 701 "602" _null_ _null_ _null_ _null_ _null_ path_area _null_ _null_ _null_ )); -DESCR("area of a closed path"); -DATA(insert OID = 980 ( box_intersect PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 603 "603 603" _null_ _null_ _null_ _null_ _null_ box_intersect _null_ _null_ _null_ )); -DATA(insert OID = 4067 ( bound_box PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 603 "603 603" _null_ _null_ _null_ _null_ _null_ boxes_bound_box _null_ _null_ _null_ )); -DESCR("bounding box of two boxes"); -DATA(insert OID = 981 ( diagonal PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 601 "603" _null_ _null_ _null_ _null_ _null_ box_diagonal _null_ _null_ _null_ )); -DESCR("box diagonal"); -DATA(insert OID = 982 ( path_n_lt PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "602 602" _null_ _null_ _null_ _null_ _null_ path_n_lt _null_ _null_ _null_ )); -DATA(insert OID = 983 ( path_n_gt PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "602 602" _null_ _null_ _null_ _null_ _null_ path_n_gt _null_ _null_ _null_ )); -DATA(insert OID = 984 ( path_n_eq PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "602 602" _null_ _null_ _null_ _null_ _null_ path_n_eq _null_ _null_ _null_ )); -DATA(insert OID = 985 ( path_n_le PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "602 602" _null_ _null_ _null_ _null_ _null_ path_n_le _null_ _null_ _null_ )); -DATA(insert OID = 986 ( path_n_ge PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "602 602" _null_ _null_ _null_ _null_ _null_ path_n_ge _null_ _null_ _null_ )); -DATA(insert OID = 987 ( path_length PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 701 "602" _null_ _null_ _null_ _null_ _null_ path_length _null_ _null_ _null_ )); -DATA(insert OID = 988 ( point_ne PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "600 600" _null_ _null_ _null_ _null_ _null_ point_ne _null_ _null_ _null_ )); -DATA(insert OID = 989 ( point_vert PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "600 600" _null_ _null_ _null_ _null_ _null_ point_vert _null_ _null_ _null_ )); -DATA(insert OID = 990 ( point_horiz PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "600 600" _null_ _null_ _null_ _null_ _null_ point_horiz _null_ _null_ _null_ )); -DATA(insert OID = 991 ( point_distance PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 701 "600 600" _null_ _null_ _null_ _null_ _null_ point_distance _null_ _null_ _null_ )); -DATA(insert OID = 992 ( slope PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 701 "600 600" _null_ _null_ _null_ _null_ _null_ point_slope _null_ _null_ _null_ )); -DESCR("slope between points"); -DATA(insert OID = 993 ( lseg PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 601 "600 600" _null_ _null_ _null_ _null_ _null_ lseg_construct _null_ _null_ _null_ )); -DESCR("convert points to line segment"); -DATA(insert OID = 994 ( lseg_intersect PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "601 601" _null_ _null_ _null_ _null_ _null_ lseg_intersect _null_ _null_ _null_ )); -DATA(insert OID = 995 ( lseg_parallel PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "601 601" _null_ _null_ _null_ _null_ _null_ lseg_parallel _null_ _null_ _null_ )); -DATA(insert OID = 996 ( lseg_perp PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "601 601" _null_ _null_ _null_ _null_ _null_ lseg_perp _null_ _null_ _null_ )); -DATA(insert OID = 997 ( lseg_vertical PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 16 "601" _null_ _null_ _null_ _null_ _null_ lseg_vertical _null_ _null_ _null_ )); -DATA(insert OID = 998 ( lseg_horizontal PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 16 "601" _null_ _null_ _null_ _null_ _null_ lseg_horizontal _null_ _null_ _null_ )); -DATA(insert OID = 999 ( lseg_eq PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "601 601" _null_ _null_ _null_ _null_ _null_ lseg_eq _null_ _null_ _null_ )); - -/* OIDS 1000 - 1999 */ - -DATA(insert OID = 3994 ( timestamp_izone_transform PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2281 "2281" _null_ _null_ _null_ _null_ _null_ timestamp_izone_transform _null_ _null_ _null_ )); -DESCR("transform a time zone adjustment"); -DATA(insert OID = 1026 ( timezone PGNSP PGUID 12 1 0 0 timestamp_izone_transform f f f t f i s 2 0 1114 "1186 1184" _null_ _null_ _null_ _null_ _null_ timestamptz_izone _null_ _null_ _null_ )); -DESCR("adjust timestamp to new time zone"); - -DATA(insert OID = 1031 ( aclitemin PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 1033 "2275" _null_ _null_ _null_ _null_ _null_ aclitemin _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 1032 ( aclitemout PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 2275 "1033" _null_ _null_ _null_ _null_ _null_ aclitemout _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 1035 ( aclinsert PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1034 "1034 1033" _null_ _null_ _null_ _null_ _null_ aclinsert _null_ _null_ _null_ )); -DESCR("add/update ACL item"); -DATA(insert OID = 1036 ( aclremove PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1034 "1034 1033" _null_ _null_ _null_ _null_ _null_ aclremove _null_ _null_ _null_ )); -DESCR("remove ACL item"); -DATA(insert OID = 1037 ( aclcontains PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "1034 1033" _null_ _null_ _null_ _null_ _null_ aclcontains _null_ _null_ _null_ )); -DESCR("contains"); -DATA(insert OID = 1062 ( aclitemeq PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "1033 1033" _null_ _null_ _null_ _null_ _null_ aclitem_eq _null_ _null_ _null_ )); -DATA(insert OID = 1365 ( makeaclitem PGNSP PGUID 12 1 0 0 0 f f f t f i s 4 0 1033 "26 26 25 16" _null_ _null_ _null_ _null_ _null_ makeaclitem _null_ _null_ _null_ )); -DESCR("make ACL item"); -DATA(insert OID = 3943 ( acldefault PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1034 "18 26" _null_ _null_ _null_ _null_ _null_ acldefault_sql _null_ _null_ _null_ )); -DESCR("TODO"); -DATA(insert OID = 1689 ( aclexplode PGNSP PGUID 12 1 10 0 0 f f f t t s s 1 0 2249 "1034" "{1034,26,26,25,16}" "{i,o,o,o,o}" "{acl,grantor,grantee,privilege_type,is_grantable}" _null_ _null_ aclexplode _null_ _null_ _null_ )); -DESCR("convert ACL item array to table, for use by information schema"); -DATA(insert OID = 1044 ( bpcharin PGNSP PGUID 12 1 0 0 0 f f f t f i s 3 0 1042 "2275 26 23" _null_ _null_ _null_ _null_ _null_ bpcharin _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 1045 ( bpcharout PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2275 "1042" _null_ _null_ _null_ _null_ _null_ bpcharout _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2913 ( bpchartypmodin PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "1263" _null_ _null_ _null_ _null_ _null_ bpchartypmodin _null_ _null_ _null_ )); -DESCR("I/O typmod"); -DATA(insert OID = 2914 ( bpchartypmodout PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2275 "23" _null_ _null_ _null_ _null_ _null_ bpchartypmodout _null_ _null_ _null_ )); -DESCR("I/O typmod"); -DATA(insert OID = 1046 ( varcharin PGNSP PGUID 12 1 0 0 0 f f f t f i s 3 0 1043 "2275 26 23" _null_ _null_ _null_ _null_ _null_ varcharin _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 1047 ( varcharout PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2275 "1043" _null_ _null_ _null_ _null_ _null_ varcharout _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2915 ( varchartypmodin PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "1263" _null_ _null_ _null_ _null_ _null_ varchartypmodin _null_ _null_ _null_ )); -DESCR("I/O typmod"); -DATA(insert OID = 2916 ( varchartypmodout PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2275 "23" _null_ _null_ _null_ _null_ _null_ varchartypmodout _null_ _null_ _null_ )); -DESCR("I/O typmod"); -DATA(insert OID = 1048 ( bpchareq PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "1042 1042" _null_ _null_ _null_ _null_ _null_ bpchareq _null_ _null_ _null_ )); -DATA(insert OID = 1049 ( bpcharlt PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "1042 1042" _null_ _null_ _null_ _null_ _null_ bpcharlt _null_ _null_ _null_ )); -DATA(insert OID = 1050 ( bpcharle PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "1042 1042" _null_ _null_ _null_ _null_ _null_ bpcharle _null_ _null_ _null_ )); -DATA(insert OID = 1051 ( bpchargt PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "1042 1042" _null_ _null_ _null_ _null_ _null_ bpchargt _null_ _null_ _null_ )); -DATA(insert OID = 1052 ( bpcharge PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "1042 1042" _null_ _null_ _null_ _null_ _null_ bpcharge _null_ _null_ _null_ )); -DATA(insert OID = 1053 ( bpcharne PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "1042 1042" _null_ _null_ _null_ _null_ _null_ bpcharne _null_ _null_ _null_ )); -DATA(insert OID = 1063 ( bpchar_larger PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1042 "1042 1042" _null_ _null_ _null_ _null_ _null_ bpchar_larger _null_ _null_ _null_ )); -DESCR("larger of two"); -DATA(insert OID = 1064 ( bpchar_smaller PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1042 "1042 1042" _null_ _null_ _null_ _null_ _null_ bpchar_smaller _null_ _null_ _null_ )); -DESCR("smaller of two"); -DATA(insert OID = 1078 ( bpcharcmp PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "1042 1042" _null_ _null_ _null_ _null_ _null_ bpcharcmp _null_ _null_ _null_ )); -DESCR("less-equal-greater"); -DATA(insert OID = 3328 ( bpchar_sortsupport PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2278 "2281" _null_ _null_ _null_ _null_ _null_ bpchar_sortsupport _null_ _null_ _null_ )); -DESCR("sort support"); -DATA(insert OID = 1080 ( hashbpchar PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "1042" _null_ _null_ _null_ _null_ _null_ hashbpchar _null_ _null_ _null_ )); -DESCR("hash"); -DATA(insert OID = 972 ( hashbpcharextended PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 20 "1042 20" _null_ _null_ _null_ _null_ _null_ hashbpcharextended _null_ _null_ _null_ )); -DESCR("hash"); -DATA(insert OID = 1081 ( format_type PGNSP PGUID 12 1 0 0 0 f f f f f s s 2 0 25 "26 23" _null_ _null_ _null_ _null_ _null_ format_type _null_ _null_ _null_ )); -DESCR("format a type oid and atttypmod to canonical SQL"); -DATA(insert OID = 1084 ( date_in PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 1082 "2275" _null_ _null_ _null_ _null_ _null_ date_in _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 1085 ( date_out PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 2275 "1082" _null_ _null_ _null_ _null_ _null_ date_out _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 1086 ( date_eq PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "1082 1082" _null_ _null_ _null_ _null_ _null_ date_eq _null_ _null_ _null_ )); -DATA(insert OID = 1087 ( date_lt PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "1082 1082" _null_ _null_ _null_ _null_ _null_ date_lt _null_ _null_ _null_ )); -DATA(insert OID = 1088 ( date_le PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "1082 1082" _null_ _null_ _null_ _null_ _null_ date_le _null_ _null_ _null_ )); -DATA(insert OID = 1089 ( date_gt PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "1082 1082" _null_ _null_ _null_ _null_ _null_ date_gt _null_ _null_ _null_ )); -DATA(insert OID = 1090 ( date_ge PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "1082 1082" _null_ _null_ _null_ _null_ _null_ date_ge _null_ _null_ _null_ )); -DATA(insert OID = 1091 ( date_ne PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "1082 1082" _null_ _null_ _null_ _null_ _null_ date_ne _null_ _null_ _null_ )); -DATA(insert OID = 1092 ( date_cmp PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "1082 1082" _null_ _null_ _null_ _null_ _null_ date_cmp _null_ _null_ _null_ )); -DESCR("less-equal-greater"); -DATA(insert OID = 3136 ( date_sortsupport PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2278 "2281" _null_ _null_ _null_ _null_ _null_ date_sortsupport _null_ _null_ _null_ )); -DESCR("sort support"); -DATA(insert OID = 4133 ( in_range PGNSP PGUID 12 1 0 0 0 f f f t f i s 5 0 16 "1082 1082 1186 16 16" _null_ _null_ _null_ _null_ _null_ in_range_date_interval _null_ _null_ _null_ )); -DESCR("window RANGE support"); - -/* OIDS 1100 - 1199 */ - -DATA(insert OID = 1102 ( time_lt PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "1083 1083" _null_ _null_ _null_ _null_ _null_ time_lt _null_ _null_ _null_ )); -DATA(insert OID = 1103 ( time_le PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "1083 1083" _null_ _null_ _null_ _null_ _null_ time_le _null_ _null_ _null_ )); -DATA(insert OID = 1104 ( time_gt PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "1083 1083" _null_ _null_ _null_ _null_ _null_ time_gt _null_ _null_ _null_ )); -DATA(insert OID = 1105 ( time_ge PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "1083 1083" _null_ _null_ _null_ _null_ _null_ time_ge _null_ _null_ _null_ )); -DATA(insert OID = 1106 ( time_ne PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "1083 1083" _null_ _null_ _null_ _null_ _null_ time_ne _null_ _null_ _null_ )); -DATA(insert OID = 1107 ( time_cmp PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "1083 1083" _null_ _null_ _null_ _null_ _null_ time_cmp _null_ _null_ _null_ )); -DESCR("less-equal-greater"); -DATA(insert OID = 1138 ( date_larger PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1082 "1082 1082" _null_ _null_ _null_ _null_ _null_ date_larger _null_ _null_ _null_ )); -DESCR("larger of two"); -DATA(insert OID = 1139 ( date_smaller PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1082 "1082 1082" _null_ _null_ _null_ _null_ _null_ date_smaller _null_ _null_ _null_ )); -DESCR("smaller of two"); -DATA(insert OID = 1140 ( date_mi PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "1082 1082" _null_ _null_ _null_ _null_ _null_ date_mi _null_ _null_ _null_ )); -DATA(insert OID = 1141 ( date_pli PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1082 "1082 23" _null_ _null_ _null_ _null_ _null_ date_pli _null_ _null_ _null_ )); -DATA(insert OID = 1142 ( date_mii PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1082 "1082 23" _null_ _null_ _null_ _null_ _null_ date_mii _null_ _null_ _null_ )); -DATA(insert OID = 1143 ( time_in PGNSP PGUID 12 1 0 0 0 f f f t f s s 3 0 1083 "2275 26 23" _null_ _null_ _null_ _null_ _null_ time_in _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 1144 ( time_out PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2275 "1083" _null_ _null_ _null_ _null_ _null_ time_out _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2909 ( timetypmodin PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "1263" _null_ _null_ _null_ _null_ _null_ timetypmodin _null_ _null_ _null_ )); -DESCR("I/O typmod"); -DATA(insert OID = 2910 ( timetypmodout PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2275 "23" _null_ _null_ _null_ _null_ _null_ timetypmodout _null_ _null_ _null_ )); -DESCR("I/O typmod"); -DATA(insert OID = 1145 ( time_eq PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "1083 1083" _null_ _null_ _null_ _null_ _null_ time_eq _null_ _null_ _null_ )); - -DATA(insert OID = 1146 ( circle_add_pt PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 718 "718 600" _null_ _null_ _null_ _null_ _null_ circle_add_pt _null_ _null_ _null_ )); -DATA(insert OID = 1147 ( circle_sub_pt PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 718 "718 600" _null_ _null_ _null_ _null_ _null_ circle_sub_pt _null_ _null_ _null_ )); -DATA(insert OID = 1148 ( circle_mul_pt PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 718 "718 600" _null_ _null_ _null_ _null_ _null_ circle_mul_pt _null_ _null_ _null_ )); -DATA(insert OID = 1149 ( circle_div_pt PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 718 "718 600" _null_ _null_ _null_ _null_ _null_ circle_div_pt _null_ _null_ _null_ )); - -DATA(insert OID = 1150 ( timestamptz_in PGNSP PGUID 12 1 0 0 0 f f f t f s s 3 0 1184 "2275 26 23" _null_ _null_ _null_ _null_ _null_ timestamptz_in _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 1151 ( timestamptz_out PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 2275 "1184" _null_ _null_ _null_ _null_ _null_ timestamptz_out _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2907 ( timestamptztypmodin PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "1263" _null_ _null_ _null_ _null_ _null_ timestamptztypmodin _null_ _null_ _null_ )); -DESCR("I/O typmod"); -DATA(insert OID = 2908 ( timestamptztypmodout PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2275 "23" _null_ _null_ _null_ _null_ _null_ timestamptztypmodout _null_ _null_ _null_ )); -DESCR("I/O typmod"); -DATA(insert OID = 1152 ( timestamptz_eq PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "1184 1184" _null_ _null_ _null_ _null_ _null_ timestamp_eq _null_ _null_ _null_ )); -DATA(insert OID = 1153 ( timestamptz_ne PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "1184 1184" _null_ _null_ _null_ _null_ _null_ timestamp_ne _null_ _null_ _null_ )); -DATA(insert OID = 1154 ( timestamptz_lt PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "1184 1184" _null_ _null_ _null_ _null_ _null_ timestamp_lt _null_ _null_ _null_ )); -DATA(insert OID = 1155 ( timestamptz_le PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "1184 1184" _null_ _null_ _null_ _null_ _null_ timestamp_le _null_ _null_ _null_ )); -DATA(insert OID = 1156 ( timestamptz_ge PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "1184 1184" _null_ _null_ _null_ _null_ _null_ timestamp_ge _null_ _null_ _null_ )); -DATA(insert OID = 1157 ( timestamptz_gt PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "1184 1184" _null_ _null_ _null_ _null_ _null_ timestamp_gt _null_ _null_ _null_ )); -DATA(insert OID = 1158 ( to_timestamp PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 1184 "701" _null_ _null_ _null_ _null_ _null_ float8_timestamptz _null_ _null_ _null_ )); -DESCR("convert UNIX epoch to timestamptz"); -DATA(insert OID = 3995 ( timestamp_zone_transform PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2281 "2281" _null_ _null_ _null_ _null_ _null_ timestamp_zone_transform _null_ _null_ _null_ )); -DESCR("transform a time zone adjustment"); -DATA(insert OID = 1159 ( timezone PGNSP PGUID 12 1 0 0 timestamp_zone_transform f f f t f i s 2 0 1114 "25 1184" _null_ _null_ _null_ _null_ _null_ timestamptz_zone _null_ _null_ _null_ )); -DESCR("adjust timestamp to new time zone"); - -DATA(insert OID = 1160 ( interval_in PGNSP PGUID 12 1 0 0 0 f f f t f s s 3 0 1186 "2275 26 23" _null_ _null_ _null_ _null_ _null_ interval_in _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 1161 ( interval_out PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2275 "1186" _null_ _null_ _null_ _null_ _null_ interval_out _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2903 ( intervaltypmodin PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "1263" _null_ _null_ _null_ _null_ _null_ intervaltypmodin _null_ _null_ _null_ )); -DESCR("I/O typmod"); -DATA(insert OID = 2904 ( intervaltypmodout PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2275 "23" _null_ _null_ _null_ _null_ _null_ intervaltypmodout _null_ _null_ _null_ )); -DESCR("I/O typmod"); -DATA(insert OID = 1162 ( interval_eq PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "1186 1186" _null_ _null_ _null_ _null_ _null_ interval_eq _null_ _null_ _null_ )); -DATA(insert OID = 1163 ( interval_ne PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "1186 1186" _null_ _null_ _null_ _null_ _null_ interval_ne _null_ _null_ _null_ )); -DATA(insert OID = 1164 ( interval_lt PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "1186 1186" _null_ _null_ _null_ _null_ _null_ interval_lt _null_ _null_ _null_ )); -DATA(insert OID = 1165 ( interval_le PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "1186 1186" _null_ _null_ _null_ _null_ _null_ interval_le _null_ _null_ _null_ )); -DATA(insert OID = 1166 ( interval_ge PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "1186 1186" _null_ _null_ _null_ _null_ _null_ interval_ge _null_ _null_ _null_ )); -DATA(insert OID = 1167 ( interval_gt PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "1186 1186" _null_ _null_ _null_ _null_ _null_ interval_gt _null_ _null_ _null_ )); -DATA(insert OID = 1168 ( interval_um PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 1186 "1186" _null_ _null_ _null_ _null_ _null_ interval_um _null_ _null_ _null_ )); -DATA(insert OID = 1169 ( interval_pl PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1186 "1186 1186" _null_ _null_ _null_ _null_ _null_ interval_pl _null_ _null_ _null_ )); -DATA(insert OID = 1170 ( interval_mi PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1186 "1186 1186" _null_ _null_ _null_ _null_ _null_ interval_mi _null_ _null_ _null_ )); -DATA(insert OID = 1171 ( date_part PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 701 "25 1184" _null_ _null_ _null_ _null_ _null_ timestamptz_part _null_ _null_ _null_ )); -DESCR("extract field from timestamp with time zone"); -DATA(insert OID = 1172 ( date_part PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 701 "25 1186" _null_ _null_ _null_ _null_ _null_ interval_part _null_ _null_ _null_ )); -DESCR("extract field from interval"); -DATA(insert OID = 1173 ( timestamptz PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 1184 "702" _null_ _null_ _null_ _null_ _null_ abstime_timestamptz _null_ _null_ _null_ )); -DESCR("convert abstime to timestamp with time zone"); -DATA(insert OID = 1174 ( timestamptz PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 1184 "1082" _null_ _null_ _null_ _null_ _null_ date_timestamptz _null_ _null_ _null_ )); -DESCR("convert date to timestamp with time zone"); -DATA(insert OID = 2711 ( justify_interval PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 1186 "1186" _null_ _null_ _null_ _null_ _null_ interval_justify_interval _null_ _null_ _null_ )); -DESCR("promote groups of 24 hours to numbers of days and promote groups of 30 days to numbers of months"); -DATA(insert OID = 1175 ( justify_hours PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 1186 "1186" _null_ _null_ _null_ _null_ _null_ interval_justify_hours _null_ _null_ _null_ )); -DESCR("promote groups of 24 hours to numbers of days"); -DATA(insert OID = 1295 ( justify_days PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 1186 "1186" _null_ _null_ _null_ _null_ _null_ interval_justify_days _null_ _null_ _null_ )); -DESCR("promote groups of 30 days to numbers of months"); -DATA(insert OID = 1176 ( timestamptz PGNSP PGUID 14 1 0 0 0 f f f t f s s 2 0 1184 "1082 1083" _null_ _null_ _null_ _null_ _null_ "select cast(($1 + $2) as timestamp with time zone)" _null_ _null_ _null_ )); -DESCR("convert date and time to timestamp with time zone"); -DATA(insert OID = 1177 ( interval PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 1186 "703" _null_ _null_ _null_ _null_ _null_ reltime_interval _null_ _null_ _null_ )); -DESCR("convert reltime to interval"); -DATA(insert OID = 1178 ( date PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 1082 "1184" _null_ _null_ _null_ _null_ _null_ timestamptz_date _null_ _null_ _null_ )); -DESCR("convert timestamp with time zone to date"); -DATA(insert OID = 1179 ( date PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 1082 "702" _null_ _null_ _null_ _null_ _null_ abstime_date _null_ _null_ _null_ )); -DESCR("convert abstime to date"); -DATA(insert OID = 1180 ( abstime PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 702 "1184" _null_ _null_ _null_ _null_ _null_ timestamptz_abstime _null_ _null_ _null_ )); -DESCR("convert timestamp with time zone to abstime"); -DATA(insert OID = 1181 ( age PGNSP PGUID 12 1 0 0 0 f f f t f s r 1 0 23 "28" _null_ _null_ _null_ _null_ _null_ xid_age _null_ _null_ _null_ )); -DESCR("age of a transaction ID, in transactions before current transaction"); -DATA(insert OID = 3939 ( mxid_age PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 23 "28" _null_ _null_ _null_ _null_ _null_ mxid_age _null_ _null_ _null_ )); -DESCR("age of a multi-transaction ID, in multi-transactions before current multi-transaction"); - -DATA(insert OID = 1188 ( timestamptz_mi PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1186 "1184 1184" _null_ _null_ _null_ _null_ _null_ timestamp_mi _null_ _null_ _null_ )); -DATA(insert OID = 1189 ( timestamptz_pl_interval PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 1184 "1184 1186" _null_ _null_ _null_ _null_ _null_ timestamptz_pl_interval _null_ _null_ _null_ )); -DATA(insert OID = 1190 ( timestamptz_mi_interval PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 1184 "1184 1186" _null_ _null_ _null_ _null_ _null_ timestamptz_mi_interval _null_ _null_ _null_ )); -DATA(insert OID = 1194 ( reltime PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 703 "1186" _null_ _null_ _null_ _null_ _null_ interval_reltime _null_ _null_ _null_ )); -DESCR("convert interval to reltime"); -DATA(insert OID = 1195 ( timestamptz_smaller PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1184 "1184 1184" _null_ _null_ _null_ _null_ _null_ timestamp_smaller _null_ _null_ _null_ )); -DESCR("smaller of two"); -DATA(insert OID = 1196 ( timestamptz_larger PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1184 "1184 1184" _null_ _null_ _null_ _null_ _null_ timestamp_larger _null_ _null_ _null_ )); -DESCR("larger of two"); -DATA(insert OID = 1197 ( interval_smaller PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1186 "1186 1186" _null_ _null_ _null_ _null_ _null_ interval_smaller _null_ _null_ _null_ )); -DESCR("smaller of two"); -DATA(insert OID = 1198 ( interval_larger PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1186 "1186 1186" _null_ _null_ _null_ _null_ _null_ interval_larger _null_ _null_ _null_ )); -DESCR("larger of two"); -DATA(insert OID = 1199 ( age PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1186 "1184 1184" _null_ _null_ _null_ _null_ _null_ timestamptz_age _null_ _null_ _null_ )); -DESCR("date difference preserving months and years"); - -/* OIDS 1200 - 1299 */ - -DATA(insert OID = 3918 ( interval_transform PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2281 "2281" _null_ _null_ _null_ _null_ _null_ interval_transform _null_ _null_ _null_ )); -DESCR("transform an interval length coercion"); -DATA(insert OID = 1200 ( interval PGNSP PGUID 12 1 0 0 interval_transform f f f t f i s 2 0 1186 "1186 23" _null_ _null_ _null_ _null_ _null_ interval_scale _null_ _null_ _null_ )); -DESCR("adjust interval precision"); - -DATA(insert OID = 1215 ( obj_description PGNSP PGUID 14 100 0 0 0 f f f t f s s 2 0 25 "26 19" _null_ _null_ _null_ _null_ _null_ "select description from pg_catalog.pg_description where objoid = $1 and classoid = (select oid from pg_catalog.pg_class where relname = $2 and relnamespace = PGNSP) and objsubid = 0" _null_ _null_ _null_ )); -DESCR("get description for object id and catalog name"); -DATA(insert OID = 1216 ( col_description PGNSP PGUID 14 100 0 0 0 f f f t f s s 2 0 25 "26 23" _null_ _null_ _null_ _null_ _null_ "select description from pg_catalog.pg_description where objoid = $1 and classoid = ''pg_catalog.pg_class''::pg_catalog.regclass and objsubid = $2" _null_ _null_ _null_ )); -DESCR("get description for table column"); -DATA(insert OID = 1993 ( shobj_description PGNSP PGUID 14 100 0 0 0 f f f t f s s 2 0 25 "26 19" _null_ _null_ _null_ _null_ _null_ "select description from pg_catalog.pg_shdescription where objoid = $1 and classoid = (select oid from pg_catalog.pg_class where relname = $2 and relnamespace = PGNSP)" _null_ _null_ _null_ )); -DESCR("get description for object id and shared catalog name"); - -DATA(insert OID = 1217 ( date_trunc PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 1184 "25 1184" _null_ _null_ _null_ _null_ _null_ timestamptz_trunc _null_ _null_ _null_ )); -DESCR("truncate timestamp with time zone to specified units"); -DATA(insert OID = 1218 ( date_trunc PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1186 "25 1186" _null_ _null_ _null_ _null_ _null_ interval_trunc _null_ _null_ _null_ )); -DESCR("truncate interval to specified units"); - -DATA(insert OID = 1219 ( int8inc PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 20 "20" _null_ _null_ _null_ _null_ _null_ int8inc _null_ _null_ _null_ )); -DESCR("increment"); -DATA(insert OID = 3546 ( int8dec PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 20 "20" _null_ _null_ _null_ _null_ _null_ int8dec _null_ _null_ _null_ )); -DESCR("decrement"); -DATA(insert OID = 2804 ( int8inc_any PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 20 "20 2276" _null_ _null_ _null_ _null_ _null_ int8inc_any _null_ _null_ _null_ )); -DESCR("increment, ignores second argument"); -DATA(insert OID = 3547 ( int8dec_any PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 20 "20 2276" _null_ _null_ _null_ _null_ _null_ int8dec_any _null_ _null_ _null_ )); -DESCR("decrement, ignores second argument"); -DATA(insert OID = 1230 ( int8abs PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 20 "20" _null_ _null_ _null_ _null_ _null_ int8abs _null_ _null_ _null_ )); - -DATA(insert OID = 1236 ( int8larger PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 20 "20 20" _null_ _null_ _null_ _null_ _null_ int8larger _null_ _null_ _null_ )); -DESCR("larger of two"); -DATA(insert OID = 1237 ( int8smaller PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 20 "20 20" _null_ _null_ _null_ _null_ _null_ int8smaller _null_ _null_ _null_ )); -DESCR("smaller of two"); - -DATA(insert OID = 1238 ( texticregexeq PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "25 25" _null_ _null_ _null_ _null_ _null_ texticregexeq _null_ _null_ _null_ )); -DATA(insert OID = 1239 ( texticregexne PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "25 25" _null_ _null_ _null_ _null_ _null_ texticregexne _null_ _null_ _null_ )); -DATA(insert OID = 1240 ( nameicregexeq PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "19 25" _null_ _null_ _null_ _null_ _null_ nameicregexeq _null_ _null_ _null_ )); -DATA(insert OID = 1241 ( nameicregexne PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "19 25" _null_ _null_ _null_ _null_ _null_ nameicregexne _null_ _null_ _null_ )); - -DATA(insert OID = 1251 ( int4abs PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "23" _null_ _null_ _null_ _null_ _null_ int4abs _null_ _null_ _null_ )); -DATA(insert OID = 1253 ( int2abs PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 21 "21" _null_ _null_ _null_ _null_ _null_ int2abs _null_ _null_ _null_ )); - -DATA(insert OID = 1271 ( overlaps PGNSP PGUID 12 1 0 0 0 f f f f f i s 4 0 16 "1266 1266 1266 1266" _null_ _null_ _null_ _null_ _null_ overlaps_timetz _null_ _null_ _null_ )); -DESCR("intervals overlap?"); -DATA(insert OID = 1272 ( datetime_pl PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1114 "1082 1083" _null_ _null_ _null_ _null_ _null_ datetime_timestamp _null_ _null_ _null_ )); -DATA(insert OID = 1273 ( date_part PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 701 "25 1266" _null_ _null_ _null_ _null_ _null_ timetz_part _null_ _null_ _null_ )); -DESCR("extract field from time with time zone"); -DATA(insert OID = 1274 ( int84pl PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 20 "20 23" _null_ _null_ _null_ _null_ _null_ int84pl _null_ _null_ _null_ )); -DATA(insert OID = 1275 ( int84mi PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 20 "20 23" _null_ _null_ _null_ _null_ _null_ int84mi _null_ _null_ _null_ )); -DATA(insert OID = 1276 ( int84mul PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 20 "20 23" _null_ _null_ _null_ _null_ _null_ int84mul _null_ _null_ _null_ )); -DATA(insert OID = 1277 ( int84div PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 20 "20 23" _null_ _null_ _null_ _null_ _null_ int84div _null_ _null_ _null_ )); -DATA(insert OID = 1278 ( int48pl PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 20 "23 20" _null_ _null_ _null_ _null_ _null_ int48pl _null_ _null_ _null_ )); -DATA(insert OID = 1279 ( int48mi PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 20 "23 20" _null_ _null_ _null_ _null_ _null_ int48mi _null_ _null_ _null_ )); -DATA(insert OID = 1280 ( int48mul PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 20 "23 20" _null_ _null_ _null_ _null_ _null_ int48mul _null_ _null_ _null_ )); -DATA(insert OID = 1281 ( int48div PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 20 "23 20" _null_ _null_ _null_ _null_ _null_ int48div _null_ _null_ _null_ )); - -DATA(insert OID = 837 ( int82pl PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 20 "20 21" _null_ _null_ _null_ _null_ _null_ int82pl _null_ _null_ _null_ )); -DATA(insert OID = 838 ( int82mi PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 20 "20 21" _null_ _null_ _null_ _null_ _null_ int82mi _null_ _null_ _null_ )); -DATA(insert OID = 839 ( int82mul PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 20 "20 21" _null_ _null_ _null_ _null_ _null_ int82mul _null_ _null_ _null_ )); -DATA(insert OID = 840 ( int82div PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 20 "20 21" _null_ _null_ _null_ _null_ _null_ int82div _null_ _null_ _null_ )); -DATA(insert OID = 841 ( int28pl PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 20 "21 20" _null_ _null_ _null_ _null_ _null_ int28pl _null_ _null_ _null_ )); -DATA(insert OID = 942 ( int28mi PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 20 "21 20" _null_ _null_ _null_ _null_ _null_ int28mi _null_ _null_ _null_ )); -DATA(insert OID = 943 ( int28mul PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 20 "21 20" _null_ _null_ _null_ _null_ _null_ int28mul _null_ _null_ _null_ )); -DATA(insert OID = 948 ( int28div PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 20 "21 20" _null_ _null_ _null_ _null_ _null_ int28div _null_ _null_ _null_ )); - -DATA(insert OID = 1287 ( oid PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 26 "20" _null_ _null_ _null_ _null_ _null_ i8tooid _null_ _null_ _null_ )); -DESCR("convert int8 to oid"); -DATA(insert OID = 1288 ( int8 PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 20 "26" _null_ _null_ _null_ _null_ _null_ oidtoi8 _null_ _null_ _null_ )); -DESCR("convert oid to int8"); - -DATA(insert OID = 1291 ( suppress_redundant_updates_trigger PGNSP PGUID 12 1 0 0 0 f f f t f v s 0 0 2279 "" _null_ _null_ _null_ _null_ _null_ suppress_redundant_updates_trigger _null_ _null_ _null_ )); -DESCR("trigger to suppress updates when new and old records match"); - -DATA(insert OID = 1292 ( tideq PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "27 27" _null_ _null_ _null_ _null_ _null_ tideq _null_ _null_ _null_ )); -DATA(insert OID = 1293 ( currtid PGNSP PGUID 12 1 0 0 0 f f f t f v u 2 0 27 "26 27" _null_ _null_ _null_ _null_ _null_ currtid_byreloid _null_ _null_ _null_ )); -DESCR("latest tid of a tuple"); -DATA(insert OID = 1294 ( currtid2 PGNSP PGUID 12 1 0 0 0 f f f t f v u 2 0 27 "25 27" _null_ _null_ _null_ _null_ _null_ currtid_byrelname _null_ _null_ _null_ )); -DESCR("latest tid of a tuple"); -DATA(insert OID = 1265 ( tidne PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "27 27" _null_ _null_ _null_ _null_ _null_ tidne _null_ _null_ _null_ )); -DATA(insert OID = 2790 ( tidgt PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "27 27" _null_ _null_ _null_ _null_ _null_ tidgt _null_ _null_ _null_ )); -DATA(insert OID = 2791 ( tidlt PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "27 27" _null_ _null_ _null_ _null_ _null_ tidlt _null_ _null_ _null_ )); -DATA(insert OID = 2792 ( tidge PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "27 27" _null_ _null_ _null_ _null_ _null_ tidge _null_ _null_ _null_ )); -DATA(insert OID = 2793 ( tidle PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "27 27" _null_ _null_ _null_ _null_ _null_ tidle _null_ _null_ _null_ )); -DATA(insert OID = 2794 ( bttidcmp PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "27 27" _null_ _null_ _null_ _null_ _null_ bttidcmp _null_ _null_ _null_ )); -DESCR("less-equal-greater"); -DATA(insert OID = 2795 ( tidlarger PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 27 "27 27" _null_ _null_ _null_ _null_ _null_ tidlarger _null_ _null_ _null_ )); -DESCR("larger of two"); -DATA(insert OID = 2796 ( tidsmaller PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 27 "27 27" _null_ _null_ _null_ _null_ _null_ tidsmaller _null_ _null_ _null_ )); -DESCR("smaller of two"); - -DATA(insert OID = 1296 ( timedate_pl PGNSP PGUID 14 1 0 0 0 f f f t f i s 2 0 1114 "1083 1082" _null_ _null_ _null_ _null_ _null_ "select ($2 + $1)" _null_ _null_ _null_ )); -DATA(insert OID = 1297 ( datetimetz_pl PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1184 "1082 1266" _null_ _null_ _null_ _null_ _null_ datetimetz_timestamptz _null_ _null_ _null_ )); -DATA(insert OID = 1298 ( timetzdate_pl PGNSP PGUID 14 1 0 0 0 f f f t f i s 2 0 1184 "1266 1082" _null_ _null_ _null_ _null_ _null_ "select ($2 + $1)" _null_ _null_ _null_ )); -DATA(insert OID = 1299 ( now PGNSP PGUID 12 1 0 0 0 f f f t f s r 0 0 1184 "" _null_ _null_ _null_ _null_ _null_ now _null_ _null_ _null_ )); -DESCR("current transaction time"); -DATA(insert OID = 2647 ( transaction_timestamp PGNSP PGUID 12 1 0 0 0 f f f t f s s 0 0 1184 "" _null_ _null_ _null_ _null_ _null_ now _null_ _null_ _null_ )); -DESCR("current transaction time"); -DATA(insert OID = 2648 ( statement_timestamp PGNSP PGUID 12 1 0 0 0 f f f t f s r 0 0 1184 "" _null_ _null_ _null_ _null_ _null_ statement_timestamp _null_ _null_ _null_ )); -DESCR("current statement time"); -DATA(insert OID = 2649 ( clock_timestamp PGNSP PGUID 12 1 0 0 0 f f f t f v s 0 0 1184 "" _null_ _null_ _null_ _null_ _null_ clock_timestamp _null_ _null_ _null_ )); -DESCR("current clock time"); - -/* OIDS 1300 - 1399 */ - -DATA(insert OID = 1300 ( positionsel PGNSP PGUID 12 1 0 0 0 f f f t f s s 4 0 701 "2281 26 2281 23" _null_ _null_ _null_ _null_ _null_ positionsel _null_ _null_ _null_ )); -DESCR("restriction selectivity for position-comparison operators"); -DATA(insert OID = 1301 ( positionjoinsel PGNSP PGUID 12 1 0 0 0 f f f t f s s 5 0 701 "2281 26 2281 21 2281" _null_ _null_ _null_ _null_ _null_ positionjoinsel _null_ _null_ _null_ )); -DESCR("join selectivity for position-comparison operators"); -DATA(insert OID = 1302 ( contsel PGNSP PGUID 12 1 0 0 0 f f f t f s s 4 0 701 "2281 26 2281 23" _null_ _null_ _null_ _null_ _null_ contsel _null_ _null_ _null_ )); -DESCR("restriction selectivity for containment comparison operators"); -DATA(insert OID = 1303 ( contjoinsel PGNSP PGUID 12 1 0 0 0 f f f t f s s 5 0 701 "2281 26 2281 21 2281" _null_ _null_ _null_ _null_ _null_ contjoinsel _null_ _null_ _null_ )); -DESCR("join selectivity for containment comparison operators"); - -DATA(insert OID = 1304 ( overlaps PGNSP PGUID 12 1 0 0 0 f f f f f i s 4 0 16 "1184 1184 1184 1184" _null_ _null_ _null_ _null_ _null_ overlaps_timestamp _null_ _null_ _null_ )); -DESCR("intervals overlap?"); -DATA(insert OID = 1305 ( overlaps PGNSP PGUID 14 1 0 0 0 f f f f f s s 4 0 16 "1184 1186 1184 1186" _null_ _null_ _null_ _null_ _null_ "select ($1, ($1 + $2)) overlaps ($3, ($3 + $4))" _null_ _null_ _null_ )); -DESCR("intervals overlap?"); -DATA(insert OID = 1306 ( overlaps PGNSP PGUID 14 1 0 0 0 f f f f f s s 4 0 16 "1184 1184 1184 1186" _null_ _null_ _null_ _null_ _null_ "select ($1, $2) overlaps ($3, ($3 + $4))" _null_ _null_ _null_ )); -DESCR("intervals overlap?"); -DATA(insert OID = 1307 ( overlaps PGNSP PGUID 14 1 0 0 0 f f f f f s s 4 0 16 "1184 1186 1184 1184" _null_ _null_ _null_ _null_ _null_ "select ($1, ($1 + $2)) overlaps ($3, $4)" _null_ _null_ _null_ )); -DESCR("intervals overlap?"); - -DATA(insert OID = 1308 ( overlaps PGNSP PGUID 12 1 0 0 0 f f f f f i s 4 0 16 "1083 1083 1083 1083" _null_ _null_ _null_ _null_ _null_ overlaps_time _null_ _null_ _null_ )); -DESCR("intervals overlap?"); -DATA(insert OID = 1309 ( overlaps PGNSP PGUID 14 1 0 0 0 f f f f f i s 4 0 16 "1083 1186 1083 1186" _null_ _null_ _null_ _null_ _null_ "select ($1, ($1 + $2)) overlaps ($3, ($3 + $4))" _null_ _null_ _null_ )); -DESCR("intervals overlap?"); -DATA(insert OID = 1310 ( overlaps PGNSP PGUID 14 1 0 0 0 f f f f f i s 4 0 16 "1083 1083 1083 1186" _null_ _null_ _null_ _null_ _null_ "select ($1, $2) overlaps ($3, ($3 + $4))" _null_ _null_ _null_ )); -DESCR("intervals overlap?"); -DATA(insert OID = 1311 ( overlaps PGNSP PGUID 14 1 0 0 0 f f f f f i s 4 0 16 "1083 1186 1083 1083" _null_ _null_ _null_ _null_ _null_ "select ($1, ($1 + $2)) overlaps ($3, $4)" _null_ _null_ _null_ )); -DESCR("intervals overlap?"); - -DATA(insert OID = 1312 ( timestamp_in PGNSP PGUID 12 1 0 0 0 f f f t f s s 3 0 1114 "2275 26 23" _null_ _null_ _null_ _null_ _null_ timestamp_in _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 1313 ( timestamp_out PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 2275 "1114" _null_ _null_ _null_ _null_ _null_ timestamp_out _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2905 ( timestamptypmodin PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "1263" _null_ _null_ _null_ _null_ _null_ timestamptypmodin _null_ _null_ _null_ )); -DESCR("I/O typmod"); -DATA(insert OID = 2906 ( timestamptypmodout PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2275 "23" _null_ _null_ _null_ _null_ _null_ timestamptypmodout _null_ _null_ _null_ )); -DESCR("I/O typmod"); -DATA(insert OID = 1314 ( timestamptz_cmp PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "1184 1184" _null_ _null_ _null_ _null_ _null_ timestamp_cmp _null_ _null_ _null_ )); -DESCR("less-equal-greater"); -DATA(insert OID = 1315 ( interval_cmp PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "1186 1186" _null_ _null_ _null_ _null_ _null_ interval_cmp _null_ _null_ _null_ )); -DESCR("less-equal-greater"); -DATA(insert OID = 1316 ( time PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 1083 "1114" _null_ _null_ _null_ _null_ _null_ timestamp_time _null_ _null_ _null_ )); -DESCR("convert timestamp to time"); - -DATA(insert OID = 1317 ( length PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "25" _null_ _null_ _null_ _null_ _null_ textlen _null_ _null_ _null_ )); -DESCR("length"); -DATA(insert OID = 1318 ( length PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "1042" _null_ _null_ _null_ _null_ _null_ bpcharlen _null_ _null_ _null_ )); -DESCR("character length"); - -DATA(insert OID = 1319 ( xideqint4 PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "28 23" _null_ _null_ _null_ _null_ _null_ xideq _null_ _null_ _null_ )); -DATA(insert OID = 3309 ( xidneqint4 PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "28 23" _null_ _null_ _null_ _null_ _null_ xidneq _null_ _null_ _null_ )); - -DATA(insert OID = 1326 ( interval_div PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1186 "1186 701" _null_ _null_ _null_ _null_ _null_ interval_div _null_ _null_ _null_ )); - -DATA(insert OID = 1339 ( dlog10 PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 701 "701" _null_ _null_ _null_ _null_ _null_ dlog10 _null_ _null_ _null_ )); -DESCR("base 10 logarithm"); -DATA(insert OID = 1340 ( log PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 701 "701" _null_ _null_ _null_ _null_ _null_ dlog10 _null_ _null_ _null_ )); -DESCR("base 10 logarithm"); -DATA(insert OID = 1341 ( ln PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 701 "701" _null_ _null_ _null_ _null_ _null_ dlog1 _null_ _null_ _null_ )); -DESCR("natural logarithm"); -DATA(insert OID = 1342 ( round PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 701 "701" _null_ _null_ _null_ _null_ _null_ dround _null_ _null_ _null_ )); -DESCR("round to nearest integer"); -DATA(insert OID = 1343 ( trunc PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 701 "701" _null_ _null_ _null_ _null_ _null_ dtrunc _null_ _null_ _null_ )); -DESCR("truncate to integer"); -DATA(insert OID = 1344 ( sqrt PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 701 "701" _null_ _null_ _null_ _null_ _null_ dsqrt _null_ _null_ _null_ )); -DESCR("square root"); -DATA(insert OID = 1345 ( cbrt PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 701 "701" _null_ _null_ _null_ _null_ _null_ dcbrt _null_ _null_ _null_ )); -DESCR("cube root"); -DATA(insert OID = 1346 ( pow PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 701 "701 701" _null_ _null_ _null_ _null_ _null_ dpow _null_ _null_ _null_ )); -DESCR("exponentiation"); -DATA(insert OID = 1368 ( power PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 701 "701 701" _null_ _null_ _null_ _null_ _null_ dpow _null_ _null_ _null_ )); -DESCR("exponentiation"); -DATA(insert OID = 1347 ( exp PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 701 "701" _null_ _null_ _null_ _null_ _null_ dexp _null_ _null_ _null_ )); -DESCR("natural exponential (e^x)"); - -/* - * This form of obj_description is now deprecated, since it will fail if - * OIDs are not unique across system catalogs. Use the other form instead. - */ -DATA(insert OID = 1348 ( obj_description PGNSP PGUID 14 100 0 0 0 f f f t f s s 1 0 25 "26" _null_ _null_ _null_ _null_ _null_ "select description from pg_catalog.pg_description where objoid = $1 and objsubid = 0" _null_ _null_ _null_ )); -DESCR("deprecated, use two-argument form instead"); -DATA(insert OID = 1349 ( oidvectortypes PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 25 "30" _null_ _null_ _null_ _null_ _null_ oidvectortypes _null_ _null_ _null_ )); -DESCR("print type names of oidvector field"); - - -DATA(insert OID = 1350 ( timetz_in PGNSP PGUID 12 1 0 0 0 f f f t f s s 3 0 1266 "2275 26 23" _null_ _null_ _null_ _null_ _null_ timetz_in _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 1351 ( timetz_out PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2275 "1266" _null_ _null_ _null_ _null_ _null_ timetz_out _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2911 ( timetztypmodin PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "1263" _null_ _null_ _null_ _null_ _null_ timetztypmodin _null_ _null_ _null_ )); -DESCR("I/O typmod"); -DATA(insert OID = 2912 ( timetztypmodout PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2275 "23" _null_ _null_ _null_ _null_ _null_ timetztypmodout _null_ _null_ _null_ )); -DESCR("I/O typmod"); -DATA(insert OID = 1352 ( timetz_eq PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "1266 1266" _null_ _null_ _null_ _null_ _null_ timetz_eq _null_ _null_ _null_ )); -DATA(insert OID = 1353 ( timetz_ne PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "1266 1266" _null_ _null_ _null_ _null_ _null_ timetz_ne _null_ _null_ _null_ )); -DATA(insert OID = 1354 ( timetz_lt PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "1266 1266" _null_ _null_ _null_ _null_ _null_ timetz_lt _null_ _null_ _null_ )); -DATA(insert OID = 1355 ( timetz_le PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "1266 1266" _null_ _null_ _null_ _null_ _null_ timetz_le _null_ _null_ _null_ )); -DATA(insert OID = 1356 ( timetz_ge PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "1266 1266" _null_ _null_ _null_ _null_ _null_ timetz_ge _null_ _null_ _null_ )); -DATA(insert OID = 1357 ( timetz_gt PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "1266 1266" _null_ _null_ _null_ _null_ _null_ timetz_gt _null_ _null_ _null_ )); -DATA(insert OID = 1358 ( timetz_cmp PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "1266 1266" _null_ _null_ _null_ _null_ _null_ timetz_cmp _null_ _null_ _null_ )); -DESCR("less-equal-greater"); -DATA(insert OID = 1359 ( timestamptz PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1184 "1082 1266" _null_ _null_ _null_ _null_ _null_ datetimetz_timestamptz _null_ _null_ _null_ )); -DESCR("convert date and time with time zone to timestamp with time zone"); - -DATA(insert OID = 1364 ( time PGNSP PGUID 14 1 0 0 0 f f f t f s s 1 0 1083 "702" _null_ _null_ _null_ _null_ _null_ "select cast(cast($1 as timestamp without time zone) as pg_catalog.time)" _null_ _null_ _null_ )); -DESCR("convert abstime to time"); - -DATA(insert OID = 1367 ( character_length PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "1042" _null_ _null_ _null_ _null_ _null_ bpcharlen _null_ _null_ _null_ )); -DESCR("character length"); -DATA(insert OID = 1369 ( character_length PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "25" _null_ _null_ _null_ _null_ _null_ textlen _null_ _null_ _null_ )); -DESCR("character length"); - -DATA(insert OID = 1370 ( interval PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 1186 "1083" _null_ _null_ _null_ _null_ _null_ time_interval _null_ _null_ _null_ )); -DESCR("convert time to interval"); -DATA(insert OID = 1372 ( char_length PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "1042" _null_ _null_ _null_ _null_ _null_ bpcharlen _null_ _null_ _null_ )); -DESCR("character length"); -DATA(insert OID = 1374 ( octet_length PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "25" _null_ _null_ _null_ _null_ _null_ textoctetlen _null_ _null_ _null_ )); -DESCR("octet length"); -DATA(insert OID = 1375 ( octet_length PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "1042" _null_ _null_ _null_ _null_ _null_ bpcharoctetlen _null_ _null_ _null_ )); -DESCR("octet length"); - -DATA(insert OID = 1377 ( time_larger PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1083 "1083 1083" _null_ _null_ _null_ _null_ _null_ time_larger _null_ _null_ _null_ )); -DESCR("larger of two"); -DATA(insert OID = 1378 ( time_smaller PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1083 "1083 1083" _null_ _null_ _null_ _null_ _null_ time_smaller _null_ _null_ _null_ )); -DESCR("smaller of two"); -DATA(insert OID = 1379 ( timetz_larger PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1266 "1266 1266" _null_ _null_ _null_ _null_ _null_ timetz_larger _null_ _null_ _null_ )); -DESCR("larger of two"); -DATA(insert OID = 1380 ( timetz_smaller PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1266 "1266 1266" _null_ _null_ _null_ _null_ _null_ timetz_smaller _null_ _null_ _null_ )); -DESCR("smaller of two"); - -DATA(insert OID = 1381 ( char_length PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "25" _null_ _null_ _null_ _null_ _null_ textlen _null_ _null_ _null_ )); -DESCR("character length"); - -DATA(insert OID = 1382 ( date_part PGNSP PGUID 14 1 0 0 0 f f f t f s s 2 0 701 "25 702" _null_ _null_ _null_ _null_ _null_ "select pg_catalog.date_part($1, cast($2 as timestamp with time zone))" _null_ _null_ _null_ )); -DESCR("extract field from abstime"); -DATA(insert OID = 1383 ( date_part PGNSP PGUID 14 1 0 0 0 f f f t f s s 2 0 701 "25 703" _null_ _null_ _null_ _null_ _null_ "select pg_catalog.date_part($1, cast($2 as pg_catalog.interval))" _null_ _null_ _null_ )); -DESCR("extract field from reltime"); -DATA(insert OID = 1384 ( date_part PGNSP PGUID 14 1 0 0 0 f f f t f i s 2 0 701 "25 1082" _null_ _null_ _null_ _null_ _null_ "select pg_catalog.date_part($1, cast($2 as timestamp without time zone))" _null_ _null_ _null_ )); -DESCR("extract field from date"); -DATA(insert OID = 1385 ( date_part PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 701 "25 1083" _null_ _null_ _null_ _null_ _null_ time_part _null_ _null_ _null_ )); -DESCR("extract field from time"); -DATA(insert OID = 1386 ( age PGNSP PGUID 14 1 0 0 0 f f f t f s s 1 0 1186 "1184" _null_ _null_ _null_ _null_ _null_ "select pg_catalog.age(cast(current_date as timestamp with time zone), $1)" _null_ _null_ _null_ )); -DESCR("date difference from today preserving months and years"); - -DATA(insert OID = 1388 ( timetz PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 1266 "1184" _null_ _null_ _null_ _null_ _null_ timestamptz_timetz _null_ _null_ _null_ )); -DESCR("convert timestamp with time zone to time with time zone"); - -DATA(insert OID = 1373 ( isfinite PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 16 "1082" _null_ _null_ _null_ _null_ _null_ date_finite _null_ _null_ _null_ )); -DESCR("finite date?"); -DATA(insert OID = 1389 ( isfinite PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 16 "1184" _null_ _null_ _null_ _null_ _null_ timestamp_finite _null_ _null_ _null_ )); -DESCR("finite timestamp?"); -DATA(insert OID = 1390 ( isfinite PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 16 "1186" _null_ _null_ _null_ _null_ _null_ interval_finite _null_ _null_ _null_ )); -DESCR("finite interval?"); - - -DATA(insert OID = 1376 ( factorial PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 1700 "20" _null_ _null_ _null_ _null_ _null_ numeric_fac _null_ _null_ _null_ )); -DESCR("factorial"); -DATA(insert OID = 1394 ( abs PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 700 "700" _null_ _null_ _null_ _null_ _null_ float4abs _null_ _null_ _null_ )); -DESCR("absolute value"); -DATA(insert OID = 1395 ( abs PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 701 "701" _null_ _null_ _null_ _null_ _null_ float8abs _null_ _null_ _null_ )); -DESCR("absolute value"); -DATA(insert OID = 1396 ( abs PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 20 "20" _null_ _null_ _null_ _null_ _null_ int8abs _null_ _null_ _null_ )); -DESCR("absolute value"); -DATA(insert OID = 1397 ( abs PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "23" _null_ _null_ _null_ _null_ _null_ int4abs _null_ _null_ _null_ )); -DESCR("absolute value"); -DATA(insert OID = 1398 ( abs PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 21 "21" _null_ _null_ _null_ _null_ _null_ int2abs _null_ _null_ _null_ )); -DESCR("absolute value"); - -/* OIDS 1400 - 1499 */ - -DATA(insert OID = 1400 ( name PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 19 "1043" _null_ _null_ _null_ _null_ _null_ text_name _null_ _null_ _null_ )); -DESCR("convert varchar to name"); -DATA(insert OID = 1401 ( varchar PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 1043 "19" _null_ _null_ _null_ _null_ _null_ name_text _null_ _null_ _null_ )); -DESCR("convert name to varchar"); - -DATA(insert OID = 1402 ( current_schema PGNSP PGUID 12 1 0 0 0 f f f t f s s 0 0 19 "" _null_ _null_ _null_ _null_ _null_ current_schema _null_ _null_ _null_ )); -DESCR("current schema name"); -DATA(insert OID = 1403 ( current_schemas PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 1003 "16" _null_ _null_ _null_ _null_ _null_ current_schemas _null_ _null_ _null_ )); -DESCR("current schema search list"); - -DATA(insert OID = 1404 ( overlay PGNSP PGUID 12 1 0 0 0 f f f t f i s 4 0 25 "25 25 23 23" _null_ _null_ _null_ _null_ _null_ textoverlay _null_ _null_ _null_ )); -DESCR("substitute portion of string"); -DATA(insert OID = 1405 ( overlay PGNSP PGUID 12 1 0 0 0 f f f t f i s 3 0 25 "25 25 23" _null_ _null_ _null_ _null_ _null_ textoverlay_no_len _null_ _null_ _null_ )); -DESCR("substitute portion of string"); - -DATA(insert OID = 1406 ( isvertical PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "600 600" _null_ _null_ _null_ _null_ _null_ point_vert _null_ _null_ _null_ )); -DESCR("vertically aligned"); -DATA(insert OID = 1407 ( ishorizontal PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "600 600" _null_ _null_ _null_ _null_ _null_ point_horiz _null_ _null_ _null_ )); -DESCR("horizontally aligned"); -DATA(insert OID = 1408 ( isparallel PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "601 601" _null_ _null_ _null_ _null_ _null_ lseg_parallel _null_ _null_ _null_ )); -DESCR("parallel"); -DATA(insert OID = 1409 ( isperp PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "601 601" _null_ _null_ _null_ _null_ _null_ lseg_perp _null_ _null_ _null_ )); -DESCR("perpendicular"); -DATA(insert OID = 1410 ( isvertical PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 16 "601" _null_ _null_ _null_ _null_ _null_ lseg_vertical _null_ _null_ _null_ )); -DESCR("vertical"); -DATA(insert OID = 1411 ( ishorizontal PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 16 "601" _null_ _null_ _null_ _null_ _null_ lseg_horizontal _null_ _null_ _null_ )); -DESCR("horizontal"); -DATA(insert OID = 1412 ( isparallel PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "628 628" _null_ _null_ _null_ _null_ _null_ line_parallel _null_ _null_ _null_ )); -DESCR("parallel"); -DATA(insert OID = 1413 ( isperp PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "628 628" _null_ _null_ _null_ _null_ _null_ line_perp _null_ _null_ _null_ )); -DESCR("perpendicular"); -DATA(insert OID = 1414 ( isvertical PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 16 "628" _null_ _null_ _null_ _null_ _null_ line_vertical _null_ _null_ _null_ )); -DESCR("vertical"); -DATA(insert OID = 1415 ( ishorizontal PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 16 "628" _null_ _null_ _null_ _null_ _null_ line_horizontal _null_ _null_ _null_ )); -DESCR("horizontal"); -DATA(insert OID = 1416 ( point PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 600 "718" _null_ _null_ _null_ _null_ _null_ circle_center _null_ _null_ _null_ )); -DESCR("center of"); - -DATA(insert OID = 1419 ( time PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 1083 "1186" _null_ _null_ _null_ _null_ _null_ interval_time _null_ _null_ _null_ )); -DESCR("convert interval to time"); - -DATA(insert OID = 1421 ( box PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 603 "600 600" _null_ _null_ _null_ _null_ _null_ points_box _null_ _null_ _null_ )); -DESCR("convert points to box"); -DATA(insert OID = 1422 ( box_add PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 603 "603 600" _null_ _null_ _null_ _null_ _null_ box_add _null_ _null_ _null_ )); -DATA(insert OID = 1423 ( box_sub PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 603 "603 600" _null_ _null_ _null_ _null_ _null_ box_sub _null_ _null_ _null_ )); -DATA(insert OID = 1424 ( box_mul PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 603 "603 600" _null_ _null_ _null_ _null_ _null_ box_mul _null_ _null_ _null_ )); -DATA(insert OID = 1425 ( box_div PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 603 "603 600" _null_ _null_ _null_ _null_ _null_ box_div _null_ _null_ _null_ )); -DATA(insert OID = 1426 ( path_contain_pt PGNSP PGUID 14 1 0 0 0 f f f t f i s 2 0 16 "602 600" _null_ _null_ _null_ _null_ _null_ "select pg_catalog.on_ppath($2, $1)" _null_ _null_ _null_ )); -DATA(insert OID = 1428 ( poly_contain_pt PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "604 600" _null_ _null_ _null_ _null_ _null_ poly_contain_pt _null_ _null_ _null_ )); -DATA(insert OID = 1429 ( pt_contained_poly PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "600 604" _null_ _null_ _null_ _null_ _null_ pt_contained_poly _null_ _null_ _null_ )); - -DATA(insert OID = 1430 ( isclosed PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 16 "602" _null_ _null_ _null_ _null_ _null_ path_isclosed _null_ _null_ _null_ )); -DESCR("path closed?"); -DATA(insert OID = 1431 ( isopen PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 16 "602" _null_ _null_ _null_ _null_ _null_ path_isopen _null_ _null_ _null_ )); -DESCR("path open?"); -DATA(insert OID = 1432 ( path_npoints PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "602" _null_ _null_ _null_ _null_ _null_ path_npoints _null_ _null_ _null_ )); - -/* pclose and popen might better be named close and open, but that crashes initdb. - * - thomas 97/04/20 - */ - -DATA(insert OID = 1433 ( pclose PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 602 "602" _null_ _null_ _null_ _null_ _null_ path_close _null_ _null_ _null_ )); -DESCR("close path"); -DATA(insert OID = 1434 ( popen PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 602 "602" _null_ _null_ _null_ _null_ _null_ path_open _null_ _null_ _null_ )); -DESCR("open path"); -DATA(insert OID = 1435 ( path_add PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 602 "602 602" _null_ _null_ _null_ _null_ _null_ path_add _null_ _null_ _null_ )); -DATA(insert OID = 1436 ( path_add_pt PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 602 "602 600" _null_ _null_ _null_ _null_ _null_ path_add_pt _null_ _null_ _null_ )); -DATA(insert OID = 1437 ( path_sub_pt PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 602 "602 600" _null_ _null_ _null_ _null_ _null_ path_sub_pt _null_ _null_ _null_ )); -DATA(insert OID = 1438 ( path_mul_pt PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 602 "602 600" _null_ _null_ _null_ _null_ _null_ path_mul_pt _null_ _null_ _null_ )); -DATA(insert OID = 1439 ( path_div_pt PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 602 "602 600" _null_ _null_ _null_ _null_ _null_ path_div_pt _null_ _null_ _null_ )); - -DATA(insert OID = 1440 ( point PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 600 "701 701" _null_ _null_ _null_ _null_ _null_ construct_point _null_ _null_ _null_ )); -DESCR("convert x, y to point"); -DATA(insert OID = 1441 ( point_add PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 600 "600 600" _null_ _null_ _null_ _null_ _null_ point_add _null_ _null_ _null_ )); -DATA(insert OID = 1442 ( point_sub PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 600 "600 600" _null_ _null_ _null_ _null_ _null_ point_sub _null_ _null_ _null_ )); -DATA(insert OID = 1443 ( point_mul PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 600 "600 600" _null_ _null_ _null_ _null_ _null_ point_mul _null_ _null_ _null_ )); -DATA(insert OID = 1444 ( point_div PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 600 "600 600" _null_ _null_ _null_ _null_ _null_ point_div _null_ _null_ _null_ )); - -DATA(insert OID = 1445 ( poly_npoints PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "604" _null_ _null_ _null_ _null_ _null_ poly_npoints _null_ _null_ _null_ )); -DATA(insert OID = 1446 ( box PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 603 "604" _null_ _null_ _null_ _null_ _null_ poly_box _null_ _null_ _null_ )); -DESCR("convert polygon to bounding box"); -DATA(insert OID = 1447 ( path PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 602 "604" _null_ _null_ _null_ _null_ _null_ poly_path _null_ _null_ _null_ )); -DESCR("convert polygon to path"); -DATA(insert OID = 1448 ( polygon PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 604 "603" _null_ _null_ _null_ _null_ _null_ box_poly _null_ _null_ _null_ )); -DESCR("convert box to polygon"); -DATA(insert OID = 1449 ( polygon PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 604 "602" _null_ _null_ _null_ _null_ _null_ path_poly _null_ _null_ _null_ )); -DESCR("convert path to polygon"); - -DATA(insert OID = 1450 ( circle_in PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 718 "2275" _null_ _null_ _null_ _null_ _null_ circle_in _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 1451 ( circle_out PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2275 "718" _null_ _null_ _null_ _null_ _null_ circle_out _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 1452 ( circle_same PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "718 718" _null_ _null_ _null_ _null_ _null_ circle_same _null_ _null_ _null_ )); -DATA(insert OID = 1453 ( circle_contain PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "718 718" _null_ _null_ _null_ _null_ _null_ circle_contain _null_ _null_ _null_ )); -DATA(insert OID = 1454 ( circle_left PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "718 718" _null_ _null_ _null_ _null_ _null_ circle_left _null_ _null_ _null_ )); -DATA(insert OID = 1455 ( circle_overleft PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "718 718" _null_ _null_ _null_ _null_ _null_ circle_overleft _null_ _null_ _null_ )); -DATA(insert OID = 1456 ( circle_overright PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "718 718" _null_ _null_ _null_ _null_ _null_ circle_overright _null_ _null_ _null_ )); -DATA(insert OID = 1457 ( circle_right PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "718 718" _null_ _null_ _null_ _null_ _null_ circle_right _null_ _null_ _null_ )); -DATA(insert OID = 1458 ( circle_contained PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "718 718" _null_ _null_ _null_ _null_ _null_ circle_contained _null_ _null_ _null_ )); -DATA(insert OID = 1459 ( circle_overlap PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "718 718" _null_ _null_ _null_ _null_ _null_ circle_overlap _null_ _null_ _null_ )); -DATA(insert OID = 1460 ( circle_below PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "718 718" _null_ _null_ _null_ _null_ _null_ circle_below _null_ _null_ _null_ )); -DATA(insert OID = 1461 ( circle_above PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "718 718" _null_ _null_ _null_ _null_ _null_ circle_above _null_ _null_ _null_ )); -DATA(insert OID = 1462 ( circle_eq PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "718 718" _null_ _null_ _null_ _null_ _null_ circle_eq _null_ _null_ _null_ )); -DATA(insert OID = 1463 ( circle_ne PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "718 718" _null_ _null_ _null_ _null_ _null_ circle_ne _null_ _null_ _null_ )); -DATA(insert OID = 1464 ( circle_lt PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "718 718" _null_ _null_ _null_ _null_ _null_ circle_lt _null_ _null_ _null_ )); -DATA(insert OID = 1465 ( circle_gt PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "718 718" _null_ _null_ _null_ _null_ _null_ circle_gt _null_ _null_ _null_ )); -DATA(insert OID = 1466 ( circle_le PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "718 718" _null_ _null_ _null_ _null_ _null_ circle_le _null_ _null_ _null_ )); -DATA(insert OID = 1467 ( circle_ge PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "718 718" _null_ _null_ _null_ _null_ _null_ circle_ge _null_ _null_ _null_ )); -DATA(insert OID = 1468 ( area PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 701 "718" _null_ _null_ _null_ _null_ _null_ circle_area _null_ _null_ _null_ )); -DESCR("area of circle"); -DATA(insert OID = 1469 ( diameter PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 701 "718" _null_ _null_ _null_ _null_ _null_ circle_diameter _null_ _null_ _null_ )); -DESCR("diameter of circle"); -DATA(insert OID = 1470 ( radius PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 701 "718" _null_ _null_ _null_ _null_ _null_ circle_radius _null_ _null_ _null_ )); -DESCR("radius of circle"); -DATA(insert OID = 1471 ( circle_distance PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 701 "718 718" _null_ _null_ _null_ _null_ _null_ circle_distance _null_ _null_ _null_ )); -DATA(insert OID = 1472 ( circle_center PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 600 "718" _null_ _null_ _null_ _null_ _null_ circle_center _null_ _null_ _null_ )); -DATA(insert OID = 1473 ( circle PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 718 "600 701" _null_ _null_ _null_ _null_ _null_ cr_circle _null_ _null_ _null_ )); -DESCR("convert point and radius to circle"); -DATA(insert OID = 1474 ( circle PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 718 "604" _null_ _null_ _null_ _null_ _null_ poly_circle _null_ _null_ _null_ )); -DESCR("convert polygon to circle"); -DATA(insert OID = 1475 ( polygon PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 604 "23 718" _null_ _null_ _null_ _null_ _null_ circle_poly _null_ _null_ _null_ )); -DESCR("convert vertex count and circle to polygon"); -DATA(insert OID = 1476 ( dist_pc PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 701 "600 718" _null_ _null_ _null_ _null_ _null_ dist_pc _null_ _null_ _null_ )); -DATA(insert OID = 1477 ( circle_contain_pt PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "718 600" _null_ _null_ _null_ _null_ _null_ circle_contain_pt _null_ _null_ _null_ )); -DATA(insert OID = 1478 ( pt_contained_circle PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "600 718" _null_ _null_ _null_ _null_ _null_ pt_contained_circle _null_ _null_ _null_ )); -DATA(insert OID = 4091 ( box PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 603 "600" _null_ _null_ _null_ _null_ _null_ point_box _null_ _null_ _null_ )); -DESCR("convert point to empty box"); -DATA(insert OID = 1479 ( circle PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 718 "603" _null_ _null_ _null_ _null_ _null_ box_circle _null_ _null_ _null_ )); -DESCR("convert box to circle"); -DATA(insert OID = 1480 ( box PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 603 "718" _null_ _null_ _null_ _null_ _null_ circle_box _null_ _null_ _null_ )); -DESCR("convert circle to box"); -DATA(insert OID = 1481 ( tinterval PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 704 "702 702" _null_ _null_ _null_ _null_ _null_ mktinterval _null_ _null_ _null_ )); -DESCR("convert to tinterval"); - -DATA(insert OID = 1482 ( lseg_ne PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "601 601" _null_ _null_ _null_ _null_ _null_ lseg_ne _null_ _null_ _null_ )); -DATA(insert OID = 1483 ( lseg_lt PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "601 601" _null_ _null_ _null_ _null_ _null_ lseg_lt _null_ _null_ _null_ )); -DATA(insert OID = 1484 ( lseg_le PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "601 601" _null_ _null_ _null_ _null_ _null_ lseg_le _null_ _null_ _null_ )); -DATA(insert OID = 1485 ( lseg_gt PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "601 601" _null_ _null_ _null_ _null_ _null_ lseg_gt _null_ _null_ _null_ )); -DATA(insert OID = 1486 ( lseg_ge PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "601 601" _null_ _null_ _null_ _null_ _null_ lseg_ge _null_ _null_ _null_ )); -DATA(insert OID = 1487 ( lseg_length PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 701 "601" _null_ _null_ _null_ _null_ _null_ lseg_length _null_ _null_ _null_ )); -DATA(insert OID = 1488 ( close_ls PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 600 "628 601" _null_ _null_ _null_ _null_ _null_ close_ls _null_ _null_ _null_ )); -DATA(insert OID = 1489 ( close_lseg PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 600 "601 601" _null_ _null_ _null_ _null_ _null_ close_lseg _null_ _null_ _null_ )); - -DATA(insert OID = 1490 ( line_in PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 628 "2275" _null_ _null_ _null_ _null_ _null_ line_in _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 1491 ( line_out PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2275 "628" _null_ _null_ _null_ _null_ _null_ line_out _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 1492 ( line_eq PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "628 628" _null_ _null_ _null_ _null_ _null_ line_eq _null_ _null_ _null_ )); -DATA(insert OID = 1493 ( line PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 628 "600 600" _null_ _null_ _null_ _null_ _null_ line_construct_pp _null_ _null_ _null_ )); -DESCR("construct line from points"); -DATA(insert OID = 1494 ( line_interpt PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 600 "628 628" _null_ _null_ _null_ _null_ _null_ line_interpt _null_ _null_ _null_ )); -DATA(insert OID = 1495 ( line_intersect PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "628 628" _null_ _null_ _null_ _null_ _null_ line_intersect _null_ _null_ _null_ )); -DATA(insert OID = 1496 ( line_parallel PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "628 628" _null_ _null_ _null_ _null_ _null_ line_parallel _null_ _null_ _null_ )); -DATA(insert OID = 1497 ( line_perp PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "628 628" _null_ _null_ _null_ _null_ _null_ line_perp _null_ _null_ _null_ )); -DATA(insert OID = 1498 ( line_vertical PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 16 "628" _null_ _null_ _null_ _null_ _null_ line_vertical _null_ _null_ _null_ )); -DATA(insert OID = 1499 ( line_horizontal PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 16 "628" _null_ _null_ _null_ _null_ _null_ line_horizontal _null_ _null_ _null_ )); - -/* OIDS 1500 - 1599 */ - -DATA(insert OID = 1530 ( length PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 701 "601" _null_ _null_ _null_ _null_ _null_ lseg_length _null_ _null_ _null_ )); -DESCR("distance between endpoints"); -DATA(insert OID = 1531 ( length PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 701 "602" _null_ _null_ _null_ _null_ _null_ path_length _null_ _null_ _null_ )); -DESCR("sum of path segments"); - - -DATA(insert OID = 1532 ( point PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 600 "601" _null_ _null_ _null_ _null_ _null_ lseg_center _null_ _null_ _null_ )); -DESCR("center of"); -DATA(insert OID = 1533 ( point PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 600 "602" _null_ _null_ _null_ _null_ _null_ path_center _null_ _null_ _null_ )); -DESCR("center of"); -DATA(insert OID = 1534 ( point PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 600 "603" _null_ _null_ _null_ _null_ _null_ box_center _null_ _null_ _null_ )); -DESCR("center of"); -DATA(insert OID = 1540 ( point PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 600 "604" _null_ _null_ _null_ _null_ _null_ poly_center _null_ _null_ _null_ )); -DESCR("center of"); -DATA(insert OID = 1541 ( lseg PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 601 "603" _null_ _null_ _null_ _null_ _null_ box_diagonal _null_ _null_ _null_ )); -DESCR("diagonal of"); -DATA(insert OID = 1542 ( center PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 600 "603" _null_ _null_ _null_ _null_ _null_ box_center _null_ _null_ _null_ )); -DESCR("center of"); -DATA(insert OID = 1543 ( center PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 600 "718" _null_ _null_ _null_ _null_ _null_ circle_center _null_ _null_ _null_ )); -DESCR("center of"); -DATA(insert OID = 1544 ( polygon PGNSP PGUID 14 1 0 0 0 f f f t f i s 1 0 604 "718" _null_ _null_ _null_ _null_ _null_ "select pg_catalog.polygon(12, $1)" _null_ _null_ _null_ )); -DESCR("convert circle to 12-vertex polygon"); -DATA(insert OID = 1545 ( npoints PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "602" _null_ _null_ _null_ _null_ _null_ path_npoints _null_ _null_ _null_ )); -DESCR("number of points"); -DATA(insert OID = 1556 ( npoints PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "604" _null_ _null_ _null_ _null_ _null_ poly_npoints _null_ _null_ _null_ )); -DESCR("number of points"); - -DATA(insert OID = 1564 ( bit_in PGNSP PGUID 12 1 0 0 0 f f f t f i s 3 0 1560 "2275 26 23" _null_ _null_ _null_ _null_ _null_ bit_in _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 1565 ( bit_out PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2275 "1560" _null_ _null_ _null_ _null_ _null_ bit_out _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2919 ( bittypmodin PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "1263" _null_ _null_ _null_ _null_ _null_ bittypmodin _null_ _null_ _null_ )); -DESCR("I/O typmod"); -DATA(insert OID = 2920 ( bittypmodout PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2275 "23" _null_ _null_ _null_ _null_ _null_ bittypmodout _null_ _null_ _null_ )); -DESCR("I/O typmod"); - -DATA(insert OID = 1569 ( like PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "25 25" _null_ _null_ _null_ _null_ _null_ textlike _null_ _null_ _null_ )); -DESCR("matches LIKE expression"); -DATA(insert OID = 1570 ( notlike PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "25 25" _null_ _null_ _null_ _null_ _null_ textnlike _null_ _null_ _null_ )); -DESCR("does not match LIKE expression"); -DATA(insert OID = 1571 ( like PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "19 25" _null_ _null_ _null_ _null_ _null_ namelike _null_ _null_ _null_ )); -DESCR("matches LIKE expression"); -DATA(insert OID = 1572 ( notlike PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "19 25" _null_ _null_ _null_ _null_ _null_ namenlike _null_ _null_ _null_ )); -DESCR("does not match LIKE expression"); - - -/* SEQUENCE functions */ -DATA(insert OID = 1574 ( nextval PGNSP PGUID 12 1 0 0 0 f f f t f v u 1 0 20 "2205" _null_ _null_ _null_ _null_ _null_ nextval_oid _null_ _null_ _null_ )); -DESCR("sequence next value"); -DATA(insert OID = 1575 ( currval PGNSP PGUID 12 1 0 0 0 f f f t f v u 1 0 20 "2205" _null_ _null_ _null_ _null_ _null_ currval_oid _null_ _null_ _null_ )); -DESCR("sequence current value"); -DATA(insert OID = 1576 ( setval PGNSP PGUID 12 1 0 0 0 f f f t f v u 2 0 20 "2205 20" _null_ _null_ _null_ _null_ _null_ setval_oid _null_ _null_ _null_ )); -DESCR("set sequence value"); -DATA(insert OID = 1765 ( setval PGNSP PGUID 12 1 0 0 0 f f f t f v u 3 0 20 "2205 20 16" _null_ _null_ _null_ _null_ _null_ setval3_oid _null_ _null_ _null_ )); -DESCR("set sequence value and is_called status"); -DATA(insert OID = 3078 ( pg_sequence_parameters PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 2249 "26" "{26,20,20,20,20,16,20,26}" "{i,o,o,o,o,o,o,o}" "{sequence_oid,start_value,minimum_value,maximum_value,increment,cycle_option,cache_size,data_type}" _null_ _null_ pg_sequence_parameters _null_ _null_ _null_)); -DESCR("sequence parameters, for use by information schema"); -DATA(insert OID = 4032 ( pg_sequence_last_value PGNSP PGUID 12 1 0 0 0 f f f t f v u 1 0 20 "2205" _null_ _null_ _null_ _null_ _null_ pg_sequence_last_value _null_ _null_ _null_ )); -DESCR("sequence last value"); - -DATA(insert OID = 1579 ( varbit_in PGNSP PGUID 12 1 0 0 0 f f f t f i s 3 0 1562 "2275 26 23" _null_ _null_ _null_ _null_ _null_ varbit_in _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 1580 ( varbit_out PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2275 "1562" _null_ _null_ _null_ _null_ _null_ varbit_out _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2902 ( varbittypmodin PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "1263" _null_ _null_ _null_ _null_ _null_ varbittypmodin _null_ _null_ _null_ )); -DESCR("I/O typmod"); -DATA(insert OID = 2921 ( varbittypmodout PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2275 "23" _null_ _null_ _null_ _null_ _null_ varbittypmodout _null_ _null_ _null_ )); -DESCR("I/O typmod"); - -DATA(insert OID = 1581 ( biteq PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "1560 1560" _null_ _null_ _null_ _null_ _null_ biteq _null_ _null_ _null_ )); -DATA(insert OID = 1582 ( bitne PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "1560 1560" _null_ _null_ _null_ _null_ _null_ bitne _null_ _null_ _null_ )); -DATA(insert OID = 1592 ( bitge PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "1560 1560" _null_ _null_ _null_ _null_ _null_ bitge _null_ _null_ _null_ )); -DATA(insert OID = 1593 ( bitgt PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "1560 1560" _null_ _null_ _null_ _null_ _null_ bitgt _null_ _null_ _null_ )); -DATA(insert OID = 1594 ( bitle PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "1560 1560" _null_ _null_ _null_ _null_ _null_ bitle _null_ _null_ _null_ )); -DATA(insert OID = 1595 ( bitlt PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "1560 1560" _null_ _null_ _null_ _null_ _null_ bitlt _null_ _null_ _null_ )); -DATA(insert OID = 1596 ( bitcmp PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "1560 1560" _null_ _null_ _null_ _null_ _null_ bitcmp _null_ _null_ _null_ )); -DESCR("less-equal-greater"); - -DATA(insert OID = 1598 ( random PGNSP PGUID 12 1 0 0 0 f f f t f v r 0 0 701 "" _null_ _null_ _null_ _null_ _null_ drandom _null_ _null_ _null_ )); -DESCR("random value"); -DATA(insert OID = 1599 ( setseed PGNSP PGUID 12 1 0 0 0 f f f t f v r 1 0 2278 "701" _null_ _null_ _null_ _null_ _null_ setseed _null_ _null_ _null_ )); -DESCR("set random seed"); - -/* OIDS 1600 - 1699 */ - -DATA(insert OID = 1600 ( asin PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 701 "701" _null_ _null_ _null_ _null_ _null_ dasin _null_ _null_ _null_ )); -DESCR("arcsine"); -DATA(insert OID = 1601 ( acos PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 701 "701" _null_ _null_ _null_ _null_ _null_ dacos _null_ _null_ _null_ )); -DESCR("arccosine"); -DATA(insert OID = 1602 ( atan PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 701 "701" _null_ _null_ _null_ _null_ _null_ datan _null_ _null_ _null_ )); -DESCR("arctangent"); -DATA(insert OID = 1603 ( atan2 PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 701 "701 701" _null_ _null_ _null_ _null_ _null_ datan2 _null_ _null_ _null_ )); -DESCR("arctangent, two arguments"); -DATA(insert OID = 1604 ( sin PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 701 "701" _null_ _null_ _null_ _null_ _null_ dsin _null_ _null_ _null_ )); -DESCR("sine"); -DATA(insert OID = 1605 ( cos PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 701 "701" _null_ _null_ _null_ _null_ _null_ dcos _null_ _null_ _null_ )); -DESCR("cosine"); -DATA(insert OID = 1606 ( tan PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 701 "701" _null_ _null_ _null_ _null_ _null_ dtan _null_ _null_ _null_ )); -DESCR("tangent"); -DATA(insert OID = 1607 ( cot PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 701 "701" _null_ _null_ _null_ _null_ _null_ dcot _null_ _null_ _null_ )); -DESCR("cotangent"); - -DATA(insert OID = 2731 ( asind PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 701 "701" _null_ _null_ _null_ _null_ _null_ dasind _null_ _null_ _null_ )); -DESCR("arcsine, degrees"); -DATA(insert OID = 2732 ( acosd PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 701 "701" _null_ _null_ _null_ _null_ _null_ dacosd _null_ _null_ _null_ )); -DESCR("arccosine, degrees"); -DATA(insert OID = 2733 ( atand PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 701 "701" _null_ _null_ _null_ _null_ _null_ datand _null_ _null_ _null_ )); -DESCR("arctangent, degrees"); -DATA(insert OID = 2734 ( atan2d PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 701 "701 701" _null_ _null_ _null_ _null_ _null_ datan2d _null_ _null_ _null_ )); -DESCR("arctangent, two arguments, degrees"); -DATA(insert OID = 2735 ( sind PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 701 "701" _null_ _null_ _null_ _null_ _null_ dsind _null_ _null_ _null_ )); -DESCR("sine, degrees"); -DATA(insert OID = 2736 ( cosd PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 701 "701" _null_ _null_ _null_ _null_ _null_ dcosd _null_ _null_ _null_ )); -DESCR("cosine, degrees"); -DATA(insert OID = 2737 ( tand PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 701 "701" _null_ _null_ _null_ _null_ _null_ dtand _null_ _null_ _null_ )); -DESCR("tangent, degrees"); -DATA(insert OID = 2738 ( cotd PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 701 "701" _null_ _null_ _null_ _null_ _null_ dcotd _null_ _null_ _null_ )); -DESCR("cotangent, degrees"); - -DATA(insert OID = 1608 ( degrees PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 701 "701" _null_ _null_ _null_ _null_ _null_ degrees _null_ _null_ _null_ )); -DESCR("radians to degrees"); -DATA(insert OID = 1609 ( radians PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 701 "701" _null_ _null_ _null_ _null_ _null_ radians _null_ _null_ _null_ )); -DESCR("degrees to radians"); -DATA(insert OID = 1610 ( pi PGNSP PGUID 12 1 0 0 0 f f f t f i s 0 0 701 "" _null_ _null_ _null_ _null_ _null_ dpi _null_ _null_ _null_ )); -DESCR("PI"); - -DATA(insert OID = 1618 ( interval_mul PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1186 "1186 701" _null_ _null_ _null_ _null_ _null_ interval_mul _null_ _null_ _null_ )); - -DATA(insert OID = 1620 ( ascii PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "25" _null_ _null_ _null_ _null_ _null_ ascii _null_ _null_ _null_ )); -DESCR("convert first char to int4"); -DATA(insert OID = 1621 ( chr PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 25 "23" _null_ _null_ _null_ _null_ _null_ chr _null_ _null_ _null_ )); -DESCR("convert int4 to char"); -DATA(insert OID = 1622 ( repeat PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 25 "25 23" _null_ _null_ _null_ _null_ _null_ repeat _null_ _null_ _null_ )); -DESCR("replicate string n times"); - -DATA(insert OID = 1623 ( similar_escape PGNSP PGUID 12 1 0 0 0 f f f f f i s 2 0 25 "25 25" _null_ _null_ _null_ _null_ _null_ similar_escape _null_ _null_ _null_ )); -DESCR("convert SQL99 regexp pattern to POSIX style"); - -DATA(insert OID = 1624 ( mul_d_interval PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1186 "701 1186" _null_ _null_ _null_ _null_ _null_ mul_d_interval _null_ _null_ _null_ )); - -DATA(insert OID = 1631 ( bpcharlike PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "1042 25" _null_ _null_ _null_ _null_ _null_ textlike _null_ _null_ _null_ )); -DATA(insert OID = 1632 ( bpcharnlike PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "1042 25" _null_ _null_ _null_ _null_ _null_ textnlike _null_ _null_ _null_ )); - -DATA(insert OID = 1633 ( texticlike PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "25 25" _null_ _null_ _null_ _null_ _null_ texticlike _null_ _null_ _null_ )); -DATA(insert OID = 1634 ( texticnlike PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "25 25" _null_ _null_ _null_ _null_ _null_ texticnlike _null_ _null_ _null_ )); -DATA(insert OID = 1635 ( nameiclike PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "19 25" _null_ _null_ _null_ _null_ _null_ nameiclike _null_ _null_ _null_ )); -DATA(insert OID = 1636 ( nameicnlike PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "19 25" _null_ _null_ _null_ _null_ _null_ nameicnlike _null_ _null_ _null_ )); -DATA(insert OID = 1637 ( like_escape PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 25 "25 25" _null_ _null_ _null_ _null_ _null_ like_escape _null_ _null_ _null_ )); -DESCR("convert LIKE pattern to use backslash escapes"); - -DATA(insert OID = 1656 ( bpcharicregexeq PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "1042 25" _null_ _null_ _null_ _null_ _null_ texticregexeq _null_ _null_ _null_ )); -DATA(insert OID = 1657 ( bpcharicregexne PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "1042 25" _null_ _null_ _null_ _null_ _null_ texticregexne _null_ _null_ _null_ )); -DATA(insert OID = 1658 ( bpcharregexeq PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "1042 25" _null_ _null_ _null_ _null_ _null_ textregexeq _null_ _null_ _null_ )); -DATA(insert OID = 1659 ( bpcharregexne PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "1042 25" _null_ _null_ _null_ _null_ _null_ textregexne _null_ _null_ _null_ )); -DATA(insert OID = 1660 ( bpchariclike PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "1042 25" _null_ _null_ _null_ _null_ _null_ texticlike _null_ _null_ _null_ )); -DATA(insert OID = 1661 ( bpcharicnlike PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "1042 25" _null_ _null_ _null_ _null_ _null_ texticnlike _null_ _null_ _null_ )); - -/* Oracle Compatibility Related Functions - By Edmund Mergl */ -DATA(insert OID = 868 ( strpos PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "25 25" _null_ _null_ _null_ _null_ _null_ textpos _null_ _null_ _null_ )); -DESCR("position of substring"); -DATA(insert OID = 870 ( lower PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 25 "25" _null_ _null_ _null_ _null_ _null_ lower _null_ _null_ _null_ )); -DESCR("lowercase"); -DATA(insert OID = 871 ( upper PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 25 "25" _null_ _null_ _null_ _null_ _null_ upper _null_ _null_ _null_ )); -DESCR("uppercase"); -DATA(insert OID = 872 ( initcap PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 25 "25" _null_ _null_ _null_ _null_ _null_ initcap _null_ _null_ _null_ )); -DESCR("capitalize each word"); -DATA(insert OID = 873 ( lpad PGNSP PGUID 12 1 0 0 0 f f f t f i s 3 0 25 "25 23 25" _null_ _null_ _null_ _null_ _null_ lpad _null_ _null_ _null_ )); -DESCR("left-pad string to length"); -DATA(insert OID = 874 ( rpad PGNSP PGUID 12 1 0 0 0 f f f t f i s 3 0 25 "25 23 25" _null_ _null_ _null_ _null_ _null_ rpad _null_ _null_ _null_ )); -DESCR("right-pad string to length"); -DATA(insert OID = 875 ( ltrim PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 25 "25 25" _null_ _null_ _null_ _null_ _null_ ltrim _null_ _null_ _null_ )); -DESCR("trim selected characters from left end of string"); -DATA(insert OID = 876 ( rtrim PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 25 "25 25" _null_ _null_ _null_ _null_ _null_ rtrim _null_ _null_ _null_ )); -DESCR("trim selected characters from right end of string"); -DATA(insert OID = 877 ( substr PGNSP PGUID 12 1 0 0 0 f f f t f i s 3 0 25 "25 23 23" _null_ _null_ _null_ _null_ _null_ text_substr _null_ _null_ _null_ )); -DESCR("extract portion of string"); -DATA(insert OID = 878 ( translate PGNSP PGUID 12 1 0 0 0 f f f t f i s 3 0 25 "25 25 25" _null_ _null_ _null_ _null_ _null_ translate _null_ _null_ _null_ )); -DESCR("map a set of characters appearing in string"); -DATA(insert OID = 879 ( lpad PGNSP PGUID 14 1 0 0 0 f f f t f i s 2 0 25 "25 23" _null_ _null_ _null_ _null_ _null_ "select pg_catalog.lpad($1, $2, '' '')" _null_ _null_ _null_ )); -DESCR("left-pad string to length"); -DATA(insert OID = 880 ( rpad PGNSP PGUID 14 1 0 0 0 f f f t f i s 2 0 25 "25 23" _null_ _null_ _null_ _null_ _null_ "select pg_catalog.rpad($1, $2, '' '')" _null_ _null_ _null_ )); -DESCR("right-pad string to length"); -DATA(insert OID = 881 ( ltrim PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 25 "25" _null_ _null_ _null_ _null_ _null_ ltrim1 _null_ _null_ _null_ )); -DESCR("trim spaces from left end of string"); -DATA(insert OID = 882 ( rtrim PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 25 "25" _null_ _null_ _null_ _null_ _null_ rtrim1 _null_ _null_ _null_ )); -DESCR("trim spaces from right end of string"); -DATA(insert OID = 883 ( substr PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 25 "25 23" _null_ _null_ _null_ _null_ _null_ text_substr_no_len _null_ _null_ _null_ )); -DESCR("extract portion of string"); -DATA(insert OID = 884 ( btrim PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 25 "25 25" _null_ _null_ _null_ _null_ _null_ btrim _null_ _null_ _null_ )); -DESCR("trim selected characters from both ends of string"); -DATA(insert OID = 885 ( btrim PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 25 "25" _null_ _null_ _null_ _null_ _null_ btrim1 _null_ _null_ _null_ )); -DESCR("trim spaces from both ends of string"); - -DATA(insert OID = 936 ( substring PGNSP PGUID 12 1 0 0 0 f f f t f i s 3 0 25 "25 23 23" _null_ _null_ _null_ _null_ _null_ text_substr _null_ _null_ _null_ )); -DESCR("extract portion of string"); -DATA(insert OID = 937 ( substring PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 25 "25 23" _null_ _null_ _null_ _null_ _null_ text_substr_no_len _null_ _null_ _null_ )); -DESCR("extract portion of string"); -DATA(insert OID = 2087 ( replace PGNSP PGUID 12 1 0 0 0 f f f t f i s 3 0 25 "25 25 25" _null_ _null_ _null_ _null_ _null_ replace_text _null_ _null_ _null_ )); -DESCR("replace all occurrences in string of old_substr with new_substr"); -DATA(insert OID = 2284 ( regexp_replace PGNSP PGUID 12 1 0 0 0 f f f t f i s 3 0 25 "25 25 25" _null_ _null_ _null_ _null_ _null_ textregexreplace_noopt _null_ _null_ _null_ )); -DESCR("replace text using regexp"); -DATA(insert OID = 2285 ( regexp_replace PGNSP PGUID 12 1 0 0 0 f f f t f i s 4 0 25 "25 25 25 25" _null_ _null_ _null_ _null_ _null_ textregexreplace _null_ _null_ _null_ )); -DESCR("replace text using regexp"); -DATA(insert OID = 3396 ( regexp_match PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1009 "25 25" _null_ _null_ _null_ _null_ _null_ regexp_match_no_flags _null_ _null_ _null_ )); -DESCR("find first match for regexp"); -DATA(insert OID = 3397 ( regexp_match PGNSP PGUID 12 1 0 0 0 f f f t f i s 3 0 1009 "25 25 25" _null_ _null_ _null_ _null_ _null_ regexp_match _null_ _null_ _null_ )); -DESCR("find first match for regexp"); -DATA(insert OID = 2763 ( regexp_matches PGNSP PGUID 12 1 1 0 0 f f f t t i s 2 0 1009 "25 25" _null_ _null_ _null_ _null_ _null_ regexp_matches_no_flags _null_ _null_ _null_ )); -DESCR("find match(es) for regexp"); -DATA(insert OID = 2764 ( regexp_matches PGNSP PGUID 12 1 10 0 0 f f f t t i s 3 0 1009 "25 25 25" _null_ _null_ _null_ _null_ _null_ regexp_matches _null_ _null_ _null_ )); -DESCR("find match(es) for regexp"); -DATA(insert OID = 2088 ( split_part PGNSP PGUID 12 1 0 0 0 f f f t f i s 3 0 25 "25 25 23" _null_ _null_ _null_ _null_ _null_ split_text _null_ _null_ _null_ )); -DESCR("split string by field_sep and return field_num"); -DATA(insert OID = 2765 ( regexp_split_to_table PGNSP PGUID 12 1 1000 0 0 f f f t t i s 2 0 25 "25 25" _null_ _null_ _null_ _null_ _null_ regexp_split_to_table_no_flags _null_ _null_ _null_ )); -DESCR("split string by pattern"); -DATA(insert OID = 2766 ( regexp_split_to_table PGNSP PGUID 12 1 1000 0 0 f f f t t i s 3 0 25 "25 25 25" _null_ _null_ _null_ _null_ _null_ regexp_split_to_table _null_ _null_ _null_ )); -DESCR("split string by pattern"); -DATA(insert OID = 2767 ( regexp_split_to_array PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1009 "25 25" _null_ _null_ _null_ _null_ _null_ regexp_split_to_array_no_flags _null_ _null_ _null_ )); -DESCR("split string by pattern"); -DATA(insert OID = 2768 ( regexp_split_to_array PGNSP PGUID 12 1 0 0 0 f f f t f i s 3 0 1009 "25 25 25" _null_ _null_ _null_ _null_ _null_ regexp_split_to_array _null_ _null_ _null_ )); -DESCR("split string by pattern"); -DATA(insert OID = 2089 ( to_hex PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 25 "23" _null_ _null_ _null_ _null_ _null_ to_hex32 _null_ _null_ _null_ )); -DESCR("convert int4 number to hex"); -DATA(insert OID = 2090 ( to_hex PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 25 "20" _null_ _null_ _null_ _null_ _null_ to_hex64 _null_ _null_ _null_ )); -DESCR("convert int8 number to hex"); - -/* for character set encoding support */ - -/* return database encoding name */ -DATA(insert OID = 1039 ( getdatabaseencoding PGNSP PGUID 12 1 0 0 0 f f f t f s s 0 0 19 "" _null_ _null_ _null_ _null_ _null_ getdatabaseencoding _null_ _null_ _null_ )); -DESCR("encoding name of current database"); - -/* return client encoding name i.e. session encoding */ -DATA(insert OID = 810 ( pg_client_encoding PGNSP PGUID 12 1 0 0 0 f f f t f s s 0 0 19 "" _null_ _null_ _null_ _null_ _null_ pg_client_encoding _null_ _null_ _null_ )); -DESCR("encoding name of current database"); - -DATA(insert OID = 1713 ( length PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 23 "17 19" _null_ _null_ _null_ _null_ _null_ length_in_encoding _null_ _null_ _null_ )); -DESCR("length of string in specified encoding"); - -DATA(insert OID = 1714 ( convert_from PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 25 "17 19" _null_ _null_ _null_ _null_ _null_ pg_convert_from _null_ _null_ _null_ )); -DESCR("convert string with specified source encoding name"); - -DATA(insert OID = 1717 ( convert_to PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 17 "25 19" _null_ _null_ _null_ _null_ _null_ pg_convert_to _null_ _null_ _null_ )); -DESCR("convert string with specified destination encoding name"); - -DATA(insert OID = 1813 ( convert PGNSP PGUID 12 1 0 0 0 f f f t f s s 3 0 17 "17 19 19" _null_ _null_ _null_ _null_ _null_ pg_convert _null_ _null_ _null_ )); -DESCR("convert string with specified encoding names"); - -DATA(insert OID = 1264 ( pg_char_to_encoding PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 23 "19" _null_ _null_ _null_ _null_ _null_ PG_char_to_encoding _null_ _null_ _null_ )); -DESCR("convert encoding name to encoding id"); - -DATA(insert OID = 1597 ( pg_encoding_to_char PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 19 "23" _null_ _null_ _null_ _null_ _null_ PG_encoding_to_char _null_ _null_ _null_ )); -DESCR("convert encoding id to encoding name"); - -DATA(insert OID = 2319 ( pg_encoding_max_length PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "23" _null_ _null_ _null_ _null_ _null_ pg_encoding_max_length_sql _null_ _null_ _null_ )); -DESCR("maximum octet length of a character in given encoding"); - -DATA(insert OID = 1638 ( oidgt PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "26 26" _null_ _null_ _null_ _null_ _null_ oidgt _null_ _null_ _null_ )); -DATA(insert OID = 1639 ( oidge PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "26 26" _null_ _null_ _null_ _null_ _null_ oidge _null_ _null_ _null_ )); - -/* System-view support functions */ -DATA(insert OID = 1573 ( pg_get_ruledef PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 25 "26" _null_ _null_ _null_ _null_ _null_ pg_get_ruledef _null_ _null_ _null_ )); -DESCR("source text of a rule"); -DATA(insert OID = 1640 ( pg_get_viewdef PGNSP PGUID 12 1 0 0 0 f f f t f s r 1 0 25 "25" _null_ _null_ _null_ _null_ _null_ pg_get_viewdef_name _null_ _null_ _null_ )); -DESCR("select statement of a view"); -DATA(insert OID = 1641 ( pg_get_viewdef PGNSP PGUID 12 1 0 0 0 f f f t f s r 1 0 25 "26" _null_ _null_ _null_ _null_ _null_ pg_get_viewdef _null_ _null_ _null_ )); -DESCR("select statement of a view"); -DATA(insert OID = 1642 ( pg_get_userbyid PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 19 "26" _null_ _null_ _null_ _null_ _null_ pg_get_userbyid _null_ _null_ _null_ )); -DESCR("role name by OID (with fallback)"); -DATA(insert OID = 1643 ( pg_get_indexdef PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 25 "26" _null_ _null_ _null_ _null_ _null_ pg_get_indexdef _null_ _null_ _null_ )); -DESCR("index description"); -DATA(insert OID = 3415 ( pg_get_statisticsobjdef PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 25 "26" _null_ _null_ _null_ _null_ _null_ pg_get_statisticsobjdef _null_ _null_ _null_ )); -DESCR("extended statistics object description"); -DATA(insert OID = 3352 ( pg_get_partkeydef PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 25 "26" _null_ _null_ _null_ _null_ _null_ pg_get_partkeydef _null_ _null_ _null_ )); -DESCR("partition key description"); -DATA(insert OID = 3408 ( pg_get_partition_constraintdef PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 25 "26" _null_ _null_ _null_ _null_ _null_ pg_get_partition_constraintdef _null_ _null_ _null_ )); -DESCR("partition constraint description"); -DATA(insert OID = 1662 ( pg_get_triggerdef PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 25 "26" _null_ _null_ _null_ _null_ _null_ pg_get_triggerdef _null_ _null_ _null_ )); -DESCR("trigger description"); -DATA(insert OID = 1387 ( pg_get_constraintdef PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 25 "26" _null_ _null_ _null_ _null_ _null_ pg_get_constraintdef _null_ _null_ _null_ )); -DESCR("constraint description"); -DATA(insert OID = 1716 ( pg_get_expr PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 25 "194 26" _null_ _null_ _null_ _null_ _null_ pg_get_expr _null_ _null_ _null_ )); -DESCR("deparse an encoded expression"); -DATA(insert OID = 1665 ( pg_get_serial_sequence PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 25 "25 25" _null_ _null_ _null_ _null_ _null_ pg_get_serial_sequence _null_ _null_ _null_ )); -DESCR("name of sequence for a serial column"); -DATA(insert OID = 2098 ( pg_get_functiondef PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 25 "26" _null_ _null_ _null_ _null_ _null_ pg_get_functiondef _null_ _null_ _null_ )); -DESCR("definition of a function"); -DATA(insert OID = 2162 ( pg_get_function_arguments PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 25 "26" _null_ _null_ _null_ _null_ _null_ pg_get_function_arguments _null_ _null_ _null_ )); -DESCR("argument list of a function"); -DATA(insert OID = 2232 ( pg_get_function_identity_arguments PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 25 "26" _null_ _null_ _null_ _null_ _null_ pg_get_function_identity_arguments _null_ _null_ _null_ )); -DESCR("identity argument list of a function"); -DATA(insert OID = 2165 ( pg_get_function_result PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 25 "26" _null_ _null_ _null_ _null_ _null_ pg_get_function_result _null_ _null_ _null_ )); -DESCR("result type of a function"); -DATA(insert OID = 3808 ( pg_get_function_arg_default PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 25 "26 23" _null_ _null_ _null_ _null_ _null_ pg_get_function_arg_default _null_ _null_ _null_ )); -DESCR("function argument default"); - -DATA(insert OID = 1686 ( pg_get_keywords PGNSP PGUID 12 10 400 0 0 f f f t t s s 0 0 2249 "" "{25,18,25}" "{o,o,o}" "{word,catcode,catdesc}" _null_ _null_ pg_get_keywords _null_ _null_ _null_ )); -DESCR("list of SQL keywords"); - -DATA(insert OID = 2289 ( pg_options_to_table PGNSP PGUID 12 1 3 0 0 f f f t t s s 1 0 2249 "1009" "{1009,25,25}" "{i,o,o}" "{options_array,option_name,option_value}" _null_ _null_ pg_options_to_table _null_ _null_ _null_ )); -DESCR("convert generic options array to name/value table"); - -DATA(insert OID = 1619 ( pg_typeof PGNSP PGUID 12 1 0 0 0 f f f f f s s 1 0 2206 "2276" _null_ _null_ _null_ _null_ _null_ pg_typeof _null_ _null_ _null_ )); -DESCR("type of the argument"); -DATA(insert OID = 3162 ( pg_collation_for PGNSP PGUID 12 1 0 0 0 f f f f f s s 1 0 25 "2276" _null_ _null_ _null_ _null_ _null_ pg_collation_for _null_ _null_ _null_ )); -DESCR("collation of the argument; implementation of the COLLATION FOR expression"); - -DATA(insert OID = 3842 ( pg_relation_is_updatable PGNSP PGUID 12 10 0 0 0 f f f t f s s 2 0 23 "2205 16" _null_ _null_ _null_ _null_ _null_ pg_relation_is_updatable _null_ _null_ _null_ )); -DESCR("is a relation insertable/updatable/deletable"); -DATA(insert OID = 3843 ( pg_column_is_updatable PGNSP PGUID 12 10 0 0 0 f f f t f s s 3 0 16 "2205 21 16" _null_ _null_ _null_ _null_ _null_ pg_column_is_updatable _null_ _null_ _null_ )); -DESCR("is a column updatable"); - -DATA(insert OID = 6120 ( pg_get_replica_identity_index PGNSP PGUID 12 10 0 0 0 f f f t f s s 1 0 2205 "2205" _null_ _null_ _null_ _null_ _null_ pg_get_replica_identity_index _null_ _null_ _null_ )); -DESCR("oid of replica identity index if any"); - -/* Deferrable unique constraint trigger */ -DATA(insert OID = 1250 ( unique_key_recheck PGNSP PGUID 12 1 0 0 0 f f f t f v s 0 0 2279 "" _null_ _null_ _null_ _null_ _null_ unique_key_recheck _null_ _null_ _null_ )); -DESCR("deferred UNIQUE constraint check"); - -/* Generic referential integrity constraint triggers */ -DATA(insert OID = 1644 ( RI_FKey_check_ins PGNSP PGUID 12 1 0 0 0 f f f t f v s 0 0 2279 "" _null_ _null_ _null_ _null_ _null_ RI_FKey_check_ins _null_ _null_ _null_ )); -DESCR("referential integrity FOREIGN KEY ... REFERENCES"); -DATA(insert OID = 1645 ( RI_FKey_check_upd PGNSP PGUID 12 1 0 0 0 f f f t f v s 0 0 2279 "" _null_ _null_ _null_ _null_ _null_ RI_FKey_check_upd _null_ _null_ _null_ )); -DESCR("referential integrity FOREIGN KEY ... REFERENCES"); -DATA(insert OID = 1646 ( RI_FKey_cascade_del PGNSP PGUID 12 1 0 0 0 f f f t f v s 0 0 2279 "" _null_ _null_ _null_ _null_ _null_ RI_FKey_cascade_del _null_ _null_ _null_ )); -DESCR("referential integrity ON DELETE CASCADE"); -DATA(insert OID = 1647 ( RI_FKey_cascade_upd PGNSP PGUID 12 1 0 0 0 f f f t f v s 0 0 2279 "" _null_ _null_ _null_ _null_ _null_ RI_FKey_cascade_upd _null_ _null_ _null_ )); -DESCR("referential integrity ON UPDATE CASCADE"); -DATA(insert OID = 1648 ( RI_FKey_restrict_del PGNSP PGUID 12 1 0 0 0 f f f t f v s 0 0 2279 "" _null_ _null_ _null_ _null_ _null_ RI_FKey_restrict_del _null_ _null_ _null_ )); -DESCR("referential integrity ON DELETE RESTRICT"); -DATA(insert OID = 1649 ( RI_FKey_restrict_upd PGNSP PGUID 12 1 0 0 0 f f f t f v s 0 0 2279 "" _null_ _null_ _null_ _null_ _null_ RI_FKey_restrict_upd _null_ _null_ _null_ )); -DESCR("referential integrity ON UPDATE RESTRICT"); -DATA(insert OID = 1650 ( RI_FKey_setnull_del PGNSP PGUID 12 1 0 0 0 f f f t f v s 0 0 2279 "" _null_ _null_ _null_ _null_ _null_ RI_FKey_setnull_del _null_ _null_ _null_ )); -DESCR("referential integrity ON DELETE SET NULL"); -DATA(insert OID = 1651 ( RI_FKey_setnull_upd PGNSP PGUID 12 1 0 0 0 f f f t f v s 0 0 2279 "" _null_ _null_ _null_ _null_ _null_ RI_FKey_setnull_upd _null_ _null_ _null_ )); -DESCR("referential integrity ON UPDATE SET NULL"); -DATA(insert OID = 1652 ( RI_FKey_setdefault_del PGNSP PGUID 12 1 0 0 0 f f f t f v s 0 0 2279 "" _null_ _null_ _null_ _null_ _null_ RI_FKey_setdefault_del _null_ _null_ _null_ )); -DESCR("referential integrity ON DELETE SET DEFAULT"); -DATA(insert OID = 1653 ( RI_FKey_setdefault_upd PGNSP PGUID 12 1 0 0 0 f f f t f v s 0 0 2279 "" _null_ _null_ _null_ _null_ _null_ RI_FKey_setdefault_upd _null_ _null_ _null_ )); -DESCR("referential integrity ON UPDATE SET DEFAULT"); -DATA(insert OID = 1654 ( RI_FKey_noaction_del PGNSP PGUID 12 1 0 0 0 f f f t f v s 0 0 2279 "" _null_ _null_ _null_ _null_ _null_ RI_FKey_noaction_del _null_ _null_ _null_ )); -DESCR("referential integrity ON DELETE NO ACTION"); -DATA(insert OID = 1655 ( RI_FKey_noaction_upd PGNSP PGUID 12 1 0 0 0 f f f t f v s 0 0 2279 "" _null_ _null_ _null_ _null_ _null_ RI_FKey_noaction_upd _null_ _null_ _null_ )); -DESCR("referential integrity ON UPDATE NO ACTION"); - -DATA(insert OID = 1666 ( varbiteq PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "1562 1562" _null_ _null_ _null_ _null_ _null_ biteq _null_ _null_ _null_ )); -DATA(insert OID = 1667 ( varbitne PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "1562 1562" _null_ _null_ _null_ _null_ _null_ bitne _null_ _null_ _null_ )); -DATA(insert OID = 1668 ( varbitge PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "1562 1562" _null_ _null_ _null_ _null_ _null_ bitge _null_ _null_ _null_ )); -DATA(insert OID = 1669 ( varbitgt PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "1562 1562" _null_ _null_ _null_ _null_ _null_ bitgt _null_ _null_ _null_ )); -DATA(insert OID = 1670 ( varbitle PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "1562 1562" _null_ _null_ _null_ _null_ _null_ bitle _null_ _null_ _null_ )); -DATA(insert OID = 1671 ( varbitlt PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "1562 1562" _null_ _null_ _null_ _null_ _null_ bitlt _null_ _null_ _null_ )); -DATA(insert OID = 1672 ( varbitcmp PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "1562 1562" _null_ _null_ _null_ _null_ _null_ bitcmp _null_ _null_ _null_ )); -DESCR("less-equal-greater"); - -/* avoid the C names bitand and bitor, since they are C++ keywords */ -DATA(insert OID = 1673 ( bitand PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1560 "1560 1560" _null_ _null_ _null_ _null_ _null_ bit_and _null_ _null_ _null_ )); -DATA(insert OID = 1674 ( bitor PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1560 "1560 1560" _null_ _null_ _null_ _null_ _null_ bit_or _null_ _null_ _null_ )); -DATA(insert OID = 1675 ( bitxor PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1560 "1560 1560" _null_ _null_ _null_ _null_ _null_ bitxor _null_ _null_ _null_ )); -DATA(insert OID = 1676 ( bitnot PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 1560 "1560" _null_ _null_ _null_ _null_ _null_ bitnot _null_ _null_ _null_ )); -DATA(insert OID = 1677 ( bitshiftleft PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1560 "1560 23" _null_ _null_ _null_ _null_ _null_ bitshiftleft _null_ _null_ _null_ )); -DATA(insert OID = 1678 ( bitshiftright PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1560 "1560 23" _null_ _null_ _null_ _null_ _null_ bitshiftright _null_ _null_ _null_ )); -DATA(insert OID = 1679 ( bitcat PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1562 "1562 1562" _null_ _null_ _null_ _null_ _null_ bitcat _null_ _null_ _null_ )); -DATA(insert OID = 1680 ( substring PGNSP PGUID 12 1 0 0 0 f f f t f i s 3 0 1560 "1560 23 23" _null_ _null_ _null_ _null_ _null_ bitsubstr _null_ _null_ _null_ )); -DESCR("extract portion of bitstring"); -DATA(insert OID = 1681 ( length PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "1560" _null_ _null_ _null_ _null_ _null_ bitlength _null_ _null_ _null_ )); -DESCR("bitstring length"); -DATA(insert OID = 1682 ( octet_length PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "1560" _null_ _null_ _null_ _null_ _null_ bitoctetlength _null_ _null_ _null_ )); -DESCR("octet length"); -DATA(insert OID = 1683 ( bit PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1560 "23 23" _null_ _null_ _null_ _null_ _null_ bitfromint4 _null_ _null_ _null_ )); -DESCR("convert int4 to bitstring"); -DATA(insert OID = 1684 ( int4 PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "1560" _null_ _null_ _null_ _null_ _null_ bittoint4 _null_ _null_ _null_ )); -DESCR("convert bitstring to int4"); - -DATA(insert OID = 1685 ( bit PGNSP PGUID 12 1 0 0 0 f f f t f i s 3 0 1560 "1560 23 16" _null_ _null_ _null_ _null_ _null_ bit _null_ _null_ _null_ )); -DESCR("adjust bit() to typmod length"); -DATA(insert OID = 3158 ( varbit_transform PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2281 "2281" _null_ _null_ _null_ _null_ _null_ varbit_transform _null_ _null_ _null_ )); -DESCR("transform a varbit length coercion"); -DATA(insert OID = 1687 ( varbit PGNSP PGUID 12 1 0 0 varbit_transform f f f t f i s 3 0 1562 "1562 23 16" _null_ _null_ _null_ _null_ _null_ varbit _null_ _null_ _null_ )); -DESCR("adjust varbit() to typmod length"); - -DATA(insert OID = 1698 ( position PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "1560 1560" _null_ _null_ _null_ _null_ _null_ bitposition _null_ _null_ _null_ )); -DESCR("position of sub-bitstring"); -DATA(insert OID = 1699 ( substring PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1560 "1560 23" _null_ _null_ _null_ _null_ _null_ bitsubstr_no_len _null_ _null_ _null_ )); -DESCR("extract portion of bitstring"); - -DATA(insert OID = 3030 ( overlay PGNSP PGUID 12 1 0 0 0 f f f t f i s 4 0 1560 "1560 1560 23 23" _null_ _null_ _null_ _null_ _null_ bitoverlay _null_ _null_ _null_ )); -DESCR("substitute portion of bitstring"); -DATA(insert OID = 3031 ( overlay PGNSP PGUID 12 1 0 0 0 f f f t f i s 3 0 1560 "1560 1560 23" _null_ _null_ _null_ _null_ _null_ bitoverlay_no_len _null_ _null_ _null_ )); -DESCR("substitute portion of bitstring"); -DATA(insert OID = 3032 ( get_bit PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "1560 23" _null_ _null_ _null_ _null_ _null_ bitgetbit _null_ _null_ _null_ )); -DESCR("get bit"); -DATA(insert OID = 3033 ( set_bit PGNSP PGUID 12 1 0 0 0 f f f t f i s 3 0 1560 "1560 23 23" _null_ _null_ _null_ _null_ _null_ bitsetbit _null_ _null_ _null_ )); -DESCR("set bit"); - -/* for macaddr type support */ -DATA(insert OID = 436 ( macaddr_in PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 829 "2275" _null_ _null_ _null_ _null_ _null_ macaddr_in _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 437 ( macaddr_out PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2275 "829" _null_ _null_ _null_ _null_ _null_ macaddr_out _null_ _null_ _null_ )); -DESCR("I/O"); - -DATA(insert OID = 753 ( trunc PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 829 "829" _null_ _null_ _null_ _null_ _null_ macaddr_trunc _null_ _null_ _null_ )); -DESCR("MACADDR manufacturer fields"); - -DATA(insert OID = 830 ( macaddr_eq PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "829 829" _null_ _null_ _null_ _null_ _null_ macaddr_eq _null_ _null_ _null_ )); -DATA(insert OID = 831 ( macaddr_lt PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "829 829" _null_ _null_ _null_ _null_ _null_ macaddr_lt _null_ _null_ _null_ )); -DATA(insert OID = 832 ( macaddr_le PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "829 829" _null_ _null_ _null_ _null_ _null_ macaddr_le _null_ _null_ _null_ )); -DATA(insert OID = 833 ( macaddr_gt PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "829 829" _null_ _null_ _null_ _null_ _null_ macaddr_gt _null_ _null_ _null_ )); -DATA(insert OID = 834 ( macaddr_ge PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "829 829" _null_ _null_ _null_ _null_ _null_ macaddr_ge _null_ _null_ _null_ )); -DATA(insert OID = 835 ( macaddr_ne PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "829 829" _null_ _null_ _null_ _null_ _null_ macaddr_ne _null_ _null_ _null_ )); -DATA(insert OID = 836 ( macaddr_cmp PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "829 829" _null_ _null_ _null_ _null_ _null_ macaddr_cmp _null_ _null_ _null_ )); -DESCR("less-equal-greater"); -DATA(insert OID = 3144 ( macaddr_not PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 829 "829" _null_ _null_ _null_ _null_ _null_ macaddr_not _null_ _null_ _null_ )); -DATA(insert OID = 3145 ( macaddr_and PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 829 "829 829" _null_ _null_ _null_ _null_ _null_ macaddr_and _null_ _null_ _null_ )); -DATA(insert OID = 3146 ( macaddr_or PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 829 "829 829" _null_ _null_ _null_ _null_ _null_ macaddr_or _null_ _null_ _null_ )); -DATA(insert OID = 3359 ( macaddr_sortsupport PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2278 "2281" _null_ _null_ _null_ _null_ _null_ macaddr_sortsupport _null_ _null_ _null_ )); -DESCR("sort support"); - -/* for macaddr8 type support */ -DATA(insert OID = 4110 ( macaddr8_in PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 774 "2275" _null_ _null_ _null_ _null_ _null_ macaddr8_in _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 4111 ( macaddr8_out PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2275 "774" _null_ _null_ _null_ _null_ _null_ macaddr8_out _null_ _null_ _null_ )); -DESCR("I/O"); - -DATA(insert OID = 4112 ( trunc PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 774 "774" _null_ _null_ _null_ _null_ _null_ macaddr8_trunc _null_ _null_ _null_ )); -DESCR("MACADDR8 manufacturer fields"); - -DATA(insert OID = 4113 ( macaddr8_eq PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "774 774" _null_ _null_ _null_ _null_ _null_ macaddr8_eq _null_ _null_ _null_ )); -DATA(insert OID = 4114 ( macaddr8_lt PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "774 774" _null_ _null_ _null_ _null_ _null_ macaddr8_lt _null_ _null_ _null_ )); -DATA(insert OID = 4115 ( macaddr8_le PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "774 774" _null_ _null_ _null_ _null_ _null_ macaddr8_le _null_ _null_ _null_ )); -DATA(insert OID = 4116 ( macaddr8_gt PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "774 774" _null_ _null_ _null_ _null_ _null_ macaddr8_gt _null_ _null_ _null_ )); -DATA(insert OID = 4117 ( macaddr8_ge PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "774 774" _null_ _null_ _null_ _null_ _null_ macaddr8_ge _null_ _null_ _null_ )); -DATA(insert OID = 4118 ( macaddr8_ne PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "774 774" _null_ _null_ _null_ _null_ _null_ macaddr8_ne _null_ _null_ _null_ )); -DATA(insert OID = 4119 ( macaddr8_cmp PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "774 774" _null_ _null_ _null_ _null_ _null_ macaddr8_cmp _null_ _null_ _null_ )); -DESCR("less-equal-greater"); -DATA(insert OID = 4120 ( macaddr8_not PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 774 "774" _null_ _null_ _null_ _null_ _null_ macaddr8_not _null_ _null_ _null_ )); -DATA(insert OID = 4121 ( macaddr8_and PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 774 "774 774" _null_ _null_ _null_ _null_ _null_ macaddr8_and _null_ _null_ _null_ )); -DATA(insert OID = 4122 ( macaddr8_or PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 774 "774 774" _null_ _null_ _null_ _null_ _null_ macaddr8_or _null_ _null_ _null_ )); -DATA(insert OID = 4123 ( macaddr8 PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 774 "829" _null_ _null_ _null_ _null_ _null_ macaddrtomacaddr8 _null_ _null_ _null_ )); -DESCR("convert macaddr to macaddr8"); -DATA(insert OID = 4124 ( macaddr PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 829 "774" _null_ _null_ _null_ _null_ _null_ macaddr8tomacaddr _null_ _null_ _null_ )); -DESCR("convert macaddr8 to macaddr"); -DATA(insert OID = 4125 ( macaddr8_set7bit PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 774 "774" _null_ _null_ _null_ _null_ _null_ macaddr8_set7bit _null_ _null_ _null_ )); -DESCR("set 7th bit in macaddr8"); - -/* for inet type support */ -DATA(insert OID = 910 ( inet_in PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 869 "2275" _null_ _null_ _null_ _null_ _null_ inet_in _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 911 ( inet_out PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2275 "869" _null_ _null_ _null_ _null_ _null_ inet_out _null_ _null_ _null_ )); -DESCR("I/O"); - -/* for cidr type support */ -DATA(insert OID = 1267 ( cidr_in PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 650 "2275" _null_ _null_ _null_ _null_ _null_ cidr_in _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 1427 ( cidr_out PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2275 "650" _null_ _null_ _null_ _null_ _null_ cidr_out _null_ _null_ _null_ )); -DESCR("I/O"); - -/* these are used for both inet and cidr */ -DATA(insert OID = 920 ( network_eq PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "869 869" _null_ _null_ _null_ _null_ _null_ network_eq _null_ _null_ _null_ )); -DATA(insert OID = 921 ( network_lt PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "869 869" _null_ _null_ _null_ _null_ _null_ network_lt _null_ _null_ _null_ )); -DATA(insert OID = 922 ( network_le PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "869 869" _null_ _null_ _null_ _null_ _null_ network_le _null_ _null_ _null_ )); -DATA(insert OID = 923 ( network_gt PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "869 869" _null_ _null_ _null_ _null_ _null_ network_gt _null_ _null_ _null_ )); -DATA(insert OID = 924 ( network_ge PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "869 869" _null_ _null_ _null_ _null_ _null_ network_ge _null_ _null_ _null_ )); -DATA(insert OID = 925 ( network_ne PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "869 869" _null_ _null_ _null_ _null_ _null_ network_ne _null_ _null_ _null_ )); -DATA(insert OID = 3562 ( network_larger PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 869 "869 869" _null_ _null_ _null_ _null_ _null_ network_larger _null_ _null_ _null_ )); -DESCR("larger of two"); -DATA(insert OID = 3563 ( network_smaller PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 869 "869 869" _null_ _null_ _null_ _null_ _null_ network_smaller _null_ _null_ _null_ )); -DESCR("smaller of two"); -DATA(insert OID = 926 ( network_cmp PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "869 869" _null_ _null_ _null_ _null_ _null_ network_cmp _null_ _null_ _null_ )); -DESCR("less-equal-greater"); -DATA(insert OID = 927 ( network_sub PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "869 869" _null_ _null_ _null_ _null_ _null_ network_sub _null_ _null_ _null_ )); -DATA(insert OID = 928 ( network_subeq PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "869 869" _null_ _null_ _null_ _null_ _null_ network_subeq _null_ _null_ _null_ )); -DATA(insert OID = 929 ( network_sup PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "869 869" _null_ _null_ _null_ _null_ _null_ network_sup _null_ _null_ _null_ )); -DATA(insert OID = 930 ( network_supeq PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "869 869" _null_ _null_ _null_ _null_ _null_ network_supeq _null_ _null_ _null_ )); -DATA(insert OID = 3551 ( network_overlap PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "869 869" _null_ _null_ _null_ _null_ _null_ network_overlap _null_ _null_ _null_ )); - -/* inet/cidr functions */ -DATA(insert OID = 598 ( abbrev PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 25 "869" _null_ _null_ _null_ _null_ _null_ inet_abbrev _null_ _null_ _null_ )); -DESCR("abbreviated display of inet value"); -DATA(insert OID = 599 ( abbrev PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 25 "650" _null_ _null_ _null_ _null_ _null_ cidr_abbrev _null_ _null_ _null_ )); -DESCR("abbreviated display of cidr value"); -DATA(insert OID = 605 ( set_masklen PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 869 "869 23" _null_ _null_ _null_ _null_ _null_ inet_set_masklen _null_ _null_ _null_ )); -DESCR("change netmask of inet"); -DATA(insert OID = 635 ( set_masklen PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 650 "650 23" _null_ _null_ _null_ _null_ _null_ cidr_set_masklen _null_ _null_ _null_ )); -DESCR("change netmask of cidr"); -DATA(insert OID = 711 ( family PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "869" _null_ _null_ _null_ _null_ _null_ network_family _null_ _null_ _null_ )); -DESCR("address family (4 for IPv4, 6 for IPv6)"); -DATA(insert OID = 683 ( network PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 650 "869" _null_ _null_ _null_ _null_ _null_ network_network _null_ _null_ _null_ )); -DESCR("network part of address"); -DATA(insert OID = 696 ( netmask PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 869 "869" _null_ _null_ _null_ _null_ _null_ network_netmask _null_ _null_ _null_ )); -DESCR("netmask of address"); -DATA(insert OID = 697 ( masklen PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "869" _null_ _null_ _null_ _null_ _null_ network_masklen _null_ _null_ _null_ )); -DESCR("netmask length"); -DATA(insert OID = 698 ( broadcast PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 869 "869" _null_ _null_ _null_ _null_ _null_ network_broadcast _null_ _null_ _null_ )); -DESCR("broadcast address of network"); -DATA(insert OID = 699 ( host PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 25 "869" _null_ _null_ _null_ _null_ _null_ network_host _null_ _null_ _null_ )); -DESCR("show address octets only"); -DATA(insert OID = 730 ( text PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 25 "869" _null_ _null_ _null_ _null_ _null_ network_show _null_ _null_ _null_ )); -DESCR("show all parts of inet/cidr value"); -DATA(insert OID = 1362 ( hostmask PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 869 "869" _null_ _null_ _null_ _null_ _null_ network_hostmask _null_ _null_ _null_ )); -DESCR("hostmask of address"); -DATA(insert OID = 1715 ( cidr PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 650 "869" _null_ _null_ _null_ _null_ _null_ inet_to_cidr _null_ _null_ _null_ )); -DESCR("convert inet to cidr"); - -DATA(insert OID = 2196 ( inet_client_addr PGNSP PGUID 12 1 0 0 0 f f f f f s r 0 0 869 "" _null_ _null_ _null_ _null_ _null_ inet_client_addr _null_ _null_ _null_ )); -DESCR("inet address of the client"); -DATA(insert OID = 2197 ( inet_client_port PGNSP PGUID 12 1 0 0 0 f f f f f s r 0 0 23 "" _null_ _null_ _null_ _null_ _null_ inet_client_port _null_ _null_ _null_ )); -DESCR("client's port number for this connection"); -DATA(insert OID = 2198 ( inet_server_addr PGNSP PGUID 12 1 0 0 0 f f f f f s s 0 0 869 "" _null_ _null_ _null_ _null_ _null_ inet_server_addr _null_ _null_ _null_ )); -DESCR("inet address of the server"); -DATA(insert OID = 2199 ( inet_server_port PGNSP PGUID 12 1 0 0 0 f f f f f s s 0 0 23 "" _null_ _null_ _null_ _null_ _null_ inet_server_port _null_ _null_ _null_ )); -DESCR("server's port number for this connection"); - -DATA(insert OID = 2627 ( inetnot PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 869 "869" _null_ _null_ _null_ _null_ _null_ inetnot _null_ _null_ _null_ )); -DATA(insert OID = 2628 ( inetand PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 869 "869 869" _null_ _null_ _null_ _null_ _null_ inetand _null_ _null_ _null_ )); -DATA(insert OID = 2629 ( inetor PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 869 "869 869" _null_ _null_ _null_ _null_ _null_ inetor _null_ _null_ _null_ )); -DATA(insert OID = 2630 ( inetpl PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 869 "869 20" _null_ _null_ _null_ _null_ _null_ inetpl _null_ _null_ _null_ )); -DATA(insert OID = 2631 ( int8pl_inet PGNSP PGUID 14 1 0 0 0 f f f t f i s 2 0 869 "20 869" _null_ _null_ _null_ _null_ _null_ "select $2 + $1" _null_ _null_ _null_ )); -DATA(insert OID = 2632 ( inetmi_int8 PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 869 "869 20" _null_ _null_ _null_ _null_ _null_ inetmi_int8 _null_ _null_ _null_ )); -DATA(insert OID = 2633 ( inetmi PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 20 "869 869" _null_ _null_ _null_ _null_ _null_ inetmi _null_ _null_ _null_ )); -DATA(insert OID = 4071 ( inet_same_family PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "869 869" _null_ _null_ _null_ _null_ _null_ inet_same_family _null_ _null_ _null_ )); -DESCR("are the addresses from the same family?"); -DATA(insert OID = 4063 ( inet_merge PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 650 "869 869" _null_ _null_ _null_ _null_ _null_ inet_merge _null_ _null_ _null_ )); -DESCR("the smallest network which includes both of the given networks"); - -/* GiST support for inet and cidr */ -DATA(insert OID = 3553 ( inet_gist_consistent PGNSP PGUID 12 1 0 0 0 f f f t f i s 5 0 16 "2281 869 21 26 2281" _null_ _null_ _null_ _null_ _null_ inet_gist_consistent _null_ _null_ _null_ )); -DESCR("GiST support"); -DATA(insert OID = 3554 ( inet_gist_union PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 869 "2281 2281" _null_ _null_ _null_ _null_ _null_ inet_gist_union _null_ _null_ _null_ )); -DESCR("GiST support"); -DATA(insert OID = 3555 ( inet_gist_compress PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2281 "2281" _null_ _null_ _null_ _null_ _null_ inet_gist_compress _null_ _null_ _null_ )); -DESCR("GiST support"); -DATA(insert OID = 3573 ( inet_gist_fetch PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2281 "2281" _null_ _null_ _null_ _null_ _null_ inet_gist_fetch _null_ _null_ _null_ )); -DESCR("GiST support"); -DATA(insert OID = 3557 ( inet_gist_penalty PGNSP PGUID 12 1 0 0 0 f f f t f i s 3 0 2281 "2281 2281 2281" _null_ _null_ _null_ _null_ _null_ inet_gist_penalty _null_ _null_ _null_ )); -DESCR("GiST support"); -DATA(insert OID = 3558 ( inet_gist_picksplit PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 2281 "2281 2281" _null_ _null_ _null_ _null_ _null_ inet_gist_picksplit _null_ _null_ _null_ )); -DESCR("GiST support"); -DATA(insert OID = 3559 ( inet_gist_same PGNSP PGUID 12 1 0 0 0 f f f t f i s 3 0 2281 "869 869 2281" _null_ _null_ _null_ _null_ _null_ inet_gist_same _null_ _null_ _null_ )); -DESCR("GiST support"); - -/* SP-GiST support for inet and cidr */ -DATA(insert OID = 3795 ( inet_spg_config PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 2278 "2281 2281" _null_ _null_ _null_ _null_ _null_ inet_spg_config _null_ _null_ _null_ )); -DESCR("SP-GiST support"); -DATA(insert OID = 3796 ( inet_spg_choose PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 2278 "2281 2281" _null_ _null_ _null_ _null_ _null_ inet_spg_choose _null_ _null_ _null_ )); -DESCR("SP-GiST support"); -DATA(insert OID = 3797 ( inet_spg_picksplit PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 2278 "2281 2281" _null_ _null_ _null_ _null_ _null_ inet_spg_picksplit _null_ _null_ _null_ )); -DESCR("SP-GiST support"); -DATA(insert OID = 3798 ( inet_spg_inner_consistent PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 2278 "2281 2281" _null_ _null_ _null_ _null_ _null_ inet_spg_inner_consistent _null_ _null_ _null_ )); -DESCR("SP-GiST support"); -DATA(insert OID = 3799 ( inet_spg_leaf_consistent PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "2281 2281" _null_ _null_ _null_ _null_ _null_ inet_spg_leaf_consistent _null_ _null_ _null_ )); -DESCR("SP-GiST support"); - -/* Selectivity estimation for inet and cidr */ -DATA(insert OID = 3560 ( networksel PGNSP PGUID 12 1 0 0 0 f f f t f s s 4 0 701 "2281 26 2281 23" _null_ _null_ _null_ _null_ _null_ networksel _null_ _null_ _null_ )); -DESCR("restriction selectivity for network operators"); -DATA(insert OID = 3561 ( networkjoinsel PGNSP PGUID 12 1 0 0 0 f f f t f s s 5 0 701 "2281 26 2281 21 2281" _null_ _null_ _null_ _null_ _null_ networkjoinsel _null_ _null_ _null_ )); -DESCR("join selectivity for network operators"); - -DATA(insert OID = 1690 ( time_mi_time PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1186 "1083 1083" _null_ _null_ _null_ _null_ _null_ time_mi_time _null_ _null_ _null_ )); - -DATA(insert OID = 1691 ( boolle PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "16 16" _null_ _null_ _null_ _null_ _null_ boolle _null_ _null_ _null_ )); -DATA(insert OID = 1692 ( boolge PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "16 16" _null_ _null_ _null_ _null_ _null_ boolge _null_ _null_ _null_ )); -DATA(insert OID = 1693 ( btboolcmp PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "16 16" _null_ _null_ _null_ _null_ _null_ btboolcmp _null_ _null_ _null_ )); -DESCR("less-equal-greater"); - -DATA(insert OID = 1688 ( time_hash PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "1083" _null_ _null_ _null_ _null_ _null_ time_hash _null_ _null_ _null_ )); -DESCR("hash"); -DATA(insert OID = 3409 ( time_hash_extended PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 20 "1083 20" _null_ _null_ _null_ _null_ _null_ time_hash_extended _null_ _null_ _null_ )); -DESCR("hash"); -DATA(insert OID = 1696 ( timetz_hash PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "1266" _null_ _null_ _null_ _null_ _null_ timetz_hash _null_ _null_ _null_ )); -DESCR("hash"); -DATA(insert OID = 3410 ( timetz_hash_extended PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 20 "1266 20" _null_ _null_ _null_ _null_ _null_ timetz_hash_extended _null_ _null_ _null_ )); -DESCR("hash"); -DATA(insert OID = 1697 ( interval_hash PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "1186" _null_ _null_ _null_ _null_ _null_ interval_hash _null_ _null_ _null_ )); -DESCR("hash"); -DATA(insert OID = 3418 ( interval_hash_extended PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 20 "1186 20" _null_ _null_ _null_ _null_ _null_ interval_hash_extended _null_ _null_ _null_ )); -DESCR("hash"); - - -/* OID's 1700 - 1799 NUMERIC data type */ -DATA(insert OID = 1701 ( numeric_in PGNSP PGUID 12 1 0 0 0 f f f t f i s 3 0 1700 "2275 26 23" _null_ _null_ _null_ _null_ _null_ numeric_in _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 1702 ( numeric_out PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2275 "1700" _null_ _null_ _null_ _null_ _null_ numeric_out _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2917 ( numerictypmodin PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "1263" _null_ _null_ _null_ _null_ _null_ numerictypmodin _null_ _null_ _null_ )); -DESCR("I/O typmod"); -DATA(insert OID = 2918 ( numerictypmodout PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2275 "23" _null_ _null_ _null_ _null_ _null_ numerictypmodout _null_ _null_ _null_ )); -DESCR("I/O typmod"); -DATA(insert OID = 3157 ( numeric_transform PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2281 "2281" _null_ _null_ _null_ _null_ _null_ numeric_transform _null_ _null_ _null_ )); -DESCR("transform a numeric length coercion"); -DATA(insert OID = 1703 ( numeric PGNSP PGUID 12 1 0 0 numeric_transform f f f t f i s 2 0 1700 "1700 23" _null_ _null_ _null_ _null_ _null_ numeric _null_ _null_ _null_ )); -DESCR("adjust numeric to typmod precision/scale"); -DATA(insert OID = 1704 ( numeric_abs PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 1700 "1700" _null_ _null_ _null_ _null_ _null_ numeric_abs _null_ _null_ _null_ )); -DATA(insert OID = 1705 ( abs PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 1700 "1700" _null_ _null_ _null_ _null_ _null_ numeric_abs _null_ _null_ _null_ )); -DESCR("absolute value"); -DATA(insert OID = 1706 ( sign PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 1700 "1700" _null_ _null_ _null_ _null_ _null_ numeric_sign _null_ _null_ _null_ )); -DESCR("sign of value"); -DATA(insert OID = 1707 ( round PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1700 "1700 23" _null_ _null_ _null_ _null_ _null_ numeric_round _null_ _null_ _null_ )); -DESCR("value rounded to 'scale'"); -DATA(insert OID = 1708 ( round PGNSP PGUID 14 1 0 0 0 f f f t f i s 1 0 1700 "1700" _null_ _null_ _null_ _null_ _null_ "select pg_catalog.round($1,0)" _null_ _null_ _null_ )); -DESCR("value rounded to 'scale' of zero"); -DATA(insert OID = 1709 ( trunc PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1700 "1700 23" _null_ _null_ _null_ _null_ _null_ numeric_trunc _null_ _null_ _null_ )); -DESCR("value truncated to 'scale'"); -DATA(insert OID = 1710 ( trunc PGNSP PGUID 14 1 0 0 0 f f f t f i s 1 0 1700 "1700" _null_ _null_ _null_ _null_ _null_ "select pg_catalog.trunc($1,0)" _null_ _null_ _null_ )); -DESCR("value truncated to 'scale' of zero"); -DATA(insert OID = 1711 ( ceil PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 1700 "1700" _null_ _null_ _null_ _null_ _null_ numeric_ceil _null_ _null_ _null_ )); -DESCR("nearest integer >= value"); -DATA(insert OID = 2167 ( ceiling PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 1700 "1700" _null_ _null_ _null_ _null_ _null_ numeric_ceil _null_ _null_ _null_ )); -DESCR("nearest integer >= value"); -DATA(insert OID = 1712 ( floor PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 1700 "1700" _null_ _null_ _null_ _null_ _null_ numeric_floor _null_ _null_ _null_ )); -DESCR("nearest integer <= value"); -DATA(insert OID = 1718 ( numeric_eq PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "1700 1700" _null_ _null_ _null_ _null_ _null_ numeric_eq _null_ _null_ _null_ )); -DATA(insert OID = 1719 ( numeric_ne PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "1700 1700" _null_ _null_ _null_ _null_ _null_ numeric_ne _null_ _null_ _null_ )); -DATA(insert OID = 1720 ( numeric_gt PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "1700 1700" _null_ _null_ _null_ _null_ _null_ numeric_gt _null_ _null_ _null_ )); -DATA(insert OID = 1721 ( numeric_ge PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "1700 1700" _null_ _null_ _null_ _null_ _null_ numeric_ge _null_ _null_ _null_ )); -DATA(insert OID = 1722 ( numeric_lt PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "1700 1700" _null_ _null_ _null_ _null_ _null_ numeric_lt _null_ _null_ _null_ )); -DATA(insert OID = 1723 ( numeric_le PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "1700 1700" _null_ _null_ _null_ _null_ _null_ numeric_le _null_ _null_ _null_ )); -DATA(insert OID = 1724 ( numeric_add PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1700 "1700 1700" _null_ _null_ _null_ _null_ _null_ numeric_add _null_ _null_ _null_ )); -DATA(insert OID = 1725 ( numeric_sub PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1700 "1700 1700" _null_ _null_ _null_ _null_ _null_ numeric_sub _null_ _null_ _null_ )); -DATA(insert OID = 1726 ( numeric_mul PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1700 "1700 1700" _null_ _null_ _null_ _null_ _null_ numeric_mul _null_ _null_ _null_ )); -DATA(insert OID = 1727 ( numeric_div PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1700 "1700 1700" _null_ _null_ _null_ _null_ _null_ numeric_div _null_ _null_ _null_ )); -DATA(insert OID = 1728 ( mod PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1700 "1700 1700" _null_ _null_ _null_ _null_ _null_ numeric_mod _null_ _null_ _null_ )); -DESCR("modulus"); -DATA(insert OID = 1729 ( numeric_mod PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1700 "1700 1700" _null_ _null_ _null_ _null_ _null_ numeric_mod _null_ _null_ _null_ )); -DATA(insert OID = 1730 ( sqrt PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 1700 "1700" _null_ _null_ _null_ _null_ _null_ numeric_sqrt _null_ _null_ _null_ )); -DESCR("square root"); -DATA(insert OID = 1731 ( numeric_sqrt PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 1700 "1700" _null_ _null_ _null_ _null_ _null_ numeric_sqrt _null_ _null_ _null_ )); -DESCR("square root"); -DATA(insert OID = 1732 ( exp PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 1700 "1700" _null_ _null_ _null_ _null_ _null_ numeric_exp _null_ _null_ _null_ )); -DESCR("natural exponential (e^x)"); -DATA(insert OID = 1733 ( numeric_exp PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 1700 "1700" _null_ _null_ _null_ _null_ _null_ numeric_exp _null_ _null_ _null_ )); -DESCR("natural exponential (e^x)"); -DATA(insert OID = 1734 ( ln PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 1700 "1700" _null_ _null_ _null_ _null_ _null_ numeric_ln _null_ _null_ _null_ )); -DESCR("natural logarithm"); -DATA(insert OID = 1735 ( numeric_ln PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 1700 "1700" _null_ _null_ _null_ _null_ _null_ numeric_ln _null_ _null_ _null_ )); -DESCR("natural logarithm"); -DATA(insert OID = 1736 ( log PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1700 "1700 1700" _null_ _null_ _null_ _null_ _null_ numeric_log _null_ _null_ _null_ )); -DESCR("logarithm base m of n"); -DATA(insert OID = 1737 ( numeric_log PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1700 "1700 1700" _null_ _null_ _null_ _null_ _null_ numeric_log _null_ _null_ _null_ )); -DESCR("logarithm base m of n"); -DATA(insert OID = 1738 ( pow PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1700 "1700 1700" _null_ _null_ _null_ _null_ _null_ numeric_power _null_ _null_ _null_ )); -DESCR("exponentiation"); -DATA(insert OID = 2169 ( power PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1700 "1700 1700" _null_ _null_ _null_ _null_ _null_ numeric_power _null_ _null_ _null_ )); -DESCR("exponentiation"); -DATA(insert OID = 1739 ( numeric_power PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1700 "1700 1700" _null_ _null_ _null_ _null_ _null_ numeric_power _null_ _null_ _null_ )); -DATA(insert OID = 3281 ( scale PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "1700" _null_ _null_ _null_ _null_ _null_ numeric_scale _null_ _null_ _null_ )); -DESCR("number of decimal digits in the fractional part"); -DATA(insert OID = 1740 ( numeric PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 1700 "23" _null_ _null_ _null_ _null_ _null_ int4_numeric _null_ _null_ _null_ )); -DESCR("convert int4 to numeric"); -DATA(insert OID = 1741 ( log PGNSP PGUID 14 1 0 0 0 f f f t f i s 1 0 1700 "1700" _null_ _null_ _null_ _null_ _null_ "select pg_catalog.log(10, $1)" _null_ _null_ _null_ )); -DESCR("base 10 logarithm"); -DATA(insert OID = 1742 ( numeric PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 1700 "700" _null_ _null_ _null_ _null_ _null_ float4_numeric _null_ _null_ _null_ )); -DESCR("convert float4 to numeric"); -DATA(insert OID = 1743 ( numeric PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 1700 "701" _null_ _null_ _null_ _null_ _null_ float8_numeric _null_ _null_ _null_ )); -DESCR("convert float8 to numeric"); -DATA(insert OID = 1744 ( int4 PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "1700" _null_ _null_ _null_ _null_ _null_ numeric_int4 _null_ _null_ _null_ )); -DESCR("convert numeric to int4"); -DATA(insert OID = 1745 ( float4 PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 700 "1700" _null_ _null_ _null_ _null_ _null_ numeric_float4 _null_ _null_ _null_ )); -DESCR("convert numeric to float4"); -DATA(insert OID = 1746 ( float8 PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 701 "1700" _null_ _null_ _null_ _null_ _null_ numeric_float8 _null_ _null_ _null_ )); -DESCR("convert numeric to float8"); -DATA(insert OID = 1973 ( div PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1700 "1700 1700" _null_ _null_ _null_ _null_ _null_ numeric_div_trunc _null_ _null_ _null_ )); -DESCR("trunc(x/y)"); -DATA(insert OID = 1980 ( numeric_div_trunc PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1700 "1700 1700" _null_ _null_ _null_ _null_ _null_ numeric_div_trunc _null_ _null_ _null_ )); -DESCR("trunc(x/y)"); -DATA(insert OID = 2170 ( width_bucket PGNSP PGUID 12 1 0 0 0 f f f t f i s 4 0 23 "1700 1700 1700 23" _null_ _null_ _null_ _null_ _null_ width_bucket_numeric _null_ _null_ _null_ )); -DESCR("bucket number of operand in equal-width histogram"); - -DATA(insert OID = 1747 ( time_pl_interval PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1083 "1083 1186" _null_ _null_ _null_ _null_ _null_ time_pl_interval _null_ _null_ _null_ )); -DATA(insert OID = 1748 ( time_mi_interval PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1083 "1083 1186" _null_ _null_ _null_ _null_ _null_ time_mi_interval _null_ _null_ _null_ )); -DATA(insert OID = 1749 ( timetz_pl_interval PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1266 "1266 1186" _null_ _null_ _null_ _null_ _null_ timetz_pl_interval _null_ _null_ _null_ )); -DATA(insert OID = 1750 ( timetz_mi_interval PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1266 "1266 1186" _null_ _null_ _null_ _null_ _null_ timetz_mi_interval _null_ _null_ _null_ )); - -DATA(insert OID = 1764 ( numeric_inc PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 1700 "1700" _null_ _null_ _null_ _null_ _null_ numeric_inc _null_ _null_ _null_ )); -DESCR("increment by one"); -DATA(insert OID = 1766 ( numeric_smaller PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1700 "1700 1700" _null_ _null_ _null_ _null_ _null_ numeric_smaller _null_ _null_ _null_ )); -DESCR("smaller of two"); -DATA(insert OID = 1767 ( numeric_larger PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1700 "1700 1700" _null_ _null_ _null_ _null_ _null_ numeric_larger _null_ _null_ _null_ )); -DESCR("larger of two"); -DATA(insert OID = 1769 ( numeric_cmp PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "1700 1700" _null_ _null_ _null_ _null_ _null_ numeric_cmp _null_ _null_ _null_ )); -DESCR("less-equal-greater"); -DATA(insert OID = 3283 ( numeric_sortsupport PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2278 "2281" _null_ _null_ _null_ _null_ _null_ numeric_sortsupport _null_ _null_ _null_ )); -DESCR("sort support"); -DATA(insert OID = 1771 ( numeric_uminus PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 1700 "1700" _null_ _null_ _null_ _null_ _null_ numeric_uminus _null_ _null_ _null_ )); -DATA(insert OID = 1779 ( int8 PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 20 "1700" _null_ _null_ _null_ _null_ _null_ numeric_int8 _null_ _null_ _null_ )); -DESCR("convert numeric to int8"); -DATA(insert OID = 1781 ( numeric PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 1700 "20" _null_ _null_ _null_ _null_ _null_ int8_numeric _null_ _null_ _null_ )); -DESCR("convert int8 to numeric"); -DATA(insert OID = 1782 ( numeric PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 1700 "21" _null_ _null_ _null_ _null_ _null_ int2_numeric _null_ _null_ _null_ )); -DESCR("convert int2 to numeric"); -DATA(insert OID = 1783 ( int2 PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 21 "1700" _null_ _null_ _null_ _null_ _null_ numeric_int2 _null_ _null_ _null_ )); -DESCR("convert numeric to int2"); - - -DATA(insert OID = 3556 ( bool PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 16 "3802" _null_ _null_ _null_ _null_ _null_ jsonb_bool _null_ _null_ _null_ )); -DESCR("convert jsonb to boolean"); -DATA(insert OID = 3449 ( numeric PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 1700 "3802" _null_ _null_ _null_ _null_ _null_ jsonb_numeric _null_ _null_ _null_ )); -DESCR("convert jsonb to numeric"); -DATA(insert OID = 3450 ( int2 PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 21 "3802" _null_ _null_ _null_ _null_ _null_ jsonb_int2 _null_ _null_ _null_ )); -DESCR("convert jsonb to int2"); -DATA(insert OID = 3451 ( int4 PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "3802" _null_ _null_ _null_ _null_ _null_ jsonb_int4 _null_ _null_ _null_ )); -DESCR("convert jsonb to int4"); -DATA(insert OID = 3452 ( int8 PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 20 "3802" _null_ _null_ _null_ _null_ _null_ jsonb_int8 _null_ _null_ _null_ )); -DESCR("convert jsonb to int8"); -DATA(insert OID = 3453 ( float4 PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 700 "3802" _null_ _null_ _null_ _null_ _null_ jsonb_float4 _null_ _null_ _null_ )); -DESCR("convert jsonb to float4"); -DATA(insert OID = 2580 ( float8 PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 701 "3802" _null_ _null_ _null_ _null_ _null_ jsonb_float8 _null_ _null_ _null_ )); -DESCR("convert jsonb to float8"); - -/* formatting */ -DATA(insert OID = 1770 ( to_char PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 25 "1184 25" _null_ _null_ _null_ _null_ _null_ timestamptz_to_char _null_ _null_ _null_ )); -DESCR("format timestamp with time zone to text"); -DATA(insert OID = 1772 ( to_char PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 25 "1700 25" _null_ _null_ _null_ _null_ _null_ numeric_to_char _null_ _null_ _null_ )); -DESCR("format numeric to text"); -DATA(insert OID = 1773 ( to_char PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 25 "23 25" _null_ _null_ _null_ _null_ _null_ int4_to_char _null_ _null_ _null_ )); -DESCR("format int4 to text"); -DATA(insert OID = 1774 ( to_char PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 25 "20 25" _null_ _null_ _null_ _null_ _null_ int8_to_char _null_ _null_ _null_ )); -DESCR("format int8 to text"); -DATA(insert OID = 1775 ( to_char PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 25 "700 25" _null_ _null_ _null_ _null_ _null_ float4_to_char _null_ _null_ _null_ )); -DESCR("format float4 to text"); -DATA(insert OID = 1776 ( to_char PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 25 "701 25" _null_ _null_ _null_ _null_ _null_ float8_to_char _null_ _null_ _null_ )); -DESCR("format float8 to text"); -DATA(insert OID = 1777 ( to_number PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 1700 "25 25" _null_ _null_ _null_ _null_ _null_ numeric_to_number _null_ _null_ _null_ )); -DESCR("convert text to numeric"); -DATA(insert OID = 1778 ( to_timestamp PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 1184 "25 25" _null_ _null_ _null_ _null_ _null_ to_timestamp _null_ _null_ _null_ )); -DESCR("convert text to timestamp with time zone"); -DATA(insert OID = 1780 ( to_date PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 1082 "25 25" _null_ _null_ _null_ _null_ _null_ to_date _null_ _null_ _null_ )); -DESCR("convert text to date"); -DATA(insert OID = 1768 ( to_char PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 25 "1186 25" _null_ _null_ _null_ _null_ _null_ interval_to_char _null_ _null_ _null_ )); -DESCR("format interval to text"); - -DATA(insert OID = 1282 ( quote_ident PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 25 "25" _null_ _null_ _null_ _null_ _null_ quote_ident _null_ _null_ _null_ )); -DESCR("quote an identifier for usage in a querystring"); -DATA(insert OID = 1283 ( quote_literal PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 25 "25" _null_ _null_ _null_ _null_ _null_ quote_literal _null_ _null_ _null_ )); -DESCR("quote a literal for usage in a querystring"); -DATA(insert OID = 1285 ( quote_literal PGNSP PGUID 14 1 0 0 0 f f f t f s s 1 0 25 "2283" _null_ _null_ _null_ _null_ _null_ "select pg_catalog.quote_literal($1::pg_catalog.text)" _null_ _null_ _null_ )); -DESCR("quote a data value for usage in a querystring"); -DATA(insert OID = 1289 ( quote_nullable PGNSP PGUID 12 1 0 0 0 f f f f f i s 1 0 25 "25" _null_ _null_ _null_ _null_ _null_ quote_nullable _null_ _null_ _null_ )); -DESCR("quote a possibly-null literal for usage in a querystring"); -DATA(insert OID = 1290 ( quote_nullable PGNSP PGUID 14 1 0 0 0 f f f f f s s 1 0 25 "2283" _null_ _null_ _null_ _null_ _null_ "select pg_catalog.quote_nullable($1::pg_catalog.text)" _null_ _null_ _null_ )); -DESCR("quote a possibly-null data value for usage in a querystring"); - -DATA(insert OID = 1798 ( oidin PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 26 "2275" _null_ _null_ _null_ _null_ _null_ oidin _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 1799 ( oidout PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2275 "26" _null_ _null_ _null_ _null_ _null_ oidout _null_ _null_ _null_ )); -DESCR("I/O"); - -DATA(insert OID = 3058 ( concat PGNSP PGUID 12 1 0 2276 0 f f f f f s s 1 0 25 "2276" "{2276}" "{v}" _null_ _null_ _null_ text_concat _null_ _null_ _null_ )); -DESCR("concatenate values"); -DATA(insert OID = 3059 ( concat_ws PGNSP PGUID 12 1 0 2276 0 f f f f f s s 2 0 25 "25 2276" "{25,2276}" "{i,v}" _null_ _null_ _null_ text_concat_ws _null_ _null_ _null_ )); -DESCR("concatenate values with separators"); -DATA(insert OID = 3060 ( left PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 25 "25 23" _null_ _null_ _null_ _null_ _null_ text_left _null_ _null_ _null_ )); -DESCR("extract the first n characters"); -DATA(insert OID = 3061 ( right PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 25 "25 23" _null_ _null_ _null_ _null_ _null_ text_right _null_ _null_ _null_ )); -DESCR("extract the last n characters"); -DATA(insert OID = 3062 ( reverse PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 25 "25" _null_ _null_ _null_ _null_ _null_ text_reverse _null_ _null_ _null_ )); -DESCR("reverse text"); -DATA(insert OID = 3539 ( format PGNSP PGUID 12 1 0 2276 0 f f f f f s s 2 0 25 "25 2276" "{25,2276}" "{i,v}" _null_ _null_ _null_ text_format _null_ _null_ _null_ )); -DESCR("format text message"); -DATA(insert OID = 3540 ( format PGNSP PGUID 12 1 0 0 0 f f f f f s s 1 0 25 "25" _null_ _null_ _null_ _null_ _null_ text_format_nv _null_ _null_ _null_ )); -DESCR("format text message"); - -DATA(insert OID = 1810 ( bit_length PGNSP PGUID 14 1 0 0 0 f f f t f i s 1 0 23 "17" _null_ _null_ _null_ _null_ _null_ "select pg_catalog.octet_length($1) * 8" _null_ _null_ _null_ )); -DESCR("length in bits"); -DATA(insert OID = 1811 ( bit_length PGNSP PGUID 14 1 0 0 0 f f f t f i s 1 0 23 "25" _null_ _null_ _null_ _null_ _null_ "select pg_catalog.octet_length($1) * 8" _null_ _null_ _null_ )); -DESCR("length in bits"); -DATA(insert OID = 1812 ( bit_length PGNSP PGUID 14 1 0 0 0 f f f t f i s 1 0 23 "1560" _null_ _null_ _null_ _null_ _null_ "select pg_catalog.length($1)" _null_ _null_ _null_ )); -DESCR("length in bits"); - -/* Selectivity estimators for LIKE and related operators */ -DATA(insert OID = 1814 ( iclikesel PGNSP PGUID 12 1 0 0 0 f f f t f s s 4 0 701 "2281 26 2281 23" _null_ _null_ _null_ _null_ _null_ iclikesel _null_ _null_ _null_ )); -DESCR("restriction selectivity of ILIKE"); -DATA(insert OID = 1815 ( icnlikesel PGNSP PGUID 12 1 0 0 0 f f f t f s s 4 0 701 "2281 26 2281 23" _null_ _null_ _null_ _null_ _null_ icnlikesel _null_ _null_ _null_ )); -DESCR("restriction selectivity of NOT ILIKE"); -DATA(insert OID = 1816 ( iclikejoinsel PGNSP PGUID 12 1 0 0 0 f f f t f s s 5 0 701 "2281 26 2281 21 2281" _null_ _null_ _null_ _null_ _null_ iclikejoinsel _null_ _null_ _null_ )); -DESCR("join selectivity of ILIKE"); -DATA(insert OID = 1817 ( icnlikejoinsel PGNSP PGUID 12 1 0 0 0 f f f t f s s 5 0 701 "2281 26 2281 21 2281" _null_ _null_ _null_ _null_ _null_ icnlikejoinsel _null_ _null_ _null_ )); -DESCR("join selectivity of NOT ILIKE"); -DATA(insert OID = 1818 ( regexeqsel PGNSP PGUID 12 1 0 0 0 f f f t f s s 4 0 701 "2281 26 2281 23" _null_ _null_ _null_ _null_ _null_ regexeqsel _null_ _null_ _null_ )); -DESCR("restriction selectivity of regex match"); -DATA(insert OID = 1819 ( likesel PGNSP PGUID 12 1 0 0 0 f f f t f s s 4 0 701 "2281 26 2281 23" _null_ _null_ _null_ _null_ _null_ likesel _null_ _null_ _null_ )); -DESCR("restriction selectivity of LIKE"); -DATA(insert OID = 1820 ( icregexeqsel PGNSP PGUID 12 1 0 0 0 f f f t f s s 4 0 701 "2281 26 2281 23" _null_ _null_ _null_ _null_ _null_ icregexeqsel _null_ _null_ _null_ )); -DESCR("restriction selectivity of case-insensitive regex match"); -DATA(insert OID = 1821 ( regexnesel PGNSP PGUID 12 1 0 0 0 f f f t f s s 4 0 701 "2281 26 2281 23" _null_ _null_ _null_ _null_ _null_ regexnesel _null_ _null_ _null_ )); -DESCR("restriction selectivity of regex non-match"); -DATA(insert OID = 1822 ( nlikesel PGNSP PGUID 12 1 0 0 0 f f f t f s s 4 0 701 "2281 26 2281 23" _null_ _null_ _null_ _null_ _null_ nlikesel _null_ _null_ _null_ )); -DESCR("restriction selectivity of NOT LIKE"); -DATA(insert OID = 1823 ( icregexnesel PGNSP PGUID 12 1 0 0 0 f f f t f s s 4 0 701 "2281 26 2281 23" _null_ _null_ _null_ _null_ _null_ icregexnesel _null_ _null_ _null_ )); -DESCR("restriction selectivity of case-insensitive regex non-match"); -DATA(insert OID = 1824 ( regexeqjoinsel PGNSP PGUID 12 1 0 0 0 f f f t f s s 5 0 701 "2281 26 2281 21 2281" _null_ _null_ _null_ _null_ _null_ regexeqjoinsel _null_ _null_ _null_ )); -DESCR("join selectivity of regex match"); -DATA(insert OID = 1825 ( likejoinsel PGNSP PGUID 12 1 0 0 0 f f f t f s s 5 0 701 "2281 26 2281 21 2281" _null_ _null_ _null_ _null_ _null_ likejoinsel _null_ _null_ _null_ )); -DESCR("join selectivity of LIKE"); -DATA(insert OID = 1826 ( icregexeqjoinsel PGNSP PGUID 12 1 0 0 0 f f f t f s s 5 0 701 "2281 26 2281 21 2281" _null_ _null_ _null_ _null_ _null_ icregexeqjoinsel _null_ _null_ _null_ )); -DESCR("join selectivity of case-insensitive regex match"); -DATA(insert OID = 1827 ( regexnejoinsel PGNSP PGUID 12 1 0 0 0 f f f t f s s 5 0 701 "2281 26 2281 21 2281" _null_ _null_ _null_ _null_ _null_ regexnejoinsel _null_ _null_ _null_ )); -DESCR("join selectivity of regex non-match"); -DATA(insert OID = 1828 ( nlikejoinsel PGNSP PGUID 12 1 0 0 0 f f f t f s s 5 0 701 "2281 26 2281 21 2281" _null_ _null_ _null_ _null_ _null_ nlikejoinsel _null_ _null_ _null_ )); -DESCR("join selectivity of NOT LIKE"); -DATA(insert OID = 1829 ( icregexnejoinsel PGNSP PGUID 12 1 0 0 0 f f f t f s s 5 0 701 "2281 26 2281 21 2281" _null_ _null_ _null_ _null_ _null_ icregexnejoinsel _null_ _null_ _null_ )); -DESCR("join selectivity of case-insensitive regex non-match"); -DATA(insert OID = 3437 ( prefixsel PGNSP PGUID 12 1 0 0 0 f f f t f s s 4 0 701 "2281 26 2281 23" _null_ _null_ _null_ _null_ _null_ prefixsel _null_ _null_ _null_ )); -DESCR("restriction selectivity of exact prefix"); -DATA(insert OID = 3438 ( prefixjoinsel PGNSP PGUID 12 1 0 0 0 f f f t f s s 5 0 701 "2281 26 2281 21 2281" _null_ _null_ _null_ _null_ _null_ prefixjoinsel _null_ _null_ _null_ )); -DESCR("join selectivity of exact prefix"); - -/* Aggregate-related functions */ -DATA(insert OID = 1830 ( float8_avg PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 701 "1022" _null_ _null_ _null_ _null_ _null_ float8_avg _null_ _null_ _null_ )); -DESCR("aggregate final function"); -DATA(insert OID = 2512 ( float8_var_pop PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 701 "1022" _null_ _null_ _null_ _null_ _null_ float8_var_pop _null_ _null_ _null_ )); -DESCR("aggregate final function"); -DATA(insert OID = 1831 ( float8_var_samp PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 701 "1022" _null_ _null_ _null_ _null_ _null_ float8_var_samp _null_ _null_ _null_ )); -DESCR("aggregate final function"); -DATA(insert OID = 2513 ( float8_stddev_pop PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 701 "1022" _null_ _null_ _null_ _null_ _null_ float8_stddev_pop _null_ _null_ _null_ )); -DESCR("aggregate final function"); -DATA(insert OID = 1832 ( float8_stddev_samp PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 701 "1022" _null_ _null_ _null_ _null_ _null_ float8_stddev_samp _null_ _null_ _null_ )); -DESCR("aggregate final function"); -DATA(insert OID = 1833 ( numeric_accum PGNSP PGUID 12 1 0 0 0 f f f f f i s 2 0 2281 "2281 1700" _null_ _null_ _null_ _null_ _null_ numeric_accum _null_ _null_ _null_ )); -DESCR("aggregate transition function"); -DATA(insert OID = 3341 ( numeric_combine PGNSP PGUID 12 1 0 0 0 f f f f f i s 2 0 2281 "2281 2281" _null_ _null_ _null_ _null_ _null_ numeric_combine _null_ _null_ _null_ )); -DESCR("aggregate combine function"); -DATA(insert OID = 2858 ( numeric_avg_accum PGNSP PGUID 12 1 0 0 0 f f f f f i s 2 0 2281 "2281 1700" _null_ _null_ _null_ _null_ _null_ numeric_avg_accum _null_ _null_ _null_ )); -DESCR("aggregate transition function"); -DATA(insert OID = 3337 ( numeric_avg_combine PGNSP PGUID 12 1 0 0 0 f f f f f i s 2 0 2281 "2281 2281" _null_ _null_ _null_ _null_ _null_ numeric_avg_combine _null_ _null_ _null_ )); -DESCR("aggregate combine function"); -DATA(insert OID = 2740 ( numeric_avg_serialize PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 17 "2281" _null_ _null_ _null_ _null_ _null_ numeric_avg_serialize _null_ _null_ _null_ )); -DESCR("aggregate serial function"); -DATA(insert OID = 2741 ( numeric_avg_deserialize PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 2281 "17 2281" _null_ _null_ _null_ _null_ _null_ numeric_avg_deserialize _null_ _null_ _null_ )); -DESCR("aggregate deserial function"); -DATA(insert OID = 3335 ( numeric_serialize PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 17 "2281" _null_ _null_ _null_ _null_ _null_ numeric_serialize _null_ _null_ _null_ )); -DESCR("aggregate serial function"); -DATA(insert OID = 3336 ( numeric_deserialize PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 2281 "17 2281" _null_ _null_ _null_ _null_ _null_ numeric_deserialize _null_ _null_ _null_ )); -DESCR("aggregate deserial function"); -DATA(insert OID = 3548 ( numeric_accum_inv PGNSP PGUID 12 1 0 0 0 f f f f f i s 2 0 2281 "2281 1700" _null_ _null_ _null_ _null_ _null_ numeric_accum_inv _null_ _null_ _null_ )); -DESCR("aggregate transition function"); -DATA(insert OID = 1834 ( int2_accum PGNSP PGUID 12 1 0 0 0 f f f f f i s 2 0 2281 "2281 21" _null_ _null_ _null_ _null_ _null_ int2_accum _null_ _null_ _null_ )); -DESCR("aggregate transition function"); -DATA(insert OID = 1835 ( int4_accum PGNSP PGUID 12 1 0 0 0 f f f f f i s 2 0 2281 "2281 23" _null_ _null_ _null_ _null_ _null_ int4_accum _null_ _null_ _null_ )); -DESCR("aggregate transition function"); -DATA(insert OID = 1836 ( int8_accum PGNSP PGUID 12 1 0 0 0 f f f f f i s 2 0 2281 "2281 20" _null_ _null_ _null_ _null_ _null_ int8_accum _null_ _null_ _null_ )); -DESCR("aggregate transition function"); -DATA(insert OID = 3338 ( numeric_poly_combine PGNSP PGUID 12 1 0 0 0 f f f f f i s 2 0 2281 "2281 2281" _null_ _null_ _null_ _null_ _null_ numeric_poly_combine _null_ _null_ _null_ )); -DESCR("aggregate combine function"); -DATA(insert OID = 3339 ( numeric_poly_serialize PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 17 "2281" _null_ _null_ _null_ _null_ _null_ numeric_poly_serialize _null_ _null_ _null_ )); -DESCR("aggregate serial function"); -DATA(insert OID = 3340 ( numeric_poly_deserialize PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 2281 "17 2281" _null_ _null_ _null_ _null_ _null_ numeric_poly_deserialize _null_ _null_ _null_ )); -DESCR("aggregate deserial function"); -DATA(insert OID = 2746 ( int8_avg_accum PGNSP PGUID 12 1 0 0 0 f f f f f i s 2 0 2281 "2281 20" _null_ _null_ _null_ _null_ _null_ int8_avg_accum _null_ _null_ _null_ )); -DESCR("aggregate transition function"); -DATA(insert OID = 3567 ( int2_accum_inv PGNSP PGUID 12 1 0 0 0 f f f f f i s 2 0 2281 "2281 21" _null_ _null_ _null_ _null_ _null_ int2_accum_inv _null_ _null_ _null_ )); -DESCR("aggregate transition function"); -DATA(insert OID = 3568 ( int4_accum_inv PGNSP PGUID 12 1 0 0 0 f f f f f i s 2 0 2281 "2281 23" _null_ _null_ _null_ _null_ _null_ int4_accum_inv _null_ _null_ _null_ )); -DESCR("aggregate transition function"); -DATA(insert OID = 3569 ( int8_accum_inv PGNSP PGUID 12 1 0 0 0 f f f f f i s 2 0 2281 "2281 20" _null_ _null_ _null_ _null_ _null_ int8_accum_inv _null_ _null_ _null_ )); -DESCR("aggregate transition function"); -DATA(insert OID = 3387 ( int8_avg_accum_inv PGNSP PGUID 12 1 0 0 0 f f f f f i s 2 0 2281 "2281 20" _null_ _null_ _null_ _null_ _null_ int8_avg_accum_inv _null_ _null_ _null_ )); -DESCR("aggregate transition function"); -DATA(insert OID = 2785 ( int8_avg_combine PGNSP PGUID 12 1 0 0 0 f f f f f i s 2 0 2281 "2281 2281" _null_ _null_ _null_ _null_ _null_ int8_avg_combine _null_ _null_ _null_ )); -DESCR("aggregate combine function"); -DATA(insert OID = 2786 ( int8_avg_serialize PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 17 "2281" _null_ _null_ _null_ _null_ _null_ int8_avg_serialize _null_ _null_ _null_ )); -DESCR("aggregate serial function"); -DATA(insert OID = 2787 ( int8_avg_deserialize PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 2281 "17 2281" _null_ _null_ _null_ _null_ _null_ int8_avg_deserialize _null_ _null_ _null_ )); -DESCR("aggregate deserial function"); -DATA(insert OID = 3324 ( int4_avg_combine PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1016 "1016 1016" _null_ _null_ _null_ _null_ _null_ int4_avg_combine _null_ _null_ _null_ )); -DESCR("aggregate combine function"); -DATA(insert OID = 3178 ( numeric_sum PGNSP PGUID 12 1 0 0 0 f f f f f i s 1 0 1700 "2281" _null_ _null_ _null_ _null_ _null_ numeric_sum _null_ _null_ _null_ )); -DESCR("aggregate final function"); -DATA(insert OID = 1837 ( numeric_avg PGNSP PGUID 12 1 0 0 0 f f f f f i s 1 0 1700 "2281" _null_ _null_ _null_ _null_ _null_ numeric_avg _null_ _null_ _null_ )); -DESCR("aggregate final function"); -DATA(insert OID = 2514 ( numeric_var_pop PGNSP PGUID 12 1 0 0 0 f f f f f i s 1 0 1700 "2281" _null_ _null_ _null_ _null_ _null_ numeric_var_pop _null_ _null_ _null_ )); -DESCR("aggregate final function"); -DATA(insert OID = 1838 ( numeric_var_samp PGNSP PGUID 12 1 0 0 0 f f f f f i s 1 0 1700 "2281" _null_ _null_ _null_ _null_ _null_ numeric_var_samp _null_ _null_ _null_ )); -DESCR("aggregate final function"); -DATA(insert OID = 2596 ( numeric_stddev_pop PGNSP PGUID 12 1 0 0 0 f f f f f i s 1 0 1700 "2281" _null_ _null_ _null_ _null_ _null_ numeric_stddev_pop _null_ _null_ _null_ )); -DESCR("aggregate final function"); -DATA(insert OID = 1839 ( numeric_stddev_samp PGNSP PGUID 12 1 0 0 0 f f f f f i s 1 0 1700 "2281" _null_ _null_ _null_ _null_ _null_ numeric_stddev_samp _null_ _null_ _null_ )); -DESCR("aggregate final function"); -DATA(insert OID = 1840 ( int2_sum PGNSP PGUID 12 1 0 0 0 f f f f f i s 2 0 20 "20 21" _null_ _null_ _null_ _null_ _null_ int2_sum _null_ _null_ _null_ )); -DESCR("aggregate transition function"); -DATA(insert OID = 1841 ( int4_sum PGNSP PGUID 12 1 0 0 0 f f f f f i s 2 0 20 "20 23" _null_ _null_ _null_ _null_ _null_ int4_sum _null_ _null_ _null_ )); -DESCR("aggregate transition function"); -DATA(insert OID = 1842 ( int8_sum PGNSP PGUID 12 1 0 0 0 f f f f f i s 2 0 1700 "1700 20" _null_ _null_ _null_ _null_ _null_ int8_sum _null_ _null_ _null_ )); -DESCR("aggregate transition function"); -DATA(insert OID = 3388 ( numeric_poly_sum PGNSP PGUID 12 1 0 0 0 f f f f f i s 1 0 1700 "2281" _null_ _null_ _null_ _null_ _null_ numeric_poly_sum _null_ _null_ _null_ )); -DESCR("aggregate final function"); -DATA(insert OID = 3389 ( numeric_poly_avg PGNSP PGUID 12 1 0 0 0 f f f f f i s 1 0 1700 "2281" _null_ _null_ _null_ _null_ _null_ numeric_poly_avg _null_ _null_ _null_ )); -DESCR("aggregate final function"); -DATA(insert OID = 3390 ( numeric_poly_var_pop PGNSP PGUID 12 1 0 0 0 f f f f f i s 1 0 1700 "2281" _null_ _null_ _null_ _null_ _null_ numeric_poly_var_pop _null_ _null_ _null_ )); -DESCR("aggregate final function"); -DATA(insert OID = 3391 ( numeric_poly_var_samp PGNSP PGUID 12 1 0 0 0 f f f f f i s 1 0 1700 "2281" _null_ _null_ _null_ _null_ _null_ numeric_poly_var_samp _null_ _null_ _null_ )); -DESCR("aggregate final function"); -DATA(insert OID = 3392 ( numeric_poly_stddev_pop PGNSP PGUID 12 1 0 0 0 f f f f f i s 1 0 1700 "2281" _null_ _null_ _null_ _null_ _null_ numeric_poly_stddev_pop _null_ _null_ _null_ )); -DESCR("aggregate final function"); -DATA(insert OID = 3393 ( numeric_poly_stddev_samp PGNSP PGUID 12 1 0 0 0 f f f f f i s 1 0 1700 "2281" _null_ _null_ _null_ _null_ _null_ numeric_poly_stddev_samp _null_ _null_ _null_ )); -DESCR("aggregate final function"); - -DATA(insert OID = 1843 ( interval_accum PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1187 "1187 1186" _null_ _null_ _null_ _null_ _null_ interval_accum _null_ _null_ _null_ )); -DESCR("aggregate transition function"); -DATA(insert OID = 3325 ( interval_combine PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1187 "1187 1187" _null_ _null_ _null_ _null_ _null_ interval_combine _null_ _null_ _null_ )); -DESCR("aggregate combine function"); -DATA(insert OID = 3549 ( interval_accum_inv PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1187 "1187 1186" _null_ _null_ _null_ _null_ _null_ interval_accum_inv _null_ _null_ _null_ )); -DESCR("aggregate transition function"); -DATA(insert OID = 1844 ( interval_avg PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 1186 "1187" _null_ _null_ _null_ _null_ _null_ interval_avg _null_ _null_ _null_ )); -DESCR("aggregate final function"); -DATA(insert OID = 1962 ( int2_avg_accum PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1016 "1016 21" _null_ _null_ _null_ _null_ _null_ int2_avg_accum _null_ _null_ _null_ )); -DESCR("aggregate transition function"); -DATA(insert OID = 1963 ( int4_avg_accum PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1016 "1016 23" _null_ _null_ _null_ _null_ _null_ int4_avg_accum _null_ _null_ _null_ )); -DESCR("aggregate transition function"); -DATA(insert OID = 3570 ( int2_avg_accum_inv PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1016 "1016 21" _null_ _null_ _null_ _null_ _null_ int2_avg_accum_inv _null_ _null_ _null_ )); -DESCR("aggregate transition function"); -DATA(insert OID = 3571 ( int4_avg_accum_inv PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1016 "1016 23" _null_ _null_ _null_ _null_ _null_ int4_avg_accum_inv _null_ _null_ _null_ )); -DESCR("aggregate transition function"); -DATA(insert OID = 1964 ( int8_avg PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 1700 "1016" _null_ _null_ _null_ _null_ _null_ int8_avg _null_ _null_ _null_ )); -DESCR("aggregate final function"); -DATA(insert OID = 3572 ( int2int4_sum PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 20 "1016" _null_ _null_ _null_ _null_ _null_ int2int4_sum _null_ _null_ _null_ )); -DESCR("aggregate final function"); -DATA(insert OID = 2805 ( int8inc_float8_float8 PGNSP PGUID 12 1 0 0 0 f f f t f i s 3 0 20 "20 701 701" _null_ _null_ _null_ _null_ _null_ int8inc_float8_float8 _null_ _null_ _null_ )); -DESCR("aggregate transition function"); -DATA(insert OID = 2806 ( float8_regr_accum PGNSP PGUID 12 1 0 0 0 f f f t f i s 3 0 1022 "1022 701 701" _null_ _null_ _null_ _null_ _null_ float8_regr_accum _null_ _null_ _null_ )); -DESCR("aggregate transition function"); -DATA(insert OID = 3342 ( float8_regr_combine PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1022 "1022 1022" _null_ _null_ _null_ _null_ _null_ float8_regr_combine _null_ _null_ _null_ )); -DESCR("aggregate combine function"); -DATA(insert OID = 2807 ( float8_regr_sxx PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 701 "1022" _null_ _null_ _null_ _null_ _null_ float8_regr_sxx _null_ _null_ _null_ )); -DESCR("aggregate final function"); -DATA(insert OID = 2808 ( float8_regr_syy PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 701 "1022" _null_ _null_ _null_ _null_ _null_ float8_regr_syy _null_ _null_ _null_ )); -DESCR("aggregate final function"); -DATA(insert OID = 2809 ( float8_regr_sxy PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 701 "1022" _null_ _null_ _null_ _null_ _null_ float8_regr_sxy _null_ _null_ _null_ )); -DESCR("aggregate final function"); -DATA(insert OID = 2810 ( float8_regr_avgx PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 701 "1022" _null_ _null_ _null_ _null_ _null_ float8_regr_avgx _null_ _null_ _null_ )); -DESCR("aggregate final function"); -DATA(insert OID = 2811 ( float8_regr_avgy PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 701 "1022" _null_ _null_ _null_ _null_ _null_ float8_regr_avgy _null_ _null_ _null_ )); -DESCR("aggregate final function"); -DATA(insert OID = 2812 ( float8_regr_r2 PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 701 "1022" _null_ _null_ _null_ _null_ _null_ float8_regr_r2 _null_ _null_ _null_ )); -DESCR("aggregate final function"); -DATA(insert OID = 2813 ( float8_regr_slope PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 701 "1022" _null_ _null_ _null_ _null_ _null_ float8_regr_slope _null_ _null_ _null_ )); -DESCR("aggregate final function"); -DATA(insert OID = 2814 ( float8_regr_intercept PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 701 "1022" _null_ _null_ _null_ _null_ _null_ float8_regr_intercept _null_ _null_ _null_ )); -DESCR("aggregate final function"); -DATA(insert OID = 2815 ( float8_covar_pop PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 701 "1022" _null_ _null_ _null_ _null_ _null_ float8_covar_pop _null_ _null_ _null_ )); -DESCR("aggregate final function"); -DATA(insert OID = 2816 ( float8_covar_samp PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 701 "1022" _null_ _null_ _null_ _null_ _null_ float8_covar_samp _null_ _null_ _null_ )); -DESCR("aggregate final function"); -DATA(insert OID = 2817 ( float8_corr PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 701 "1022" _null_ _null_ _null_ _null_ _null_ float8_corr _null_ _null_ _null_ )); -DESCR("aggregate final function"); - -DATA(insert OID = 3535 ( string_agg_transfn PGNSP PGUID 12 1 0 0 0 f f f f f i s 3 0 2281 "2281 25 25" _null_ _null_ _null_ _null_ _null_ string_agg_transfn _null_ _null_ _null_ )); -DESCR("aggregate transition function"); -DATA(insert OID = 3536 ( string_agg_finalfn PGNSP PGUID 12 1 0 0 0 f f f f f i s 1 0 25 "2281" _null_ _null_ _null_ _null_ _null_ string_agg_finalfn _null_ _null_ _null_ )); -DESCR("aggregate final function"); -DATA(insert OID = 3538 ( string_agg PGNSP PGUID 12 1 0 0 0 a f f f f i s 2 0 25 "25 25" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("concatenate aggregate input into a string"); -DATA(insert OID = 3543 ( bytea_string_agg_transfn PGNSP PGUID 12 1 0 0 0 f f f f f i s 3 0 2281 "2281 17 17" _null_ _null_ _null_ _null_ _null_ bytea_string_agg_transfn _null_ _null_ _null_ )); -DESCR("aggregate transition function"); -DATA(insert OID = 3544 ( bytea_string_agg_finalfn PGNSP PGUID 12 1 0 0 0 f f f f f i s 1 0 17 "2281" _null_ _null_ _null_ _null_ _null_ bytea_string_agg_finalfn _null_ _null_ _null_ )); -DESCR("aggregate final function"); -DATA(insert OID = 3545 ( string_agg PGNSP PGUID 12 1 0 0 0 a f f f f i s 2 0 17 "17 17" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("concatenate aggregate input into a bytea"); - -/* To ASCII conversion */ -DATA(insert OID = 1845 ( to_ascii PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 25 "25" _null_ _null_ _null_ _null_ _null_ to_ascii_default _null_ _null_ _null_ )); -DESCR("encode text from DB encoding to ASCII text"); -DATA(insert OID = 1846 ( to_ascii PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 25 "25 23" _null_ _null_ _null_ _null_ _null_ to_ascii_enc _null_ _null_ _null_ )); -DESCR("encode text from encoding to ASCII text"); -DATA(insert OID = 1847 ( to_ascii PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 25 "25 19" _null_ _null_ _null_ _null_ _null_ to_ascii_encname _null_ _null_ _null_ )); -DESCR("encode text from encoding to ASCII text"); - -DATA(insert OID = 1848 ( interval_pl_time PGNSP PGUID 14 1 0 0 0 f f f t f i s 2 0 1083 "1186 1083" _null_ _null_ _null_ _null_ _null_ "select $2 + $1" _null_ _null_ _null_ )); - -DATA(insert OID = 1850 ( int28eq PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "21 20" _null_ _null_ _null_ _null_ _null_ int28eq _null_ _null_ _null_ )); -DATA(insert OID = 1851 ( int28ne PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "21 20" _null_ _null_ _null_ _null_ _null_ int28ne _null_ _null_ _null_ )); -DATA(insert OID = 1852 ( int28lt PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "21 20" _null_ _null_ _null_ _null_ _null_ int28lt _null_ _null_ _null_ )); -DATA(insert OID = 1853 ( int28gt PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "21 20" _null_ _null_ _null_ _null_ _null_ int28gt _null_ _null_ _null_ )); -DATA(insert OID = 1854 ( int28le PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "21 20" _null_ _null_ _null_ _null_ _null_ int28le _null_ _null_ _null_ )); -DATA(insert OID = 1855 ( int28ge PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "21 20" _null_ _null_ _null_ _null_ _null_ int28ge _null_ _null_ _null_ )); - -DATA(insert OID = 1856 ( int82eq PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "20 21" _null_ _null_ _null_ _null_ _null_ int82eq _null_ _null_ _null_ )); -DATA(insert OID = 1857 ( int82ne PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "20 21" _null_ _null_ _null_ _null_ _null_ int82ne _null_ _null_ _null_ )); -DATA(insert OID = 1858 ( int82lt PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "20 21" _null_ _null_ _null_ _null_ _null_ int82lt _null_ _null_ _null_ )); -DATA(insert OID = 1859 ( int82gt PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "20 21" _null_ _null_ _null_ _null_ _null_ int82gt _null_ _null_ _null_ )); -DATA(insert OID = 1860 ( int82le PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "20 21" _null_ _null_ _null_ _null_ _null_ int82le _null_ _null_ _null_ )); -DATA(insert OID = 1861 ( int82ge PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "20 21" _null_ _null_ _null_ _null_ _null_ int82ge _null_ _null_ _null_ )); - -DATA(insert OID = 1892 ( int2and PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 21 "21 21" _null_ _null_ _null_ _null_ _null_ int2and _null_ _null_ _null_ )); -DATA(insert OID = 1893 ( int2or PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 21 "21 21" _null_ _null_ _null_ _null_ _null_ int2or _null_ _null_ _null_ )); -DATA(insert OID = 1894 ( int2xor PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 21 "21 21" _null_ _null_ _null_ _null_ _null_ int2xor _null_ _null_ _null_ )); -DATA(insert OID = 1895 ( int2not PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 21 "21" _null_ _null_ _null_ _null_ _null_ int2not _null_ _null_ _null_ )); -DATA(insert OID = 1896 ( int2shl PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 21 "21 23" _null_ _null_ _null_ _null_ _null_ int2shl _null_ _null_ _null_ )); -DATA(insert OID = 1897 ( int2shr PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 21 "21 23" _null_ _null_ _null_ _null_ _null_ int2shr _null_ _null_ _null_ )); - -DATA(insert OID = 1898 ( int4and PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "23 23" _null_ _null_ _null_ _null_ _null_ int4and _null_ _null_ _null_ )); -DATA(insert OID = 1899 ( int4or PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "23 23" _null_ _null_ _null_ _null_ _null_ int4or _null_ _null_ _null_ )); -DATA(insert OID = 1900 ( int4xor PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "23 23" _null_ _null_ _null_ _null_ _null_ int4xor _null_ _null_ _null_ )); -DATA(insert OID = 1901 ( int4not PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "23" _null_ _null_ _null_ _null_ _null_ int4not _null_ _null_ _null_ )); -DATA(insert OID = 1902 ( int4shl PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "23 23" _null_ _null_ _null_ _null_ _null_ int4shl _null_ _null_ _null_ )); -DATA(insert OID = 1903 ( int4shr PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "23 23" _null_ _null_ _null_ _null_ _null_ int4shr _null_ _null_ _null_ )); - -DATA(insert OID = 1904 ( int8and PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 20 "20 20" _null_ _null_ _null_ _null_ _null_ int8and _null_ _null_ _null_ )); -DATA(insert OID = 1905 ( int8or PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 20 "20 20" _null_ _null_ _null_ _null_ _null_ int8or _null_ _null_ _null_ )); -DATA(insert OID = 1906 ( int8xor PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 20 "20 20" _null_ _null_ _null_ _null_ _null_ int8xor _null_ _null_ _null_ )); -DATA(insert OID = 1907 ( int8not PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 20 "20" _null_ _null_ _null_ _null_ _null_ int8not _null_ _null_ _null_ )); -DATA(insert OID = 1908 ( int8shl PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 20 "20 23" _null_ _null_ _null_ _null_ _null_ int8shl _null_ _null_ _null_ )); -DATA(insert OID = 1909 ( int8shr PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 20 "20 23" _null_ _null_ _null_ _null_ _null_ int8shr _null_ _null_ _null_ )); - -DATA(insert OID = 1910 ( int8up PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 20 "20" _null_ _null_ _null_ _null_ _null_ int8up _null_ _null_ _null_ )); -DATA(insert OID = 1911 ( int2up PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 21 "21" _null_ _null_ _null_ _null_ _null_ int2up _null_ _null_ _null_ )); -DATA(insert OID = 1912 ( int4up PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "23" _null_ _null_ _null_ _null_ _null_ int4up _null_ _null_ _null_ )); -DATA(insert OID = 1913 ( float4up PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 700 "700" _null_ _null_ _null_ _null_ _null_ float4up _null_ _null_ _null_ )); -DATA(insert OID = 1914 ( float8up PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 701 "701" _null_ _null_ _null_ _null_ _null_ float8up _null_ _null_ _null_ )); -DATA(insert OID = 1915 ( numeric_uplus PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 1700 "1700" _null_ _null_ _null_ _null_ _null_ numeric_uplus _null_ _null_ _null_ )); - -DATA(insert OID = 1922 ( has_table_privilege PGNSP PGUID 12 1 0 0 0 f f f t f s s 3 0 16 "19 25 25" _null_ _null_ _null_ _null_ _null_ has_table_privilege_name_name _null_ _null_ _null_ )); -DESCR("user privilege on relation by username, rel name"); -DATA(insert OID = 1923 ( has_table_privilege PGNSP PGUID 12 1 0 0 0 f f f t f s s 3 0 16 "19 26 25" _null_ _null_ _null_ _null_ _null_ has_table_privilege_name_id _null_ _null_ _null_ )); -DESCR("user privilege on relation by username, rel oid"); -DATA(insert OID = 1924 ( has_table_privilege PGNSP PGUID 12 1 0 0 0 f f f t f s s 3 0 16 "26 25 25" _null_ _null_ _null_ _null_ _null_ has_table_privilege_id_name _null_ _null_ _null_ )); -DESCR("user privilege on relation by user oid, rel name"); -DATA(insert OID = 1925 ( has_table_privilege PGNSP PGUID 12 1 0 0 0 f f f t f s s 3 0 16 "26 26 25" _null_ _null_ _null_ _null_ _null_ has_table_privilege_id_id _null_ _null_ _null_ )); -DESCR("user privilege on relation by user oid, rel oid"); -DATA(insert OID = 1926 ( has_table_privilege PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 16 "25 25" _null_ _null_ _null_ _null_ _null_ has_table_privilege_name _null_ _null_ _null_ )); -DESCR("current user privilege on relation by rel name"); -DATA(insert OID = 1927 ( has_table_privilege PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 16 "26 25" _null_ _null_ _null_ _null_ _null_ has_table_privilege_id _null_ _null_ _null_ )); -DESCR("current user privilege on relation by rel oid"); - -DATA(insert OID = 2181 ( has_sequence_privilege PGNSP PGUID 12 1 0 0 0 f f f t f s s 3 0 16 "19 25 25" _null_ _null_ _null_ _null_ _null_ has_sequence_privilege_name_name _null_ _null_ _null_ )); -DESCR("user privilege on sequence by username, seq name"); -DATA(insert OID = 2182 ( has_sequence_privilege PGNSP PGUID 12 1 0 0 0 f f f t f s s 3 0 16 "19 26 25" _null_ _null_ _null_ _null_ _null_ has_sequence_privilege_name_id _null_ _null_ _null_ )); -DESCR("user privilege on sequence by username, seq oid"); -DATA(insert OID = 2183 ( has_sequence_privilege PGNSP PGUID 12 1 0 0 0 f f f t f s s 3 0 16 "26 25 25" _null_ _null_ _null_ _null_ _null_ has_sequence_privilege_id_name _null_ _null_ _null_ )); -DESCR("user privilege on sequence by user oid, seq name"); -DATA(insert OID = 2184 ( has_sequence_privilege PGNSP PGUID 12 1 0 0 0 f f f t f s s 3 0 16 "26 26 25" _null_ _null_ _null_ _null_ _null_ has_sequence_privilege_id_id _null_ _null_ _null_ )); -DESCR("user privilege on sequence by user oid, seq oid"); -DATA(insert OID = 2185 ( has_sequence_privilege PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 16 "25 25" _null_ _null_ _null_ _null_ _null_ has_sequence_privilege_name _null_ _null_ _null_ )); -DESCR("current user privilege on sequence by seq name"); -DATA(insert OID = 2186 ( has_sequence_privilege PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 16 "26 25" _null_ _null_ _null_ _null_ _null_ has_sequence_privilege_id _null_ _null_ _null_ )); -DESCR("current user privilege on sequence by seq oid"); - -DATA(insert OID = 3012 ( has_column_privilege PGNSP PGUID 12 1 0 0 0 f f f t f s s 4 0 16 "19 25 25 25" _null_ _null_ _null_ _null_ _null_ has_column_privilege_name_name_name _null_ _null_ _null_ )); -DESCR("user privilege on column by username, rel name, col name"); -DATA(insert OID = 3013 ( has_column_privilege PGNSP PGUID 12 1 0 0 0 f f f t f s s 4 0 16 "19 25 21 25" _null_ _null_ _null_ _null_ _null_ has_column_privilege_name_name_attnum _null_ _null_ _null_ )); -DESCR("user privilege on column by username, rel name, col attnum"); -DATA(insert OID = 3014 ( has_column_privilege PGNSP PGUID 12 1 0 0 0 f f f t f s s 4 0 16 "19 26 25 25" _null_ _null_ _null_ _null_ _null_ has_column_privilege_name_id_name _null_ _null_ _null_ )); -DESCR("user privilege on column by username, rel oid, col name"); -DATA(insert OID = 3015 ( has_column_privilege PGNSP PGUID 12 1 0 0 0 f f f t f s s 4 0 16 "19 26 21 25" _null_ _null_ _null_ _null_ _null_ has_column_privilege_name_id_attnum _null_ _null_ _null_ )); -DESCR("user privilege on column by username, rel oid, col attnum"); -DATA(insert OID = 3016 ( has_column_privilege PGNSP PGUID 12 1 0 0 0 f f f t f s s 4 0 16 "26 25 25 25" _null_ _null_ _null_ _null_ _null_ has_column_privilege_id_name_name _null_ _null_ _null_ )); -DESCR("user privilege on column by user oid, rel name, col name"); -DATA(insert OID = 3017 ( has_column_privilege PGNSP PGUID 12 1 0 0 0 f f f t f s s 4 0 16 "26 25 21 25" _null_ _null_ _null_ _null_ _null_ has_column_privilege_id_name_attnum _null_ _null_ _null_ )); -DESCR("user privilege on column by user oid, rel name, col attnum"); -DATA(insert OID = 3018 ( has_column_privilege PGNSP PGUID 12 1 0 0 0 f f f t f s s 4 0 16 "26 26 25 25" _null_ _null_ _null_ _null_ _null_ has_column_privilege_id_id_name _null_ _null_ _null_ )); -DESCR("user privilege on column by user oid, rel oid, col name"); -DATA(insert OID = 3019 ( has_column_privilege PGNSP PGUID 12 1 0 0 0 f f f t f s s 4 0 16 "26 26 21 25" _null_ _null_ _null_ _null_ _null_ has_column_privilege_id_id_attnum _null_ _null_ _null_ )); -DESCR("user privilege on column by user oid, rel oid, col attnum"); -DATA(insert OID = 3020 ( has_column_privilege PGNSP PGUID 12 1 0 0 0 f f f t f s s 3 0 16 "25 25 25" _null_ _null_ _null_ _null_ _null_ has_column_privilege_name_name _null_ _null_ _null_ )); -DESCR("current user privilege on column by rel name, col name"); -DATA(insert OID = 3021 ( has_column_privilege PGNSP PGUID 12 1 0 0 0 f f f t f s s 3 0 16 "25 21 25" _null_ _null_ _null_ _null_ _null_ has_column_privilege_name_attnum _null_ _null_ _null_ )); -DESCR("current user privilege on column by rel name, col attnum"); -DATA(insert OID = 3022 ( has_column_privilege PGNSP PGUID 12 1 0 0 0 f f f t f s s 3 0 16 "26 25 25" _null_ _null_ _null_ _null_ _null_ has_column_privilege_id_name _null_ _null_ _null_ )); -DESCR("current user privilege on column by rel oid, col name"); -DATA(insert OID = 3023 ( has_column_privilege PGNSP PGUID 12 1 0 0 0 f f f t f s s 3 0 16 "26 21 25" _null_ _null_ _null_ _null_ _null_ has_column_privilege_id_attnum _null_ _null_ _null_ )); -DESCR("current user privilege on column by rel oid, col attnum"); - -DATA(insert OID = 3024 ( has_any_column_privilege PGNSP PGUID 12 10 0 0 0 f f f t f s s 3 0 16 "19 25 25" _null_ _null_ _null_ _null_ _null_ has_any_column_privilege_name_name _null_ _null_ _null_ )); -DESCR("user privilege on any column by username, rel name"); -DATA(insert OID = 3025 ( has_any_column_privilege PGNSP PGUID 12 10 0 0 0 f f f t f s s 3 0 16 "19 26 25" _null_ _null_ _null_ _null_ _null_ has_any_column_privilege_name_id _null_ _null_ _null_ )); -DESCR("user privilege on any column by username, rel oid"); -DATA(insert OID = 3026 ( has_any_column_privilege PGNSP PGUID 12 10 0 0 0 f f f t f s s 3 0 16 "26 25 25" _null_ _null_ _null_ _null_ _null_ has_any_column_privilege_id_name _null_ _null_ _null_ )); -DESCR("user privilege on any column by user oid, rel name"); -DATA(insert OID = 3027 ( has_any_column_privilege PGNSP PGUID 12 10 0 0 0 f f f t f s s 3 0 16 "26 26 25" _null_ _null_ _null_ _null_ _null_ has_any_column_privilege_id_id _null_ _null_ _null_ )); -DESCR("user privilege on any column by user oid, rel oid"); -DATA(insert OID = 3028 ( has_any_column_privilege PGNSP PGUID 12 10 0 0 0 f f f t f s s 2 0 16 "25 25" _null_ _null_ _null_ _null_ _null_ has_any_column_privilege_name _null_ _null_ _null_ )); -DESCR("current user privilege on any column by rel name"); -DATA(insert OID = 3029 ( has_any_column_privilege PGNSP PGUID 12 10 0 0 0 f f f t f s s 2 0 16 "26 25" _null_ _null_ _null_ _null_ _null_ has_any_column_privilege_id _null_ _null_ _null_ )); -DESCR("current user privilege on any column by rel oid"); - -DATA(insert OID = 3355 ( pg_ndistinct_in PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 3361 "2275" _null_ _null_ _null_ _null_ _null_ pg_ndistinct_in _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 3356 ( pg_ndistinct_out PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2275 "3361" _null_ _null_ _null_ _null_ _null_ pg_ndistinct_out _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 3357 ( pg_ndistinct_recv PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 3361 "2281" _null_ _null_ _null_ _null_ _null_ pg_ndistinct_recv _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 3358 ( pg_ndistinct_send PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 17 "3361" _null_ _null_ _null_ _null_ _null_ pg_ndistinct_send _null_ _null_ _null_ )); -DESCR("I/O"); - -DATA(insert OID = 3404 ( pg_dependencies_in PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 3402 "2275" _null_ _null_ _null_ _null_ _null_ pg_dependencies_in _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 3405 ( pg_dependencies_out PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2275 "3402" _null_ _null_ _null_ _null_ _null_ pg_dependencies_out _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 3406 ( pg_dependencies_recv PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 3402 "2281" _null_ _null_ _null_ _null_ _null_ pg_dependencies_recv _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 3407 ( pg_dependencies_send PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 17 "3402" _null_ _null_ _null_ _null_ _null_ pg_dependencies_send _null_ _null_ _null_ )); -DESCR("I/O"); - -DATA(insert OID = 1928 ( pg_stat_get_numscans PGNSP PGUID 12 1 0 0 0 f f f t f s r 1 0 20 "26" _null_ _null_ _null_ _null_ _null_ pg_stat_get_numscans _null_ _null_ _null_ )); -DESCR("statistics: number of scans done for table/index"); -DATA(insert OID = 1929 ( pg_stat_get_tuples_returned PGNSP PGUID 12 1 0 0 0 f f f t f s r 1 0 20 "26" _null_ _null_ _null_ _null_ _null_ pg_stat_get_tuples_returned _null_ _null_ _null_ )); -DESCR("statistics: number of tuples read by seqscan"); -DATA(insert OID = 1930 ( pg_stat_get_tuples_fetched PGNSP PGUID 12 1 0 0 0 f f f t f s r 1 0 20 "26" _null_ _null_ _null_ _null_ _null_ pg_stat_get_tuples_fetched _null_ _null_ _null_ )); -DESCR("statistics: number of tuples fetched by idxscan"); -DATA(insert OID = 1931 ( pg_stat_get_tuples_inserted PGNSP PGUID 12 1 0 0 0 f f f t f s r 1 0 20 "26" _null_ _null_ _null_ _null_ _null_ pg_stat_get_tuples_inserted _null_ _null_ _null_ )); -DESCR("statistics: number of tuples inserted"); -DATA(insert OID = 1932 ( pg_stat_get_tuples_updated PGNSP PGUID 12 1 0 0 0 f f f t f s r 1 0 20 "26" _null_ _null_ _null_ _null_ _null_ pg_stat_get_tuples_updated _null_ _null_ _null_ )); -DESCR("statistics: number of tuples updated"); -DATA(insert OID = 1933 ( pg_stat_get_tuples_deleted PGNSP PGUID 12 1 0 0 0 f f f t f s r 1 0 20 "26" _null_ _null_ _null_ _null_ _null_ pg_stat_get_tuples_deleted _null_ _null_ _null_ )); -DESCR("statistics: number of tuples deleted"); -DATA(insert OID = 1972 ( pg_stat_get_tuples_hot_updated PGNSP PGUID 12 1 0 0 0 f f f t f s r 1 0 20 "26" _null_ _null_ _null_ _null_ _null_ pg_stat_get_tuples_hot_updated _null_ _null_ _null_ )); -DESCR("statistics: number of tuples hot updated"); -DATA(insert OID = 2878 ( pg_stat_get_live_tuples PGNSP PGUID 12 1 0 0 0 f f f t f s r 1 0 20 "26" _null_ _null_ _null_ _null_ _null_ pg_stat_get_live_tuples _null_ _null_ _null_ )); -DESCR("statistics: number of live tuples"); -DATA(insert OID = 2879 ( pg_stat_get_dead_tuples PGNSP PGUID 12 1 0 0 0 f f f t f s r 1 0 20 "26" _null_ _null_ _null_ _null_ _null_ pg_stat_get_dead_tuples _null_ _null_ _null_ )); -DESCR("statistics: number of dead tuples"); -DATA(insert OID = 3177 ( pg_stat_get_mod_since_analyze PGNSP PGUID 12 1 0 0 0 f f f t f s r 1 0 20 "26" _null_ _null_ _null_ _null_ _null_ pg_stat_get_mod_since_analyze _null_ _null_ _null_ )); -DESCR("statistics: number of tuples changed since last analyze"); -DATA(insert OID = 1934 ( pg_stat_get_blocks_fetched PGNSP PGUID 12 1 0 0 0 f f f t f s r 1 0 20 "26" _null_ _null_ _null_ _null_ _null_ pg_stat_get_blocks_fetched _null_ _null_ _null_ )); -DESCR("statistics: number of blocks fetched"); -DATA(insert OID = 1935 ( pg_stat_get_blocks_hit PGNSP PGUID 12 1 0 0 0 f f f t f s r 1 0 20 "26" _null_ _null_ _null_ _null_ _null_ pg_stat_get_blocks_hit _null_ _null_ _null_ )); -DESCR("statistics: number of blocks found in cache"); -DATA(insert OID = 2781 ( pg_stat_get_last_vacuum_time PGNSP PGUID 12 1 0 0 0 f f f t f s r 1 0 1184 "26" _null_ _null_ _null_ _null_ _null_ pg_stat_get_last_vacuum_time _null_ _null_ _null_ )); -DESCR("statistics: last manual vacuum time for a table"); -DATA(insert OID = 2782 ( pg_stat_get_last_autovacuum_time PGNSP PGUID 12 1 0 0 0 f f f t f s r 1 0 1184 "26" _null_ _null_ _null_ _null_ _null_ pg_stat_get_last_autovacuum_time _null_ _null_ _null_ )); -DESCR("statistics: last auto vacuum time for a table"); -DATA(insert OID = 2783 ( pg_stat_get_last_analyze_time PGNSP PGUID 12 1 0 0 0 f f f t f s r 1 0 1184 "26" _null_ _null_ _null_ _null_ _null_ pg_stat_get_last_analyze_time _null_ _null_ _null_ )); -DESCR("statistics: last manual analyze time for a table"); -DATA(insert OID = 2784 ( pg_stat_get_last_autoanalyze_time PGNSP PGUID 12 1 0 0 0 f f f t f s r 1 0 1184 "26" _null_ _null_ _null_ _null_ _null_ pg_stat_get_last_autoanalyze_time _null_ _null_ _null_ )); -DESCR("statistics: last auto analyze time for a table"); -DATA(insert OID = 3054 ( pg_stat_get_vacuum_count PGNSP PGUID 12 1 0 0 0 f f f t f s r 1 0 20 "26" _null_ _null_ _null_ _null_ _null_ pg_stat_get_vacuum_count _null_ _null_ _null_ )); -DESCR("statistics: number of manual vacuums for a table"); -DATA(insert OID = 3055 ( pg_stat_get_autovacuum_count PGNSP PGUID 12 1 0 0 0 f f f t f s r 1 0 20 "26" _null_ _null_ _null_ _null_ _null_ pg_stat_get_autovacuum_count _null_ _null_ _null_ )); -DESCR("statistics: number of auto vacuums for a table"); -DATA(insert OID = 3056 ( pg_stat_get_analyze_count PGNSP PGUID 12 1 0 0 0 f f f t f s r 1 0 20 "26" _null_ _null_ _null_ _null_ _null_ pg_stat_get_analyze_count _null_ _null_ _null_ )); -DESCR("statistics: number of manual analyzes for a table"); -DATA(insert OID = 3057 ( pg_stat_get_autoanalyze_count PGNSP PGUID 12 1 0 0 0 f f f t f s r 1 0 20 "26" _null_ _null_ _null_ _null_ _null_ pg_stat_get_autoanalyze_count _null_ _null_ _null_ )); -DESCR("statistics: number of auto analyzes for a table"); -DATA(insert OID = 1936 ( pg_stat_get_backend_idset PGNSP PGUID 12 1 100 0 0 f f f t t s r 0 0 23 "" _null_ _null_ _null_ _null_ _null_ pg_stat_get_backend_idset _null_ _null_ _null_ )); -DESCR("statistics: currently active backend IDs"); -DATA(insert OID = 2022 ( pg_stat_get_activity PGNSP PGUID 12 1 100 0 0 f f f f t s r 1 0 2249 "23" "{23,26,23,26,25,25,25,25,25,1184,1184,1184,1184,869,25,23,28,28,25,16,25,25,23,16,25}" "{i,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o}" "{pid,datid,pid,usesysid,application_name,state,query,wait_event_type,wait_event,xact_start,query_start,backend_start,state_change,client_addr,client_hostname,client_port,backend_xid,backend_xmin,backend_type,ssl,sslversion,sslcipher,sslbits,sslcompression,sslclientdn}" _null_ _null_ pg_stat_get_activity _null_ _null_ _null_ )); -DESCR("statistics: information about currently active backends"); -DATA(insert OID = 3318 ( pg_stat_get_progress_info PGNSP PGUID 12 1 100 0 0 f f f t t s r 1 0 2249 "25" "{25,23,26,26,20,20,20,20,20,20,20,20,20,20}" "{i,o,o,o,o,o,o,o,o,o,o,o,o,o}" "{cmdtype,pid,datid,relid,param1,param2,param3,param4,param5,param6,param7,param8,param9,param10}" _null_ _null_ pg_stat_get_progress_info _null_ _null_ _null_ )); -DESCR("statistics: information about progress of backends running maintenance command"); -DATA(insert OID = 3099 ( pg_stat_get_wal_senders PGNSP PGUID 12 1 10 0 0 f f f f t s r 0 0 2249 "" "{23,25,3220,3220,3220,3220,1186,1186,1186,23,25}" "{o,o,o,o,o,o,o,o,o,o,o}" "{pid,state,sent_lsn,write_lsn,flush_lsn,replay_lsn,write_lag,flush_lag,replay_lag,sync_priority,sync_state}" _null_ _null_ pg_stat_get_wal_senders _null_ _null_ _null_ )); -DESCR("statistics: information about currently active replication"); -DATA(insert OID = 3317 ( pg_stat_get_wal_receiver PGNSP PGUID 12 1 0 0 0 f f f f f s r 0 0 2249 "" "{23,25,3220,23,3220,23,1184,1184,3220,1184,25,25,23,25}" "{o,o,o,o,o,o,o,o,o,o,o,o,o,o}" "{pid,status,receive_start_lsn,receive_start_tli,received_lsn,received_tli,last_msg_send_time,last_msg_receipt_time,latest_end_lsn,latest_end_time,slot_name,sender_host,sender_port,conninfo}" _null_ _null_ pg_stat_get_wal_receiver _null_ _null_ _null_ )); -DESCR("statistics: information about WAL receiver"); -DATA(insert OID = 6118 ( pg_stat_get_subscription PGNSP PGUID 12 1 0 0 0 f f f f f s r 1 0 2249 "26" "{26,26,26,23,3220,1184,1184,3220,1184}" "{i,o,o,o,o,o,o,o,o}" "{subid,subid,relid,pid,received_lsn,last_msg_send_time,last_msg_receipt_time,latest_end_lsn,latest_end_time}" _null_ _null_ pg_stat_get_subscription _null_ _null_ _null_ )); -DESCR("statistics: information about subscription"); -DATA(insert OID = 2026 ( pg_backend_pid PGNSP PGUID 12 1 0 0 0 f f f t f s r 0 0 23 "" _null_ _null_ _null_ _null_ _null_ pg_backend_pid _null_ _null_ _null_ )); -DESCR("statistics: current backend PID"); -DATA(insert OID = 1937 ( pg_stat_get_backend_pid PGNSP PGUID 12 1 0 0 0 f f f t f s r 1 0 23 "23" _null_ _null_ _null_ _null_ _null_ pg_stat_get_backend_pid _null_ _null_ _null_ )); -DESCR("statistics: PID of backend"); -DATA(insert OID = 1938 ( pg_stat_get_backend_dbid PGNSP PGUID 12 1 0 0 0 f f f t f s r 1 0 26 "23" _null_ _null_ _null_ _null_ _null_ pg_stat_get_backend_dbid _null_ _null_ _null_ )); -DESCR("statistics: database ID of backend"); -DATA(insert OID = 1939 ( pg_stat_get_backend_userid PGNSP PGUID 12 1 0 0 0 f f f t f s r 1 0 26 "23" _null_ _null_ _null_ _null_ _null_ pg_stat_get_backend_userid _null_ _null_ _null_ )); -DESCR("statistics: user ID of backend"); -DATA(insert OID = 1940 ( pg_stat_get_backend_activity PGNSP PGUID 12 1 0 0 0 f f f t f s r 1 0 25 "23" _null_ _null_ _null_ _null_ _null_ pg_stat_get_backend_activity _null_ _null_ _null_ )); -DESCR("statistics: current query of backend"); -DATA(insert OID = 2788 ( pg_stat_get_backend_wait_event_type PGNSP PGUID 12 1 0 0 0 f f f t f s r 1 0 25 "23" _null_ _null_ _null_ _null_ _null_ pg_stat_get_backend_wait_event_type _null_ _null_ _null_ )); -DESCR("statistics: wait event type on which backend is currently waiting"); -DATA(insert OID = 2853 ( pg_stat_get_backend_wait_event PGNSP PGUID 12 1 0 0 0 f f f t f s r 1 0 25 "23" _null_ _null_ _null_ _null_ _null_ pg_stat_get_backend_wait_event _null_ _null_ _null_ )); -DESCR("statistics: wait event on which backend is currently waiting"); -DATA(insert OID = 2094 ( pg_stat_get_backend_activity_start PGNSP PGUID 12 1 0 0 0 f f f t f s r 1 0 1184 "23" _null_ _null_ _null_ _null_ _null_ pg_stat_get_backend_activity_start _null_ _null_ _null_ )); -DESCR("statistics: start time for current query of backend"); -DATA(insert OID = 2857 ( pg_stat_get_backend_xact_start PGNSP PGUID 12 1 0 0 0 f f f t f s r 1 0 1184 "23" _null_ _null_ _null_ _null_ _null_ pg_stat_get_backend_xact_start _null_ _null_ _null_ )); -DESCR("statistics: start time for backend's current transaction"); -DATA(insert OID = 1391 ( pg_stat_get_backend_start PGNSP PGUID 12 1 0 0 0 f f f t f s r 1 0 1184 "23" _null_ _null_ _null_ _null_ _null_ pg_stat_get_backend_start _null_ _null_ _null_ )); -DESCR("statistics: start time for current backend session"); -DATA(insert OID = 1392 ( pg_stat_get_backend_client_addr PGNSP PGUID 12 1 0 0 0 f f f t f s r 1 0 869 "23" _null_ _null_ _null_ _null_ _null_ pg_stat_get_backend_client_addr _null_ _null_ _null_ )); -DESCR("statistics: address of client connected to backend"); -DATA(insert OID = 1393 ( pg_stat_get_backend_client_port PGNSP PGUID 12 1 0 0 0 f f f t f s r 1 0 23 "23" _null_ _null_ _null_ _null_ _null_ pg_stat_get_backend_client_port _null_ _null_ _null_ )); -DESCR("statistics: port number of client connected to backend"); -DATA(insert OID = 1941 ( pg_stat_get_db_numbackends PGNSP PGUID 12 1 0 0 0 f f f t f s r 1 0 23 "26" _null_ _null_ _null_ _null_ _null_ pg_stat_get_db_numbackends _null_ _null_ _null_ )); -DESCR("statistics: number of backends in database"); -DATA(insert OID = 1942 ( pg_stat_get_db_xact_commit PGNSP PGUID 12 1 0 0 0 f f f t f s r 1 0 20 "26" _null_ _null_ _null_ _null_ _null_ pg_stat_get_db_xact_commit _null_ _null_ _null_ )); -DESCR("statistics: transactions committed"); -DATA(insert OID = 1943 ( pg_stat_get_db_xact_rollback PGNSP PGUID 12 1 0 0 0 f f f t f s r 1 0 20 "26" _null_ _null_ _null_ _null_ _null_ pg_stat_get_db_xact_rollback _null_ _null_ _null_ )); -DESCR("statistics: transactions rolled back"); -DATA(insert OID = 1944 ( pg_stat_get_db_blocks_fetched PGNSP PGUID 12 1 0 0 0 f f f t f s r 1 0 20 "26" _null_ _null_ _null_ _null_ _null_ pg_stat_get_db_blocks_fetched _null_ _null_ _null_ )); -DESCR("statistics: blocks fetched for database"); -DATA(insert OID = 1945 ( pg_stat_get_db_blocks_hit PGNSP PGUID 12 1 0 0 0 f f f t f s r 1 0 20 "26" _null_ _null_ _null_ _null_ _null_ pg_stat_get_db_blocks_hit _null_ _null_ _null_ )); -DESCR("statistics: blocks found in cache for database"); -DATA(insert OID = 2758 ( pg_stat_get_db_tuples_returned PGNSP PGUID 12 1 0 0 0 f f f t f s r 1 0 20 "26" _null_ _null_ _null_ _null_ _null_ pg_stat_get_db_tuples_returned _null_ _null_ _null_ )); -DESCR("statistics: tuples returned for database"); -DATA(insert OID = 2759 ( pg_stat_get_db_tuples_fetched PGNSP PGUID 12 1 0 0 0 f f f t f s r 1 0 20 "26" _null_ _null_ _null_ _null_ _null_ pg_stat_get_db_tuples_fetched _null_ _null_ _null_ )); -DESCR("statistics: tuples fetched for database"); -DATA(insert OID = 2760 ( pg_stat_get_db_tuples_inserted PGNSP PGUID 12 1 0 0 0 f f f t f s r 1 0 20 "26" _null_ _null_ _null_ _null_ _null_ pg_stat_get_db_tuples_inserted _null_ _null_ _null_ )); -DESCR("statistics: tuples inserted in database"); -DATA(insert OID = 2761 ( pg_stat_get_db_tuples_updated PGNSP PGUID 12 1 0 0 0 f f f t f s r 1 0 20 "26" _null_ _null_ _null_ _null_ _null_ pg_stat_get_db_tuples_updated _null_ _null_ _null_ )); -DESCR("statistics: tuples updated in database"); -DATA(insert OID = 2762 ( pg_stat_get_db_tuples_deleted PGNSP PGUID 12 1 0 0 0 f f f t f s r 1 0 20 "26" _null_ _null_ _null_ _null_ _null_ pg_stat_get_db_tuples_deleted _null_ _null_ _null_ )); -DESCR("statistics: tuples deleted in database"); -DATA(insert OID = 3065 ( pg_stat_get_db_conflict_tablespace PGNSP PGUID 12 1 0 0 0 f f f t f s r 1 0 20 "26" _null_ _null_ _null_ _null_ _null_ pg_stat_get_db_conflict_tablespace _null_ _null_ _null_ )); -DESCR("statistics: recovery conflicts in database caused by drop tablespace"); -DATA(insert OID = 3066 ( pg_stat_get_db_conflict_lock PGNSP PGUID 12 1 0 0 0 f f f t f s r 1 0 20 "26" _null_ _null_ _null_ _null_ _null_ pg_stat_get_db_conflict_lock _null_ _null_ _null_ )); -DESCR("statistics: recovery conflicts in database caused by relation lock"); -DATA(insert OID = 3067 ( pg_stat_get_db_conflict_snapshot PGNSP PGUID 12 1 0 0 0 f f f t f s r 1 0 20 "26" _null_ _null_ _null_ _null_ _null_ pg_stat_get_db_conflict_snapshot _null_ _null_ _null_ )); -DESCR("statistics: recovery conflicts in database caused by snapshot expiry"); -DATA(insert OID = 3068 ( pg_stat_get_db_conflict_bufferpin PGNSP PGUID 12 1 0 0 0 f f f t f s r 1 0 20 "26" _null_ _null_ _null_ _null_ _null_ pg_stat_get_db_conflict_bufferpin _null_ _null_ _null_ )); -DESCR("statistics: recovery conflicts in database caused by shared buffer pin"); -DATA(insert OID = 3069 ( pg_stat_get_db_conflict_startup_deadlock PGNSP PGUID 12 1 0 0 0 f f f t f s r 1 0 20 "26" _null_ _null_ _null_ _null_ _null_ pg_stat_get_db_conflict_startup_deadlock _null_ _null_ _null_ )); -DESCR("statistics: recovery conflicts in database caused by buffer deadlock"); -DATA(insert OID = 3070 ( pg_stat_get_db_conflict_all PGNSP PGUID 12 1 0 0 0 f f f t f s r 1 0 20 "26" _null_ _null_ _null_ _null_ _null_ pg_stat_get_db_conflict_all _null_ _null_ _null_ )); -DESCR("statistics: recovery conflicts in database"); -DATA(insert OID = 3152 ( pg_stat_get_db_deadlocks PGNSP PGUID 12 1 0 0 0 f f f t f s r 1 0 20 "26" _null_ _null_ _null_ _null_ _null_ pg_stat_get_db_deadlocks _null_ _null_ _null_ )); -DESCR("statistics: deadlocks detected in database"); -DATA(insert OID = 3074 ( pg_stat_get_db_stat_reset_time PGNSP PGUID 12 1 0 0 0 f f f t f s r 1 0 1184 "26" _null_ _null_ _null_ _null_ _null_ pg_stat_get_db_stat_reset_time _null_ _null_ _null_ )); -DESCR("statistics: last reset for a database"); -DATA(insert OID = 3150 ( pg_stat_get_db_temp_files PGNSP PGUID 12 1 0 0 0 f f f t f s r 1 0 20 "26" _null_ _null_ _null_ _null_ _null_ pg_stat_get_db_temp_files _null_ _null_ _null_ )); -DESCR("statistics: number of temporary files written"); -DATA(insert OID = 3151 ( pg_stat_get_db_temp_bytes PGNSP PGUID 12 1 0 0 0 f f f t f s r 1 0 20 "26" _null_ _null_ _null_ _null_ _null_ pg_stat_get_db_temp_bytes _null_ _null_ _null_ )); -DESCR("statistics: number of bytes in temporary files written"); -DATA(insert OID = 2844 ( pg_stat_get_db_blk_read_time PGNSP PGUID 12 1 0 0 0 f f f t f s r 1 0 701 "26" _null_ _null_ _null_ _null_ _null_ pg_stat_get_db_blk_read_time _null_ _null_ _null_ )); -DESCR("statistics: block read time, in milliseconds"); -DATA(insert OID = 2845 ( pg_stat_get_db_blk_write_time PGNSP PGUID 12 1 0 0 0 f f f t f s r 1 0 701 "26" _null_ _null_ _null_ _null_ _null_ pg_stat_get_db_blk_write_time _null_ _null_ _null_ )); -DESCR("statistics: block write time, in milliseconds"); -DATA(insert OID = 3195 ( pg_stat_get_archiver PGNSP PGUID 12 1 0 0 0 f f f f f s r 0 0 2249 "" "{20,25,1184,20,25,1184,1184}" "{o,o,o,o,o,o,o}" "{archived_count,last_archived_wal,last_archived_time,failed_count,last_failed_wal,last_failed_time,stats_reset}" _null_ _null_ pg_stat_get_archiver _null_ _null_ _null_ )); -DESCR("statistics: information about WAL archiver"); -DATA(insert OID = 2769 ( pg_stat_get_bgwriter_timed_checkpoints PGNSP PGUID 12 1 0 0 0 f f f t f s r 0 0 20 "" _null_ _null_ _null_ _null_ _null_ pg_stat_get_bgwriter_timed_checkpoints _null_ _null_ _null_ )); -DESCR("statistics: number of timed checkpoints started by the bgwriter"); -DATA(insert OID = 2770 ( pg_stat_get_bgwriter_requested_checkpoints PGNSP PGUID 12 1 0 0 0 f f f t f s r 0 0 20 "" _null_ _null_ _null_ _null_ _null_ pg_stat_get_bgwriter_requested_checkpoints _null_ _null_ _null_ )); -DESCR("statistics: number of backend requested checkpoints started by the bgwriter"); -DATA(insert OID = 2771 ( pg_stat_get_bgwriter_buf_written_checkpoints PGNSP PGUID 12 1 0 0 0 f f f t f s r 0 0 20 "" _null_ _null_ _null_ _null_ _null_ pg_stat_get_bgwriter_buf_written_checkpoints _null_ _null_ _null_ )); -DESCR("statistics: number of buffers written by the bgwriter during checkpoints"); -DATA(insert OID = 2772 ( pg_stat_get_bgwriter_buf_written_clean PGNSP PGUID 12 1 0 0 0 f f f t f s r 0 0 20 "" _null_ _null_ _null_ _null_ _null_ pg_stat_get_bgwriter_buf_written_clean _null_ _null_ _null_ )); -DESCR("statistics: number of buffers written by the bgwriter for cleaning dirty buffers"); -DATA(insert OID = 2773 ( pg_stat_get_bgwriter_maxwritten_clean PGNSP PGUID 12 1 0 0 0 f f f t f s r 0 0 20 "" _null_ _null_ _null_ _null_ _null_ pg_stat_get_bgwriter_maxwritten_clean _null_ _null_ _null_ )); -DESCR("statistics: number of times the bgwriter stopped processing when it had written too many buffers while cleaning"); -DATA(insert OID = 3075 ( pg_stat_get_bgwriter_stat_reset_time PGNSP PGUID 12 1 0 0 0 f f f t f s r 0 0 1184 "" _null_ _null_ _null_ _null_ _null_ pg_stat_get_bgwriter_stat_reset_time _null_ _null_ _null_ )); -DESCR("statistics: last reset for the bgwriter"); -DATA(insert OID = 3160 ( pg_stat_get_checkpoint_write_time PGNSP PGUID 12 1 0 0 0 f f f t f s r 0 0 701 "" _null_ _null_ _null_ _null_ _null_ pg_stat_get_checkpoint_write_time _null_ _null_ _null_ )); -DESCR("statistics: checkpoint time spent writing buffers to disk, in milliseconds"); -DATA(insert OID = 3161 ( pg_stat_get_checkpoint_sync_time PGNSP PGUID 12 1 0 0 0 f f f t f s r 0 0 701 "" _null_ _null_ _null_ _null_ _null_ pg_stat_get_checkpoint_sync_time _null_ _null_ _null_ )); -DESCR("statistics: checkpoint time spent synchronizing buffers to disk, in milliseconds"); -DATA(insert OID = 2775 ( pg_stat_get_buf_written_backend PGNSP PGUID 12 1 0 0 0 f f f t f s r 0 0 20 "" _null_ _null_ _null_ _null_ _null_ pg_stat_get_buf_written_backend _null_ _null_ _null_ )); -DESCR("statistics: number of buffers written by backends"); -DATA(insert OID = 3063 ( pg_stat_get_buf_fsync_backend PGNSP PGUID 12 1 0 0 0 f f f t f s r 0 0 20 "" _null_ _null_ _null_ _null_ _null_ pg_stat_get_buf_fsync_backend _null_ _null_ _null_ )); -DESCR("statistics: number of backend buffer writes that did their own fsync"); -DATA(insert OID = 2859 ( pg_stat_get_buf_alloc PGNSP PGUID 12 1 0 0 0 f f f t f s r 0 0 20 "" _null_ _null_ _null_ _null_ _null_ pg_stat_get_buf_alloc _null_ _null_ _null_ )); -DESCR("statistics: number of buffer allocations"); - -DATA(insert OID = 2978 ( pg_stat_get_function_calls PGNSP PGUID 12 1 0 0 0 f f f t f s r 1 0 20 "26" _null_ _null_ _null_ _null_ _null_ pg_stat_get_function_calls _null_ _null_ _null_ )); -DESCR("statistics: number of function calls"); -DATA(insert OID = 2979 ( pg_stat_get_function_total_time PGNSP PGUID 12 1 0 0 0 f f f t f s r 1 0 701 "26" _null_ _null_ _null_ _null_ _null_ pg_stat_get_function_total_time _null_ _null_ _null_ )); -DESCR("statistics: total execution time of function, in milliseconds"); -DATA(insert OID = 2980 ( pg_stat_get_function_self_time PGNSP PGUID 12 1 0 0 0 f f f t f s r 1 0 701 "26" _null_ _null_ _null_ _null_ _null_ pg_stat_get_function_self_time _null_ _null_ _null_ )); -DESCR("statistics: self execution time of function, in milliseconds"); - -DATA(insert OID = 3037 ( pg_stat_get_xact_numscans PGNSP PGUID 12 1 0 0 0 f f f t f v r 1 0 20 "26" _null_ _null_ _null_ _null_ _null_ pg_stat_get_xact_numscans _null_ _null_ _null_ )); -DESCR("statistics: number of scans done for table/index in current transaction"); -DATA(insert OID = 3038 ( pg_stat_get_xact_tuples_returned PGNSP PGUID 12 1 0 0 0 f f f t f v r 1 0 20 "26" _null_ _null_ _null_ _null_ _null_ pg_stat_get_xact_tuples_returned _null_ _null_ _null_ )); -DESCR("statistics: number of tuples read by seqscan in current transaction"); -DATA(insert OID = 3039 ( pg_stat_get_xact_tuples_fetched PGNSP PGUID 12 1 0 0 0 f f f t f v r 1 0 20 "26" _null_ _null_ _null_ _null_ _null_ pg_stat_get_xact_tuples_fetched _null_ _null_ _null_ )); -DESCR("statistics: number of tuples fetched by idxscan in current transaction"); -DATA(insert OID = 3040 ( pg_stat_get_xact_tuples_inserted PGNSP PGUID 12 1 0 0 0 f f f t f v r 1 0 20 "26" _null_ _null_ _null_ _null_ _null_ pg_stat_get_xact_tuples_inserted _null_ _null_ _null_ )); -DESCR("statistics: number of tuples inserted in current transaction"); -DATA(insert OID = 3041 ( pg_stat_get_xact_tuples_updated PGNSP PGUID 12 1 0 0 0 f f f t f v r 1 0 20 "26" _null_ _null_ _null_ _null_ _null_ pg_stat_get_xact_tuples_updated _null_ _null_ _null_ )); -DESCR("statistics: number of tuples updated in current transaction"); -DATA(insert OID = 3042 ( pg_stat_get_xact_tuples_deleted PGNSP PGUID 12 1 0 0 0 f f f t f v r 1 0 20 "26" _null_ _null_ _null_ _null_ _null_ pg_stat_get_xact_tuples_deleted _null_ _null_ _null_ )); -DESCR("statistics: number of tuples deleted in current transaction"); -DATA(insert OID = 3043 ( pg_stat_get_xact_tuples_hot_updated PGNSP PGUID 12 1 0 0 0 f f f t f v r 1 0 20 "26" _null_ _null_ _null_ _null_ _null_ pg_stat_get_xact_tuples_hot_updated _null_ _null_ _null_ )); -DESCR("statistics: number of tuples hot updated in current transaction"); -DATA(insert OID = 3044 ( pg_stat_get_xact_blocks_fetched PGNSP PGUID 12 1 0 0 0 f f f t f v r 1 0 20 "26" _null_ _null_ _null_ _null_ _null_ pg_stat_get_xact_blocks_fetched _null_ _null_ _null_ )); -DESCR("statistics: number of blocks fetched in current transaction"); -DATA(insert OID = 3045 ( pg_stat_get_xact_blocks_hit PGNSP PGUID 12 1 0 0 0 f f f t f v r 1 0 20 "26" _null_ _null_ _null_ _null_ _null_ pg_stat_get_xact_blocks_hit _null_ _null_ _null_ )); -DESCR("statistics: number of blocks found in cache in current transaction"); -DATA(insert OID = 3046 ( pg_stat_get_xact_function_calls PGNSP PGUID 12 1 0 0 0 f f f t f v r 1 0 20 "26" _null_ _null_ _null_ _null_ _null_ pg_stat_get_xact_function_calls _null_ _null_ _null_ )); -DESCR("statistics: number of function calls in current transaction"); -DATA(insert OID = 3047 ( pg_stat_get_xact_function_total_time PGNSP PGUID 12 1 0 0 0 f f f t f v r 1 0 701 "26" _null_ _null_ _null_ _null_ _null_ pg_stat_get_xact_function_total_time _null_ _null_ _null_ )); -DESCR("statistics: total execution time of function in current transaction, in milliseconds"); -DATA(insert OID = 3048 ( pg_stat_get_xact_function_self_time PGNSP PGUID 12 1 0 0 0 f f f t f v r 1 0 701 "26" _null_ _null_ _null_ _null_ _null_ pg_stat_get_xact_function_self_time _null_ _null_ _null_ )); -DESCR("statistics: self execution time of function in current transaction, in milliseconds"); - -DATA(insert OID = 3788 ( pg_stat_get_snapshot_timestamp PGNSP PGUID 12 1 0 0 0 f f f t f s r 0 0 1184 "" _null_ _null_ _null_ _null_ _null_ pg_stat_get_snapshot_timestamp _null_ _null_ _null_ )); -DESCR("statistics: timestamp of the current statistics snapshot"); -DATA(insert OID = 2230 ( pg_stat_clear_snapshot PGNSP PGUID 12 1 0 0 0 f f f f f v r 0 0 2278 "" _null_ _null_ _null_ _null_ _null_ pg_stat_clear_snapshot _null_ _null_ _null_ )); -DESCR("statistics: discard current transaction's statistics snapshot"); -DATA(insert OID = 2274 ( pg_stat_reset PGNSP PGUID 12 1 0 0 0 f f f f f v s 0 0 2278 "" _null_ _null_ _null_ _null_ _null_ pg_stat_reset _null_ _null_ _null_ )); -DESCR("statistics: reset collected statistics for current database"); -DATA(insert OID = 3775 ( pg_stat_reset_shared PGNSP PGUID 12 1 0 0 0 f f f t f v s 1 0 2278 "25" _null_ _null_ _null_ _null_ _null_ pg_stat_reset_shared _null_ _null_ _null_ )); -DESCR("statistics: reset collected statistics shared across the cluster"); -DATA(insert OID = 3776 ( pg_stat_reset_single_table_counters PGNSP PGUID 12 1 0 0 0 f f f t f v s 1 0 2278 "26" _null_ _null_ _null_ _null_ _null_ pg_stat_reset_single_table_counters _null_ _null_ _null_ )); -DESCR("statistics: reset collected statistics for a single table or index in the current database"); -DATA(insert OID = 3777 ( pg_stat_reset_single_function_counters PGNSP PGUID 12 1 0 0 0 f f f t f v s 1 0 2278 "26" _null_ _null_ _null_ _null_ _null_ pg_stat_reset_single_function_counters _null_ _null_ _null_ )); -DESCR("statistics: reset collected statistics for a single function in the current database"); - -DATA(insert OID = 3163 ( pg_trigger_depth PGNSP PGUID 12 1 0 0 0 f f f t f s r 0 0 23 "" _null_ _null_ _null_ _null_ _null_ pg_trigger_depth _null_ _null_ _null_ )); -DESCR("current trigger depth"); - -DATA(insert OID = 3778 ( pg_tablespace_location PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 25 "26" _null_ _null_ _null_ _null_ _null_ pg_tablespace_location _null_ _null_ _null_ )); -DESCR("tablespace location"); - -DATA(insert OID = 1946 ( encode PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 25 "17 25" _null_ _null_ _null_ _null_ _null_ binary_encode _null_ _null_ _null_ )); -DESCR("convert bytea value into some ascii-only text string"); -DATA(insert OID = 1947 ( decode PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 17 "25 25" _null_ _null_ _null_ _null_ _null_ binary_decode _null_ _null_ _null_ )); -DESCR("convert ascii-encoded text string into bytea value"); - -DATA(insert OID = 1948 ( byteaeq PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "17 17" _null_ _null_ _null_ _null_ _null_ byteaeq _null_ _null_ _null_ )); -DATA(insert OID = 1949 ( bytealt PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "17 17" _null_ _null_ _null_ _null_ _null_ bytealt _null_ _null_ _null_ )); -DATA(insert OID = 1950 ( byteale PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "17 17" _null_ _null_ _null_ _null_ _null_ byteale _null_ _null_ _null_ )); -DATA(insert OID = 1951 ( byteagt PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "17 17" _null_ _null_ _null_ _null_ _null_ byteagt _null_ _null_ _null_ )); -DATA(insert OID = 1952 ( byteage PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "17 17" _null_ _null_ _null_ _null_ _null_ byteage _null_ _null_ _null_ )); -DATA(insert OID = 1953 ( byteane PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "17 17" _null_ _null_ _null_ _null_ _null_ byteane _null_ _null_ _null_ )); -DATA(insert OID = 1954 ( byteacmp PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "17 17" _null_ _null_ _null_ _null_ _null_ byteacmp _null_ _null_ _null_ )); -DESCR("less-equal-greater"); -DATA(insert OID = 3331 ( bytea_sortsupport PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2278 "2281" _null_ _null_ _null_ _null_ _null_ bytea_sortsupport _null_ _null_ _null_ )); -DESCR("sort support"); - -DATA(insert OID = 3917 ( timestamp_transform PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2281 "2281" _null_ _null_ _null_ _null_ _null_ timestamp_transform _null_ _null_ _null_ )); -DESCR("transform a timestamp length coercion"); -DATA(insert OID = 3944 ( time_transform PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2281 "2281" _null_ _null_ _null_ _null_ _null_ time_transform _null_ _null_ _null_ )); -DESCR("transform a time length coercion"); - -DATA(insert OID = 1961 ( timestamp PGNSP PGUID 12 1 0 0 timestamp_transform f f f t f i s 2 0 1114 "1114 23" _null_ _null_ _null_ _null_ _null_ timestamp_scale _null_ _null_ _null_ )); -DESCR("adjust timestamp precision"); - -DATA(insert OID = 1965 ( oidlarger PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 26 "26 26" _null_ _null_ _null_ _null_ _null_ oidlarger _null_ _null_ _null_ )); -DESCR("larger of two"); -DATA(insert OID = 1966 ( oidsmaller PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 26 "26 26" _null_ _null_ _null_ _null_ _null_ oidsmaller _null_ _null_ _null_ )); -DESCR("smaller of two"); - -DATA(insert OID = 1967 ( timestamptz PGNSP PGUID 12 1 0 0 timestamp_transform f f f t f i s 2 0 1184 "1184 23" _null_ _null_ _null_ _null_ _null_ timestamptz_scale _null_ _null_ _null_ )); -DESCR("adjust timestamptz precision"); -DATA(insert OID = 1968 ( time PGNSP PGUID 12 1 0 0 time_transform f f f t f i s 2 0 1083 "1083 23" _null_ _null_ _null_ _null_ _null_ time_scale _null_ _null_ _null_ )); -DESCR("adjust time precision"); -DATA(insert OID = 1969 ( timetz PGNSP PGUID 12 1 0 0 time_transform f f f t f i s 2 0 1266 "1266 23" _null_ _null_ _null_ _null_ _null_ timetz_scale _null_ _null_ _null_ )); -DESCR("adjust time with time zone precision"); - -DATA(insert OID = 2003 ( textanycat PGNSP PGUID 14 1 0 0 0 f f f t f s s 2 0 25 "25 2776" _null_ _null_ _null_ _null_ _null_ "select $1 || $2::pg_catalog.text" _null_ _null_ _null_ )); -DATA(insert OID = 2004 ( anytextcat PGNSP PGUID 14 1 0 0 0 f f f t f s s 2 0 25 "2776 25" _null_ _null_ _null_ _null_ _null_ "select $1::pg_catalog.text || $2" _null_ _null_ _null_ )); - -DATA(insert OID = 2005 ( bytealike PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "17 17" _null_ _null_ _null_ _null_ _null_ bytealike _null_ _null_ _null_ )); -DATA(insert OID = 2006 ( byteanlike PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "17 17" _null_ _null_ _null_ _null_ _null_ byteanlike _null_ _null_ _null_ )); -DATA(insert OID = 2007 ( like PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "17 17" _null_ _null_ _null_ _null_ _null_ bytealike _null_ _null_ _null_ )); -DESCR("matches LIKE expression"); -DATA(insert OID = 2008 ( notlike PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "17 17" _null_ _null_ _null_ _null_ _null_ byteanlike _null_ _null_ _null_ )); -DESCR("does not match LIKE expression"); -DATA(insert OID = 2009 ( like_escape PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 17 "17 17" _null_ _null_ _null_ _null_ _null_ like_escape_bytea _null_ _null_ _null_ )); -DESCR("convert LIKE pattern to use backslash escapes"); -DATA(insert OID = 2010 ( length PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "17" _null_ _null_ _null_ _null_ _null_ byteaoctetlen _null_ _null_ _null_ )); -DESCR("octet length"); -DATA(insert OID = 2011 ( byteacat PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 17 "17 17" _null_ _null_ _null_ _null_ _null_ byteacat _null_ _null_ _null_ )); -DATA(insert OID = 2012 ( substring PGNSP PGUID 12 1 0 0 0 f f f t f i s 3 0 17 "17 23 23" _null_ _null_ _null_ _null_ _null_ bytea_substr _null_ _null_ _null_ )); -DESCR("extract portion of string"); -DATA(insert OID = 2013 ( substring PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 17 "17 23" _null_ _null_ _null_ _null_ _null_ bytea_substr_no_len _null_ _null_ _null_ )); -DESCR("extract portion of string"); -DATA(insert OID = 2085 ( substr PGNSP PGUID 12 1 0 0 0 f f f t f i s 3 0 17 "17 23 23" _null_ _null_ _null_ _null_ _null_ bytea_substr _null_ _null_ _null_ )); -DESCR("extract portion of string"); -DATA(insert OID = 2086 ( substr PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 17 "17 23" _null_ _null_ _null_ _null_ _null_ bytea_substr_no_len _null_ _null_ _null_ )); -DESCR("extract portion of string"); -DATA(insert OID = 2014 ( position PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "17 17" _null_ _null_ _null_ _null_ _null_ byteapos _null_ _null_ _null_ )); -DESCR("position of substring"); -DATA(insert OID = 2015 ( btrim PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 17 "17 17" _null_ _null_ _null_ _null_ _null_ byteatrim _null_ _null_ _null_ )); -DESCR("trim both ends of string"); - -DATA(insert OID = 2019 ( time PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 1083 "1184" _null_ _null_ _null_ _null_ _null_ timestamptz_time _null_ _null_ _null_ )); -DESCR("convert timestamp with time zone to time"); -DATA(insert OID = 2020 ( date_trunc PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1114 "25 1114" _null_ _null_ _null_ _null_ _null_ timestamp_trunc _null_ _null_ _null_ )); -DESCR("truncate timestamp to specified units"); -DATA(insert OID = 2021 ( date_part PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 701 "25 1114" _null_ _null_ _null_ _null_ _null_ timestamp_part _null_ _null_ _null_ )); -DESCR("extract field from timestamp"); -DATA(insert OID = 2023 ( timestamp PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 1114 "702" _null_ _null_ _null_ _null_ _null_ abstime_timestamp _null_ _null_ _null_ )); -DESCR("convert abstime to timestamp"); -DATA(insert OID = 2024 ( timestamp PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 1114 "1082" _null_ _null_ _null_ _null_ _null_ date_timestamp _null_ _null_ _null_ )); -DESCR("convert date to timestamp"); -DATA(insert OID = 2025 ( timestamp PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1114 "1082 1083" _null_ _null_ _null_ _null_ _null_ datetime_timestamp _null_ _null_ _null_ )); -DESCR("convert date and time to timestamp"); -DATA(insert OID = 2027 ( timestamp PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 1114 "1184" _null_ _null_ _null_ _null_ _null_ timestamptz_timestamp _null_ _null_ _null_ )); -DESCR("convert timestamp with time zone to timestamp"); -DATA(insert OID = 2028 ( timestamptz PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 1184 "1114" _null_ _null_ _null_ _null_ _null_ timestamp_timestamptz _null_ _null_ _null_ )); -DESCR("convert timestamp to timestamp with time zone"); -DATA(insert OID = 2029 ( date PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 1082 "1114" _null_ _null_ _null_ _null_ _null_ timestamp_date _null_ _null_ _null_ )); -DESCR("convert timestamp to date"); -DATA(insert OID = 2030 ( abstime PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 702 "1114" _null_ _null_ _null_ _null_ _null_ timestamp_abstime _null_ _null_ _null_ )); -DESCR("convert timestamp to abstime"); -DATA(insert OID = 2031 ( timestamp_mi PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1186 "1114 1114" _null_ _null_ _null_ _null_ _null_ timestamp_mi _null_ _null_ _null_ )); -DATA(insert OID = 2032 ( timestamp_pl_interval PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1114 "1114 1186" _null_ _null_ _null_ _null_ _null_ timestamp_pl_interval _null_ _null_ _null_ )); -DATA(insert OID = 2033 ( timestamp_mi_interval PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1114 "1114 1186" _null_ _null_ _null_ _null_ _null_ timestamp_mi_interval _null_ _null_ _null_ )); -DATA(insert OID = 2035 ( timestamp_smaller PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1114 "1114 1114" _null_ _null_ _null_ _null_ _null_ timestamp_smaller _null_ _null_ _null_ )); -DESCR("smaller of two"); -DATA(insert OID = 2036 ( timestamp_larger PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1114 "1114 1114" _null_ _null_ _null_ _null_ _null_ timestamp_larger _null_ _null_ _null_ )); -DESCR("larger of two"); -DATA(insert OID = 2037 ( timezone PGNSP PGUID 12 1 0 0 0 f f f t f v s 2 0 1266 "25 1266" _null_ _null_ _null_ _null_ _null_ timetz_zone _null_ _null_ _null_ )); -DESCR("adjust time with time zone to new zone"); -DATA(insert OID = 2038 ( timezone PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1266 "1186 1266" _null_ _null_ _null_ _null_ _null_ timetz_izone _null_ _null_ _null_ )); -DESCR("adjust time with time zone to new zone"); -DATA(insert OID = 2039 ( timestamp_hash PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "1114" _null_ _null_ _null_ _null_ _null_ timestamp_hash _null_ _null_ _null_ )); -DESCR("hash"); -DATA(insert OID = 3411 ( timestamp_hash_extended PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 20 "1114 20" _null_ _null_ _null_ _null_ _null_ timestamp_hash_extended _null_ _null_ _null_ )); -DESCR("hash"); -DATA(insert OID = 2041 ( overlaps PGNSP PGUID 12 1 0 0 0 f f f f f i s 4 0 16 "1114 1114 1114 1114" _null_ _null_ _null_ _null_ _null_ overlaps_timestamp _null_ _null_ _null_ )); -DESCR("intervals overlap?"); -DATA(insert OID = 2042 ( overlaps PGNSP PGUID 14 1 0 0 0 f f f f f i s 4 0 16 "1114 1186 1114 1186" _null_ _null_ _null_ _null_ _null_ "select ($1, ($1 + $2)) overlaps ($3, ($3 + $4))" _null_ _null_ _null_ )); -DESCR("intervals overlap?"); -DATA(insert OID = 2043 ( overlaps PGNSP PGUID 14 1 0 0 0 f f f f f i s 4 0 16 "1114 1114 1114 1186" _null_ _null_ _null_ _null_ _null_ "select ($1, $2) overlaps ($3, ($3 + $4))" _null_ _null_ _null_ )); -DESCR("intervals overlap?"); -DATA(insert OID = 2044 ( overlaps PGNSP PGUID 14 1 0 0 0 f f f f f i s 4 0 16 "1114 1186 1114 1114" _null_ _null_ _null_ _null_ _null_ "select ($1, ($1 + $2)) overlaps ($3, $4)" _null_ _null_ _null_ )); -DESCR("intervals overlap?"); -DATA(insert OID = 2045 ( timestamp_cmp PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "1114 1114" _null_ _null_ _null_ _null_ _null_ timestamp_cmp _null_ _null_ _null_ )); -DESCR("less-equal-greater"); -DATA(insert OID = 3137 ( timestamp_sortsupport PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2278 "2281" _null_ _null_ _null_ _null_ _null_ timestamp_sortsupport _null_ _null_ _null_ )); -DESCR("sort support"); - -DATA(insert OID = 4134 ( in_range PGNSP PGUID 12 1 0 0 0 f f f t f i s 5 0 16 "1114 1114 1186 16 16" _null_ _null_ _null_ _null_ _null_ in_range_timestamp_interval _null_ _null_ _null_ )); -DESCR("window RANGE support"); -DATA(insert OID = 4135 ( in_range PGNSP PGUID 12 1 0 0 0 f f f t f s s 5 0 16 "1184 1184 1186 16 16" _null_ _null_ _null_ _null_ _null_ in_range_timestamptz_interval _null_ _null_ _null_ )); -DESCR("window RANGE support"); -DATA(insert OID = 4136 ( in_range PGNSP PGUID 12 1 0 0 0 f f f t f i s 5 0 16 "1186 1186 1186 16 16" _null_ _null_ _null_ _null_ _null_ in_range_interval_interval _null_ _null_ _null_ )); -DESCR("window RANGE support"); -DATA(insert OID = 4137 ( in_range PGNSP PGUID 12 1 0 0 0 f f f t f i s 5 0 16 "1083 1083 1186 16 16" _null_ _null_ _null_ _null_ _null_ in_range_time_interval _null_ _null_ _null_ )); -DESCR("window RANGE support"); -DATA(insert OID = 4138 ( in_range PGNSP PGUID 12 1 0 0 0 f f f t f i s 5 0 16 "1266 1266 1186 16 16" _null_ _null_ _null_ _null_ _null_ in_range_timetz_interval _null_ _null_ _null_ )); -DESCR("window RANGE support"); - -DATA(insert OID = 2046 ( time PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 1083 "1266" _null_ _null_ _null_ _null_ _null_ timetz_time _null_ _null_ _null_ )); -DESCR("convert time with time zone to time"); -DATA(insert OID = 2047 ( timetz PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 1266 "1083" _null_ _null_ _null_ _null_ _null_ time_timetz _null_ _null_ _null_ )); -DESCR("convert time to time with time zone"); -DATA(insert OID = 2048 ( isfinite PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 16 "1114" _null_ _null_ _null_ _null_ _null_ timestamp_finite _null_ _null_ _null_ )); -DESCR("finite timestamp?"); -DATA(insert OID = 2049 ( to_char PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 25 "1114 25" _null_ _null_ _null_ _null_ _null_ timestamp_to_char _null_ _null_ _null_ )); -DESCR("format timestamp to text"); -DATA(insert OID = 2052 ( timestamp_eq PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "1114 1114" _null_ _null_ _null_ _null_ _null_ timestamp_eq _null_ _null_ _null_ )); -DATA(insert OID = 2053 ( timestamp_ne PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "1114 1114" _null_ _null_ _null_ _null_ _null_ timestamp_ne _null_ _null_ _null_ )); -DATA(insert OID = 2054 ( timestamp_lt PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "1114 1114" _null_ _null_ _null_ _null_ _null_ timestamp_lt _null_ _null_ _null_ )); -DATA(insert OID = 2055 ( timestamp_le PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "1114 1114" _null_ _null_ _null_ _null_ _null_ timestamp_le _null_ _null_ _null_ )); -DATA(insert OID = 2056 ( timestamp_ge PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "1114 1114" _null_ _null_ _null_ _null_ _null_ timestamp_ge _null_ _null_ _null_ )); -DATA(insert OID = 2057 ( timestamp_gt PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "1114 1114" _null_ _null_ _null_ _null_ _null_ timestamp_gt _null_ _null_ _null_ )); -DATA(insert OID = 2058 ( age PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1186 "1114 1114" _null_ _null_ _null_ _null_ _null_ timestamp_age _null_ _null_ _null_ )); -DESCR("date difference preserving months and years"); -DATA(insert OID = 2059 ( age PGNSP PGUID 14 1 0 0 0 f f f t f s s 1 0 1186 "1114" _null_ _null_ _null_ _null_ _null_ "select pg_catalog.age(cast(current_date as timestamp without time zone), $1)" _null_ _null_ _null_ )); -DESCR("date difference from today preserving months and years"); - -DATA(insert OID = 2069 ( timezone PGNSP PGUID 12 1 0 0 timestamp_zone_transform f f f t f i s 2 0 1184 "25 1114" _null_ _null_ _null_ _null_ _null_ timestamp_zone _null_ _null_ _null_ )); -DESCR("adjust timestamp to new time zone"); -DATA(insert OID = 2070 ( timezone PGNSP PGUID 12 1 0 0 timestamp_izone_transform f f f t f i s 2 0 1184 "1186 1114" _null_ _null_ _null_ _null_ _null_ timestamp_izone _null_ _null_ _null_ )); -DESCR("adjust timestamp to new time zone"); -DATA(insert OID = 2071 ( date_pl_interval PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1114 "1082 1186" _null_ _null_ _null_ _null_ _null_ date_pl_interval _null_ _null_ _null_ )); -DATA(insert OID = 2072 ( date_mi_interval PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1114 "1082 1186" _null_ _null_ _null_ _null_ _null_ date_mi_interval _null_ _null_ _null_ )); - -DATA(insert OID = 2073 ( substring PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 25 "25 25" _null_ _null_ _null_ _null_ _null_ textregexsubstr _null_ _null_ _null_ )); -DESCR("extract text matching regular expression"); -DATA(insert OID = 2074 ( substring PGNSP PGUID 14 1 0 0 0 f f f t f i s 3 0 25 "25 25 25" _null_ _null_ _null_ _null_ _null_ "select pg_catalog.substring($1, pg_catalog.similar_escape($2, $3))" _null_ _null_ _null_ )); -DESCR("extract text matching SQL99 regular expression"); - -DATA(insert OID = 2075 ( bit PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1560 "20 23" _null_ _null_ _null_ _null_ _null_ bitfromint8 _null_ _null_ _null_ )); -DESCR("convert int8 to bitstring"); -DATA(insert OID = 2076 ( int8 PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 20 "1560" _null_ _null_ _null_ _null_ _null_ bittoint8 _null_ _null_ _null_ )); -DESCR("convert bitstring to int8"); - -DATA(insert OID = 2077 ( current_setting PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 25 "25" _null_ _null_ _null_ _null_ _null_ show_config_by_name _null_ _null_ _null_ )); -DESCR("SHOW X as a function"); -DATA(insert OID = 3294 ( current_setting PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 25 "25 16" _null_ _null_ _null_ _null_ _null_ show_config_by_name_missing_ok _null_ _null_ _null_ )); -DESCR("SHOW X as a function, optionally no error for missing variable"); -DATA(insert OID = 2078 ( set_config PGNSP PGUID 12 1 0 0 0 f f f f f v u 3 0 25 "25 25 16" _null_ _null_ _null_ _null_ _null_ set_config_by_name _null_ _null_ _null_ )); -DESCR("SET X as a function"); -DATA(insert OID = 2084 ( pg_show_all_settings PGNSP PGUID 12 1 1000 0 0 f f f t t s s 0 0 2249 "" "{25,25,25,25,25,25,25,25,25,25,25,1009,25,25,25,23,16}" "{o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o}" "{name,setting,unit,category,short_desc,extra_desc,context,vartype,source,min_val,max_val,enumvals,boot_val,reset_val,sourcefile,sourceline,pending_restart}" _null_ _null_ show_all_settings _null_ _null_ _null_ )); -DESCR("SHOW ALL as a function"); -DATA(insert OID = 3329 ( pg_show_all_file_settings PGNSP PGUID 12 1 1000 0 0 f f f t t v s 0 0 2249 "" "{25,23,23,25,25,16,25}" "{o,o,o,o,o,o,o}" "{sourcefile,sourceline,seqno,name,setting,applied,error}" _null_ _null_ show_all_file_settings _null_ _null_ _null_ )); -DESCR("show config file settings"); -DATA(insert OID = 3401 ( pg_hba_file_rules PGNSP PGUID 12 1 1000 0 0 f f f t t v s 0 0 2249 "" "{23,25,1009,1009,25,25,25,1009,25}" "{o,o,o,o,o,o,o,o,o}" "{line_number,type,database,user_name,address,netmask,auth_method,options,error}" _null_ _null_ pg_hba_file_rules _null_ _null_ _null_ )); -DESCR("show pg_hba.conf rules"); -DATA(insert OID = 1371 ( pg_lock_status PGNSP PGUID 12 1 1000 0 0 f f f t t v s 0 0 2249 "" "{25,26,26,23,21,25,28,26,26,21,25,23,25,16,16}" "{o,o,o,o,o,o,o,o,o,o,o,o,o,o,o}" "{locktype,database,relation,page,tuple,virtualxid,transactionid,classid,objid,objsubid,virtualtransaction,pid,mode,granted,fastpath}" _null_ _null_ pg_lock_status _null_ _null_ _null_ )); -DESCR("view system lock information"); -DATA(insert OID = 2561 ( pg_blocking_pids PGNSP PGUID 12 1 0 0 0 f f f t f v s 1 0 1007 "23" _null_ _null_ _null_ _null_ _null_ pg_blocking_pids _null_ _null_ _null_ )); -DESCR("get array of PIDs of sessions blocking specified backend PID from acquiring a heavyweight lock"); -DATA(insert OID = 3376 ( pg_safe_snapshot_blocking_pids PGNSP PGUID 12 1 0 0 0 f f f t f v s 1 0 1007 "23" _null_ _null_ _null_ _null_ _null_ pg_safe_snapshot_blocking_pids _null_ _null_ _null_ )); -DESCR("get array of PIDs of sessions blocking specified backend PID from acquiring a safe snapshot"); -DATA(insert OID = 3378 ( pg_isolation_test_session_is_blocked PGNSP PGUID 12 1 0 0 0 f f f t f v s 2 0 16 "23 1007" _null_ _null_ _null_ _null_ _null_ pg_isolation_test_session_is_blocked _null_ _null_ _null_ )); -DESCR("isolationtester support function"); -DATA(insert OID = 1065 ( pg_prepared_xact PGNSP PGUID 12 1 1000 0 0 f f f t t v s 0 0 2249 "" "{28,25,1184,26,26}" "{o,o,o,o,o}" "{transaction,gid,prepared,ownerid,dbid}" _null_ _null_ pg_prepared_xact _null_ _null_ _null_ )); -DESCR("view two-phase transactions"); -DATA(insert OID = 3819 ( pg_get_multixact_members PGNSP PGUID 12 1 1000 0 0 f f f t t v s 1 0 2249 "28" "{28,28,25}" "{i,o,o}" "{multixid,xid,mode}" _null_ _null_ pg_get_multixact_members _null_ _null_ _null_ )); -DESCR("view members of a multixactid"); - -DATA(insert OID = 3581 ( pg_xact_commit_timestamp PGNSP PGUID 12 1 0 0 0 f f f t f v s 1 0 1184 "28" _null_ _null_ _null_ _null_ _null_ pg_xact_commit_timestamp _null_ _null_ _null_ )); -DESCR("get commit timestamp of a transaction"); - -DATA(insert OID = 3583 ( pg_last_committed_xact PGNSP PGUID 12 1 0 0 0 f f f t f v s 0 0 2249 "" "{28,1184}" "{o,o}" "{xid,timestamp}" _null_ _null_ pg_last_committed_xact _null_ _null_ _null_ )); -DESCR("get transaction Id and commit timestamp of latest transaction commit"); - -DATA(insert OID = 3537 ( pg_describe_object PGNSP PGUID 12 1 0 0 0 f f f t f s s 3 0 25 "26 26 23" _null_ _null_ _null_ _null_ _null_ pg_describe_object _null_ _null_ _null_ )); -DESCR("get identification of SQL object"); - -DATA(insert OID = 3839 ( pg_identify_object PGNSP PGUID 12 1 0 0 0 f f f t f s s 3 0 2249 "26 26 23" "{26,26,23,25,25,25,25}" "{i,i,i,o,o,o,o}" "{classid,objid,objsubid,type,schema,name,identity}" _null_ _null_ pg_identify_object _null_ _null_ _null_ )); -DESCR("get machine-parseable identification of SQL object"); - -DATA(insert OID = 3382 ( pg_identify_object_as_address PGNSP PGUID 12 1 0 0 0 f f f t f s s 3 0 2249 "26 26 23" "{26,26,23,25,1009,1009}" "{i,i,i,o,o,o}" "{classid,objid,objsubid,type,object_names,object_args}" _null_ _null_ pg_identify_object_as_address _null_ _null_ _null_ )); -DESCR("get identification of SQL object for pg_get_object_address()"); - -DATA(insert OID = 3954 ( pg_get_object_address PGNSP PGUID 12 1 0 0 0 f f f t f s s 3 0 2249 "25 1009 1009" "{25,1009,1009,26,26,23}" "{i,i,i,o,o,o}" "{type,name,args,classid,objid,objsubid}" _null_ _null_ pg_get_object_address _null_ _null_ _null_ )); -DESCR("get OID-based object address from name/args arrays"); - -DATA(insert OID = 2079 ( pg_table_is_visible PGNSP PGUID 12 10 0 0 0 f f f t f s s 1 0 16 "26" _null_ _null_ _null_ _null_ _null_ pg_table_is_visible _null_ _null_ _null_ )); -DESCR("is table visible in search path?"); -DATA(insert OID = 2080 ( pg_type_is_visible PGNSP PGUID 12 10 0 0 0 f f f t f s s 1 0 16 "26" _null_ _null_ _null_ _null_ _null_ pg_type_is_visible _null_ _null_ _null_ )); -DESCR("is type visible in search path?"); -DATA(insert OID = 2081 ( pg_function_is_visible PGNSP PGUID 12 10 0 0 0 f f f t f s s 1 0 16 "26" _null_ _null_ _null_ _null_ _null_ pg_function_is_visible _null_ _null_ _null_ )); -DESCR("is function visible in search path?"); -DATA(insert OID = 2082 ( pg_operator_is_visible PGNSP PGUID 12 10 0 0 0 f f f t f s s 1 0 16 "26" _null_ _null_ _null_ _null_ _null_ pg_operator_is_visible _null_ _null_ _null_ )); -DESCR("is operator visible in search path?"); -DATA(insert OID = 2083 ( pg_opclass_is_visible PGNSP PGUID 12 10 0 0 0 f f f t f s s 1 0 16 "26" _null_ _null_ _null_ _null_ _null_ pg_opclass_is_visible _null_ _null_ _null_ )); -DESCR("is opclass visible in search path?"); -DATA(insert OID = 3829 ( pg_opfamily_is_visible PGNSP PGUID 12 10 0 0 0 f f f t f s s 1 0 16 "26" _null_ _null_ _null_ _null_ _null_ pg_opfamily_is_visible _null_ _null_ _null_ )); -DESCR("is opfamily visible in search path?"); -DATA(insert OID = 2093 ( pg_conversion_is_visible PGNSP PGUID 12 10 0 0 0 f f f t f s s 1 0 16 "26" _null_ _null_ _null_ _null_ _null_ pg_conversion_is_visible _null_ _null_ _null_ )); -DESCR("is conversion visible in search path?"); -DATA(insert OID = 3403 ( pg_statistics_obj_is_visible PGNSP PGUID 12 10 0 0 0 f f f t f s s 1 0 16 "26" _null_ _null_ _null_ _null_ _null_ pg_statistics_obj_is_visible _null_ _null_ _null_ )); -DESCR("is statistics object visible in search path?"); -DATA(insert OID = 3756 ( pg_ts_parser_is_visible PGNSP PGUID 12 10 0 0 0 f f f t f s s 1 0 16 "26" _null_ _null_ _null_ _null_ _null_ pg_ts_parser_is_visible _null_ _null_ _null_ )); -DESCR("is text search parser visible in search path?"); -DATA(insert OID = 3757 ( pg_ts_dict_is_visible PGNSP PGUID 12 10 0 0 0 f f f t f s s 1 0 16 "26" _null_ _null_ _null_ _null_ _null_ pg_ts_dict_is_visible _null_ _null_ _null_ )); -DESCR("is text search dictionary visible in search path?"); -DATA(insert OID = 3768 ( pg_ts_template_is_visible PGNSP PGUID 12 10 0 0 0 f f f t f s s 1 0 16 "26" _null_ _null_ _null_ _null_ _null_ pg_ts_template_is_visible _null_ _null_ _null_ )); -DESCR("is text search template visible in search path?"); -DATA(insert OID = 3758 ( pg_ts_config_is_visible PGNSP PGUID 12 10 0 0 0 f f f t f s s 1 0 16 "26" _null_ _null_ _null_ _null_ _null_ pg_ts_config_is_visible _null_ _null_ _null_ )); -DESCR("is text search configuration visible in search path?"); -DATA(insert OID = 3815 ( pg_collation_is_visible PGNSP PGUID 12 10 0 0 0 f f f t f s s 1 0 16 "26" _null_ _null_ _null_ _null_ _null_ pg_collation_is_visible _null_ _null_ _null_ )); -DESCR("is collation visible in search path?"); - -DATA(insert OID = 2854 ( pg_my_temp_schema PGNSP PGUID 12 1 0 0 0 f f f t f s r 0 0 26 "" _null_ _null_ _null_ _null_ _null_ pg_my_temp_schema _null_ _null_ _null_ )); -DESCR("get OID of current session's temp schema, if any"); -DATA(insert OID = 2855 ( pg_is_other_temp_schema PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 16 "26" _null_ _null_ _null_ _null_ _null_ pg_is_other_temp_schema _null_ _null_ _null_ )); -DESCR("is schema another session's temp schema?"); - -DATA(insert OID = 2171 ( pg_cancel_backend PGNSP PGUID 12 1 0 0 0 f f f t f v s 1 0 16 "23" _null_ _null_ _null_ _null_ _null_ pg_cancel_backend _null_ _null_ _null_ )); -DESCR("cancel a server process' current query"); -DATA(insert OID = 2096 ( pg_terminate_backend PGNSP PGUID 12 1 0 0 0 f f f t f v s 1 0 16 "23" _null_ _null_ _null_ _null_ _null_ pg_terminate_backend _null_ _null_ _null_ )); -DESCR("terminate a server process"); -DATA(insert OID = 2172 ( pg_start_backup PGNSP PGUID 12 1 0 0 0 f f f t f v r 3 0 3220 "25 16 16" _null_ _null_ _null_ _null_ _null_ pg_start_backup _null_ _null_ _null_ )); -DESCR("prepare for taking an online backup"); -DATA(insert OID = 2173 ( pg_stop_backup PGNSP PGUID 12 1 0 0 0 f f f t f v r 0 0 3220 "" _null_ _null_ _null_ _null_ _null_ pg_stop_backup _null_ _null_ _null_ )); -DESCR("finish taking an online backup"); -DATA(insert OID = 2739 ( pg_stop_backup PGNSP PGUID 12 1 1 0 0 f f f t t v r 2 0 2249 "16 16" "{16,16,3220,25,25}" "{i,i,o,o,o}" "{exclusive,wait_for_archive,lsn,labelfile,spcmapfile}" _null_ _null_ pg_stop_backup_v2 _null_ _null_ _null_ )); -DESCR("finish taking an online backup"); -DATA(insert OID = 3813 ( pg_is_in_backup PGNSP PGUID 12 1 0 0 0 f f f t f v s 0 0 16 "" _null_ _null_ _null_ _null_ _null_ pg_is_in_backup _null_ _null_ _null_ )); -DESCR("true if server is in online backup"); -DATA(insert OID = 3814 ( pg_backup_start_time PGNSP PGUID 12 1 0 0 0 f f f t f s s 0 0 1184 "" _null_ _null_ _null_ _null_ _null_ pg_backup_start_time _null_ _null_ _null_ )); -DESCR("start time of an online backup"); -DATA(insert OID = 2848 ( pg_switch_wal PGNSP PGUID 12 1 0 0 0 f f f t f v s 0 0 3220 "" _null_ _null_ _null_ _null_ _null_ pg_switch_wal _null_ _null_ _null_ )); -DESCR("switch to new wal file"); -DATA(insert OID = 3098 ( pg_create_restore_point PGNSP PGUID 12 1 0 0 0 f f f t f v s 1 0 3220 "25" _null_ _null_ _null_ _null_ _null_ pg_create_restore_point _null_ _null_ _null_ )); -DESCR("create a named restore point"); -DATA(insert OID = 2849 ( pg_current_wal_lsn PGNSP PGUID 12 1 0 0 0 f f f t f v s 0 0 3220 "" _null_ _null_ _null_ _null_ _null_ pg_current_wal_lsn _null_ _null_ _null_ )); -DESCR("current wal write location"); -DATA(insert OID = 2852 ( pg_current_wal_insert_lsn PGNSP PGUID 12 1 0 0 0 f f f t f v s 0 0 3220 "" _null_ _null_ _null_ _null_ _null_ pg_current_wal_insert_lsn _null_ _null_ _null_ )); -DESCR("current wal insert location"); -DATA(insert OID = 3330 ( pg_current_wal_flush_lsn PGNSP PGUID 12 1 0 0 0 f f f t f v s 0 0 3220 "" _null_ _null_ _null_ _null_ _null_ pg_current_wal_flush_lsn _null_ _null_ _null_ )); -DESCR("current wal flush location"); -DATA(insert OID = 2850 ( pg_walfile_name_offset PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2249 "3220" "{3220,25,23}" "{i,o,o}" "{lsn,file_name,file_offset}" _null_ _null_ pg_walfile_name_offset _null_ _null_ _null_ )); -DESCR("wal filename and byte offset, given a wal location"); -DATA(insert OID = 2851 ( pg_walfile_name PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 25 "3220" _null_ _null_ _null_ _null_ _null_ pg_walfile_name _null_ _null_ _null_ )); -DESCR("wal filename, given a wal location"); - -DATA(insert OID = 3165 ( pg_wal_lsn_diff PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1700 "3220 3220" _null_ _null_ _null_ _null_ _null_ pg_wal_lsn_diff _null_ _null_ _null_ )); -DESCR("difference in bytes, given two wal locations"); - -DATA(insert OID = 3809 ( pg_export_snapshot PGNSP PGUID 12 1 0 0 0 f f f t f v u 0 0 25 "" _null_ _null_ _null_ _null_ _null_ pg_export_snapshot _null_ _null_ _null_ )); -DESCR("export a snapshot"); - -DATA(insert OID = 3810 ( pg_is_in_recovery PGNSP PGUID 12 1 0 0 0 f f f t f v s 0 0 16 "" _null_ _null_ _null_ _null_ _null_ pg_is_in_recovery _null_ _null_ _null_ )); -DESCR("true if server is in recovery"); - -DATA(insert OID = 3820 ( pg_last_wal_receive_lsn PGNSP PGUID 12 1 0 0 0 f f f t f v s 0 0 3220 "" _null_ _null_ _null_ _null_ _null_ pg_last_wal_receive_lsn _null_ _null_ _null_ )); -DESCR("current wal flush location"); -DATA(insert OID = 3821 ( pg_last_wal_replay_lsn PGNSP PGUID 12 1 0 0 0 f f f t f v s 0 0 3220 "" _null_ _null_ _null_ _null_ _null_ pg_last_wal_replay_lsn _null_ _null_ _null_ )); -DESCR("last wal replay location"); -DATA(insert OID = 3830 ( pg_last_xact_replay_timestamp PGNSP PGUID 12 1 0 0 0 f f f t f v s 0 0 1184 "" _null_ _null_ _null_ _null_ _null_ pg_last_xact_replay_timestamp _null_ _null_ _null_ )); -DESCR("timestamp of last replay xact"); - -DATA(insert OID = 3071 ( pg_wal_replay_pause PGNSP PGUID 12 1 0 0 0 f f f t f v s 0 0 2278 "" _null_ _null_ _null_ _null_ _null_ pg_wal_replay_pause _null_ _null_ _null_ )); -DESCR("pause wal replay"); -DATA(insert OID = 3072 ( pg_wal_replay_resume PGNSP PGUID 12 1 0 0 0 f f f t f v s 0 0 2278 "" _null_ _null_ _null_ _null_ _null_ pg_wal_replay_resume _null_ _null_ _null_ )); -DESCR("resume wal replay, if it was paused"); -DATA(insert OID = 3073 ( pg_is_wal_replay_paused PGNSP PGUID 12 1 0 0 0 f f f t f v s 0 0 16 "" _null_ _null_ _null_ _null_ _null_ pg_is_wal_replay_paused _null_ _null_ _null_ )); -DESCR("true if wal replay is paused"); - -DATA(insert OID = 2621 ( pg_reload_conf PGNSP PGUID 12 1 0 0 0 f f f t f v s 0 0 16 "" _null_ _null_ _null_ _null_ _null_ pg_reload_conf _null_ _null_ _null_ )); -DESCR("reload configuration files"); -DATA(insert OID = 2622 ( pg_rotate_logfile PGNSP PGUID 12 1 0 0 0 f f f t f v s 0 0 16 "" _null_ _null_ _null_ _null_ _null_ pg_rotate_logfile_v2 _null_ _null_ _null_ )); -DESCR("rotate log file"); -DATA(insert OID = 4099 ( pg_rotate_logfile_old PGNSP PGUID 12 1 0 0 0 f f f t f v s 0 0 16 "" _null_ _null_ _null_ _null_ _null_ pg_rotate_logfile _null_ _null_ _null_ )); -DESCR("rotate log file - old version for adminpack 1.0"); -DATA(insert OID = 3800 ( pg_current_logfile PGNSP PGUID 12 1 0 0 0 f f f f f v s 0 0 25 "" _null_ _null_ _null_ _null_ _null_ pg_current_logfile _null_ _null_ _null_ )); -DESCR("current logging collector file location"); -DATA(insert OID = 3801 ( pg_current_logfile PGNSP PGUID 12 1 0 0 0 f f f f f v s 1 0 25 "25" _null_ _null_ _null_ _null_ _null_ pg_current_logfile_1arg _null_ _null_ _null_ )); -DESCR("current logging collector file location"); - -DATA(insert OID = 2623 ( pg_stat_file PGNSP PGUID 12 1 0 0 0 f f f t f v s 1 0 2249 "25" "{25,20,1184,1184,1184,1184,16}" "{i,o,o,o,o,o,o}" "{filename,size,access,modification,change,creation,isdir}" _null_ _null_ pg_stat_file_1arg _null_ _null_ _null_ )); -DESCR("get information about file"); -DATA(insert OID = 3307 ( pg_stat_file PGNSP PGUID 12 1 0 0 0 f f f t f v s 2 0 2249 "25 16" "{25,16,20,1184,1184,1184,1184,16}" "{i,i,o,o,o,o,o,o}" "{filename,missing_ok,size,access,modification,change,creation,isdir}" _null_ _null_ pg_stat_file _null_ _null_ _null_ )); -DESCR("get information about file"); -DATA(insert OID = 2624 ( pg_read_file PGNSP PGUID 12 1 0 0 0 f f f t f v s 3 0 25 "25 20 20" _null_ _null_ _null_ _null_ _null_ pg_read_file_off_len _null_ _null_ _null_ )); -DESCR("read text from a file"); -DATA(insert OID = 3293 ( pg_read_file PGNSP PGUID 12 1 0 0 0 f f f t f v s 4 0 25 "25 20 20 16" _null_ _null_ _null_ _null_ _null_ pg_read_file_v2 _null_ _null_ _null_ )); -DESCR("read text from a file"); -DATA(insert OID = 4100 ( pg_read_file_old PGNSP PGUID 12 1 0 0 0 f f f t f v s 3 0 25 "25 20 20" _null_ _null_ _null_ _null_ _null_ pg_read_file _null_ _null_ _null_ )); -DESCR("read text from a file - old version for adminpack 1.0"); -DATA(insert OID = 3826 ( pg_read_file PGNSP PGUID 12 1 0 0 0 f f f t f v s 1 0 25 "25" _null_ _null_ _null_ _null_ _null_ pg_read_file_all _null_ _null_ _null_ )); -DESCR("read text from a file"); -DATA(insert OID = 3827 ( pg_read_binary_file PGNSP PGUID 12 1 0 0 0 f f f t f v s 3 0 17 "25 20 20" _null_ _null_ _null_ _null_ _null_ pg_read_binary_file_off_len _null_ _null_ _null_ )); -DESCR("read bytea from a file"); -DATA(insert OID = 3295 ( pg_read_binary_file PGNSP PGUID 12 1 0 0 0 f f f t f v s 4 0 17 "25 20 20 16" _null_ _null_ _null_ _null_ _null_ pg_read_binary_file _null_ _null_ _null_ )); -DESCR("read bytea from a file"); -DATA(insert OID = 3828 ( pg_read_binary_file PGNSP PGUID 12 1 0 0 0 f f f t f v s 1 0 17 "25" _null_ _null_ _null_ _null_ _null_ pg_read_binary_file_all _null_ _null_ _null_ )); -DESCR("read bytea from a file"); -DATA(insert OID = 2625 ( pg_ls_dir PGNSP PGUID 12 1 1000 0 0 f f f t t v s 1 0 25 "25" _null_ _null_ _null_ _null_ _null_ pg_ls_dir_1arg _null_ _null_ _null_ )); -DESCR("list all files in a directory"); -DATA(insert OID = 3297 ( pg_ls_dir PGNSP PGUID 12 1 1000 0 0 f f f t t v s 3 0 25 "25 16 16" _null_ _null_ _null_ _null_ _null_ pg_ls_dir _null_ _null_ _null_ )); -DESCR("list all files in a directory"); -DATA(insert OID = 2626 ( pg_sleep PGNSP PGUID 12 1 0 0 0 f f f t f v s 1 0 2278 "701" _null_ _null_ _null_ _null_ _null_ pg_sleep _null_ _null_ _null_ )); -DESCR("sleep for the specified time in seconds"); -DATA(insert OID = 3935 ( pg_sleep_for PGNSP PGUID 14 1 0 0 0 f f f t f v s 1 0 2278 "1186" _null_ _null_ _null_ _null_ _null_ "select pg_catalog.pg_sleep(extract(epoch from pg_catalog.clock_timestamp() operator(pg_catalog.+) $1) operator(pg_catalog.-) extract(epoch from pg_catalog.clock_timestamp()))" _null_ _null_ _null_ )); -DESCR("sleep for the specified interval"); -DATA(insert OID = 3936 ( pg_sleep_until PGNSP PGUID 14 1 0 0 0 f f f t f v s 1 0 2278 "1184" _null_ _null_ _null_ _null_ _null_ "select pg_catalog.pg_sleep(extract(epoch from $1) operator(pg_catalog.-) extract(epoch from pg_catalog.clock_timestamp()))" _null_ _null_ _null_ )); -DESCR("sleep until the specified time"); -DATA(insert OID = 315 ( pg_jit_available PGNSP PGUID 12 1 0 0 0 f f f t f v s 0 0 16 "" _null_ _null_ _null_ _null_ _null_ pg_jit_available _null_ _null_ _null_ )); -DESCR("Is JIT compilation available in this session?"); - -DATA(insert OID = 2971 ( text PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 25 "16" _null_ _null_ _null_ _null_ _null_ booltext _null_ _null_ _null_ )); -DESCR("convert boolean to text"); - -/* Aggregates (moved here from pg_aggregate for 7.3) */ - -DATA(insert OID = 2100 ( avg PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 1700 "20" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("the average (arithmetic mean) as numeric of all bigint values"); -DATA(insert OID = 2101 ( avg PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 1700 "23" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("the average (arithmetic mean) as numeric of all integer values"); -DATA(insert OID = 2102 ( avg PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 1700 "21" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("the average (arithmetic mean) as numeric of all smallint values"); -DATA(insert OID = 2103 ( avg PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 1700 "1700" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("the average (arithmetic mean) as numeric of all numeric values"); -DATA(insert OID = 2104 ( avg PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 701 "700" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("the average (arithmetic mean) as float8 of all float4 values"); -DATA(insert OID = 2105 ( avg PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 701 "701" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("the average (arithmetic mean) as float8 of all float8 values"); -DATA(insert OID = 2106 ( avg PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 1186 "1186" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("the average (arithmetic mean) as interval of all interval values"); - -DATA(insert OID = 2107 ( sum PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 1700 "20" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("sum as numeric across all bigint input values"); -DATA(insert OID = 2108 ( sum PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 20 "23" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("sum as bigint across all integer input values"); -DATA(insert OID = 2109 ( sum PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 20 "21" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("sum as bigint across all smallint input values"); -DATA(insert OID = 2110 ( sum PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 700 "700" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("sum as float4 across all float4 input values"); -DATA(insert OID = 2111 ( sum PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 701 "701" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("sum as float8 across all float8 input values"); -DATA(insert OID = 2112 ( sum PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 790 "790" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("sum as money across all money input values"); -DATA(insert OID = 2113 ( sum PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 1186 "1186" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("sum as interval across all interval input values"); -DATA(insert OID = 2114 ( sum PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 1700 "1700" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("sum as numeric across all numeric input values"); - -DATA(insert OID = 2115 ( max PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 20 "20" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("maximum value of all bigint input values"); -DATA(insert OID = 2116 ( max PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 23 "23" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("maximum value of all integer input values"); -DATA(insert OID = 2117 ( max PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 21 "21" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("maximum value of all smallint input values"); -DATA(insert OID = 2118 ( max PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 26 "26" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("maximum value of all oid input values"); -DATA(insert OID = 2119 ( max PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 700 "700" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("maximum value of all float4 input values"); -DATA(insert OID = 2120 ( max PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 701 "701" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("maximum value of all float8 input values"); -DATA(insert OID = 2121 ( max PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 702 "702" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("maximum value of all abstime input values"); -DATA(insert OID = 2122 ( max PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 1082 "1082" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("maximum value of all date input values"); -DATA(insert OID = 2123 ( max PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 1083 "1083" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("maximum value of all time input values"); -DATA(insert OID = 2124 ( max PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 1266 "1266" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("maximum value of all time with time zone input values"); -DATA(insert OID = 2125 ( max PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 790 "790" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("maximum value of all money input values"); -DATA(insert OID = 2126 ( max PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 1114 "1114" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("maximum value of all timestamp input values"); -DATA(insert OID = 2127 ( max PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 1184 "1184" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("maximum value of all timestamp with time zone input values"); -DATA(insert OID = 2128 ( max PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 1186 "1186" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("maximum value of all interval input values"); -DATA(insert OID = 2129 ( max PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 25 "25" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("maximum value of all text input values"); -DATA(insert OID = 2130 ( max PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 1700 "1700" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("maximum value of all numeric input values"); -DATA(insert OID = 2050 ( max PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 2277 "2277" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("maximum value of all anyarray input values"); -DATA(insert OID = 2244 ( max PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 1042 "1042" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("maximum value of all bpchar input values"); -DATA(insert OID = 2797 ( max PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 27 "27" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("maximum value of all tid input values"); -DATA(insert OID = 3564 ( max PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 869 "869" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("maximum value of all inet input values"); - -DATA(insert OID = 2131 ( min PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 20 "20" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("minimum value of all bigint input values"); -DATA(insert OID = 2132 ( min PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 23 "23" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("minimum value of all integer input values"); -DATA(insert OID = 2133 ( min PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 21 "21" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("minimum value of all smallint input values"); -DATA(insert OID = 2134 ( min PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 26 "26" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("minimum value of all oid input values"); -DATA(insert OID = 2135 ( min PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 700 "700" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("minimum value of all float4 input values"); -DATA(insert OID = 2136 ( min PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 701 "701" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("minimum value of all float8 input values"); -DATA(insert OID = 2137 ( min PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 702 "702" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("minimum value of all abstime input values"); -DATA(insert OID = 2138 ( min PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 1082 "1082" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("minimum value of all date input values"); -DATA(insert OID = 2139 ( min PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 1083 "1083" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("minimum value of all time input values"); -DATA(insert OID = 2140 ( min PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 1266 "1266" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("minimum value of all time with time zone input values"); -DATA(insert OID = 2141 ( min PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 790 "790" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("minimum value of all money input values"); -DATA(insert OID = 2142 ( min PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 1114 "1114" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("minimum value of all timestamp input values"); -DATA(insert OID = 2143 ( min PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 1184 "1184" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("minimum value of all timestamp with time zone input values"); -DATA(insert OID = 2144 ( min PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 1186 "1186" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("minimum value of all interval input values"); -DATA(insert OID = 2145 ( min PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 25 "25" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("minimum value of all text values"); -DATA(insert OID = 2146 ( min PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 1700 "1700" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("minimum value of all numeric input values"); -DATA(insert OID = 2051 ( min PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 2277 "2277" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("minimum value of all anyarray input values"); -DATA(insert OID = 2245 ( min PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 1042 "1042" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("minimum value of all bpchar input values"); -DATA(insert OID = 2798 ( min PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 27 "27" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("minimum value of all tid input values"); -DATA(insert OID = 3565 ( min PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 869 "869" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("minimum value of all inet input values"); - -/* count has two forms: count(any) and count(*) */ -DATA(insert OID = 2147 ( count PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 20 "2276" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("number of input rows for which the input expression is not null"); -DATA(insert OID = 2803 ( count PGNSP PGUID 12 1 0 0 0 a f f f f i s 0 0 20 "" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("number of input rows"); - -DATA(insert OID = 2718 ( var_pop PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 1700 "20" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("population variance of bigint input values (square of the population standard deviation)"); -DATA(insert OID = 2719 ( var_pop PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 1700 "23" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("population variance of integer input values (square of the population standard deviation)"); -DATA(insert OID = 2720 ( var_pop PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 1700 "21" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("population variance of smallint input values (square of the population standard deviation)"); -DATA(insert OID = 2721 ( var_pop PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 701 "700" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("population variance of float4 input values (square of the population standard deviation)"); -DATA(insert OID = 2722 ( var_pop PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 701 "701" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("population variance of float8 input values (square of the population standard deviation)"); -DATA(insert OID = 2723 ( var_pop PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 1700 "1700" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("population variance of numeric input values (square of the population standard deviation)"); - -DATA(insert OID = 2641 ( var_samp PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 1700 "20" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("sample variance of bigint input values (square of the sample standard deviation)"); -DATA(insert OID = 2642 ( var_samp PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 1700 "23" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("sample variance of integer input values (square of the sample standard deviation)"); -DATA(insert OID = 2643 ( var_samp PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 1700 "21" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("sample variance of smallint input values (square of the sample standard deviation)"); -DATA(insert OID = 2644 ( var_samp PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 701 "700" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("sample variance of float4 input values (square of the sample standard deviation)"); - -DATA(insert OID = 2645 ( var_samp PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 701 "701" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("sample variance of float8 input values (square of the sample standard deviation)"); -DATA(insert OID = 2646 ( var_samp PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 1700 "1700" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("sample variance of numeric input values (square of the sample standard deviation)"); - -DATA(insert OID = 2148 ( variance PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 1700 "20" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("historical alias for var_samp"); -DATA(insert OID = 2149 ( variance PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 1700 "23" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("historical alias for var_samp"); -DATA(insert OID = 2150 ( variance PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 1700 "21" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("historical alias for var_samp"); -DATA(insert OID = 2151 ( variance PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 701 "700" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("historical alias for var_samp"); -DATA(insert OID = 2152 ( variance PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 701 "701" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("historical alias for var_samp"); -DATA(insert OID = 2153 ( variance PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 1700 "1700" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("historical alias for var_samp"); - -DATA(insert OID = 2724 ( stddev_pop PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 1700 "20" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("population standard deviation of bigint input values"); -DATA(insert OID = 2725 ( stddev_pop PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 1700 "23" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("population standard deviation of integer input values"); -DATA(insert OID = 2726 ( stddev_pop PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 1700 "21" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("population standard deviation of smallint input values"); -DATA(insert OID = 2727 ( stddev_pop PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 701 "700" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("population standard deviation of float4 input values"); -DATA(insert OID = 2728 ( stddev_pop PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 701 "701" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("population standard deviation of float8 input values"); -DATA(insert OID = 2729 ( stddev_pop PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 1700 "1700" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("population standard deviation of numeric input values"); - -DATA(insert OID = 2712 ( stddev_samp PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 1700 "20" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("sample standard deviation of bigint input values"); -DATA(insert OID = 2713 ( stddev_samp PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 1700 "23" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("sample standard deviation of integer input values"); -DATA(insert OID = 2714 ( stddev_samp PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 1700 "21" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("sample standard deviation of smallint input values"); -DATA(insert OID = 2715 ( stddev_samp PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 701 "700" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("sample standard deviation of float4 input values"); -DATA(insert OID = 2716 ( stddev_samp PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 701 "701" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("sample standard deviation of float8 input values"); -DATA(insert OID = 2717 ( stddev_samp PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 1700 "1700" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("sample standard deviation of numeric input values"); - -DATA(insert OID = 2154 ( stddev PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 1700 "20" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("historical alias for stddev_samp"); -DATA(insert OID = 2155 ( stddev PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 1700 "23" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("historical alias for stddev_samp"); -DATA(insert OID = 2156 ( stddev PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 1700 "21" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("historical alias for stddev_samp"); -DATA(insert OID = 2157 ( stddev PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 701 "700" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("historical alias for stddev_samp"); -DATA(insert OID = 2158 ( stddev PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 701 "701" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("historical alias for stddev_samp"); -DATA(insert OID = 2159 ( stddev PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 1700 "1700" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("historical alias for stddev_samp"); - -DATA(insert OID = 2818 ( regr_count PGNSP PGUID 12 1 0 0 0 a f f f f i s 2 0 20 "701 701" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("number of input rows in which both expressions are not null"); -DATA(insert OID = 2819 ( regr_sxx PGNSP PGUID 12 1 0 0 0 a f f f f i s 2 0 701 "701 701" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("sum of squares of the independent variable (sum(X^2) - sum(X)^2/N)"); -DATA(insert OID = 2820 ( regr_syy PGNSP PGUID 12 1 0 0 0 a f f f f i s 2 0 701 "701 701" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("sum of squares of the dependent variable (sum(Y^2) - sum(Y)^2/N)"); -DATA(insert OID = 2821 ( regr_sxy PGNSP PGUID 12 1 0 0 0 a f f f f i s 2 0 701 "701 701" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("sum of products of independent times dependent variable (sum(X*Y) - sum(X) * sum(Y)/N)"); -DATA(insert OID = 2822 ( regr_avgx PGNSP PGUID 12 1 0 0 0 a f f f f i s 2 0 701 "701 701" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("average of the independent variable (sum(X)/N)"); -DATA(insert OID = 2823 ( regr_avgy PGNSP PGUID 12 1 0 0 0 a f f f f i s 2 0 701 "701 701" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("average of the dependent variable (sum(Y)/N)"); -DATA(insert OID = 2824 ( regr_r2 PGNSP PGUID 12 1 0 0 0 a f f f f i s 2 0 701 "701 701" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("square of the correlation coefficient"); -DATA(insert OID = 2825 ( regr_slope PGNSP PGUID 12 1 0 0 0 a f f f f i s 2 0 701 "701 701" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("slope of the least-squares-fit linear equation determined by the (X, Y) pairs"); -DATA(insert OID = 2826 ( regr_intercept PGNSP PGUID 12 1 0 0 0 a f f f f i s 2 0 701 "701 701" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("y-intercept of the least-squares-fit linear equation determined by the (X, Y) pairs"); - -DATA(insert OID = 2827 ( covar_pop PGNSP PGUID 12 1 0 0 0 a f f f f i s 2 0 701 "701 701" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("population covariance"); -DATA(insert OID = 2828 ( covar_samp PGNSP PGUID 12 1 0 0 0 a f f f f i s 2 0 701 "701 701" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("sample covariance"); -DATA(insert OID = 2829 ( corr PGNSP PGUID 12 1 0 0 0 a f f f f i s 2 0 701 "701 701" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("correlation coefficient"); - -DATA(insert OID = 2160 ( text_pattern_lt PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "25 25" _null_ _null_ _null_ _null_ _null_ text_pattern_lt _null_ _null_ _null_ )); -DATA(insert OID = 2161 ( text_pattern_le PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "25 25" _null_ _null_ _null_ _null_ _null_ text_pattern_le _null_ _null_ _null_ )); -DATA(insert OID = 2163 ( text_pattern_ge PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "25 25" _null_ _null_ _null_ _null_ _null_ text_pattern_ge _null_ _null_ _null_ )); -DATA(insert OID = 2164 ( text_pattern_gt PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "25 25" _null_ _null_ _null_ _null_ _null_ text_pattern_gt _null_ _null_ _null_ )); -DATA(insert OID = 2166 ( bttext_pattern_cmp PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "25 25" _null_ _null_ _null_ _null_ _null_ bttext_pattern_cmp _null_ _null_ _null_ )); -DESCR("less-equal-greater"); -DATA(insert OID = 3332 ( bttext_pattern_sortsupport PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2278 "2281" _null_ _null_ _null_ _null_ _null_ bttext_pattern_sortsupport _null_ _null_ _null_ )); -DESCR("sort support"); - -DATA(insert OID = 2174 ( bpchar_pattern_lt PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "1042 1042" _null_ _null_ _null_ _null_ _null_ bpchar_pattern_lt _null_ _null_ _null_ )); -DATA(insert OID = 2175 ( bpchar_pattern_le PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "1042 1042" _null_ _null_ _null_ _null_ _null_ bpchar_pattern_le _null_ _null_ _null_ )); -DATA(insert OID = 2177 ( bpchar_pattern_ge PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "1042 1042" _null_ _null_ _null_ _null_ _null_ bpchar_pattern_ge _null_ _null_ _null_ )); -DATA(insert OID = 2178 ( bpchar_pattern_gt PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "1042 1042" _null_ _null_ _null_ _null_ _null_ bpchar_pattern_gt _null_ _null_ _null_ )); -DATA(insert OID = 2180 ( btbpchar_pattern_cmp PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "1042 1042" _null_ _null_ _null_ _null_ _null_ btbpchar_pattern_cmp _null_ _null_ _null_ )); -DESCR("less-equal-greater"); -DATA(insert OID = 3333 ( btbpchar_pattern_sortsupport PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2278 "2281" _null_ _null_ _null_ _null_ _null_ btbpchar_pattern_sortsupport _null_ _null_ _null_ )); -DESCR("sort support"); - -DATA(insert OID = 2188 ( btint48cmp PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "23 20" _null_ _null_ _null_ _null_ _null_ btint48cmp _null_ _null_ _null_ )); -DESCR("less-equal-greater"); -DATA(insert OID = 2189 ( btint84cmp PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "20 23" _null_ _null_ _null_ _null_ _null_ btint84cmp _null_ _null_ _null_ )); -DESCR("less-equal-greater"); -DATA(insert OID = 2190 ( btint24cmp PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "21 23" _null_ _null_ _null_ _null_ _null_ btint24cmp _null_ _null_ _null_ )); -DESCR("less-equal-greater"); -DATA(insert OID = 2191 ( btint42cmp PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "23 21" _null_ _null_ _null_ _null_ _null_ btint42cmp _null_ _null_ _null_ )); -DESCR("less-equal-greater"); -DATA(insert OID = 2192 ( btint28cmp PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "21 20" _null_ _null_ _null_ _null_ _null_ btint28cmp _null_ _null_ _null_ )); -DESCR("less-equal-greater"); -DATA(insert OID = 2193 ( btint82cmp PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "20 21" _null_ _null_ _null_ _null_ _null_ btint82cmp _null_ _null_ _null_ )); -DESCR("less-equal-greater"); -DATA(insert OID = 2194 ( btfloat48cmp PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "700 701" _null_ _null_ _null_ _null_ _null_ btfloat48cmp _null_ _null_ _null_ )); -DESCR("less-equal-greater"); -DATA(insert OID = 2195 ( btfloat84cmp PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "701 700" _null_ _null_ _null_ _null_ _null_ btfloat84cmp _null_ _null_ _null_ )); -DESCR("less-equal-greater"); - -DATA(insert OID = 2212 ( regprocedurein PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 2202 "2275" _null_ _null_ _null_ _null_ _null_ regprocedurein _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2213 ( regprocedureout PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 2275 "2202" _null_ _null_ _null_ _null_ _null_ regprocedureout _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2214 ( regoperin PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 2203 "2275" _null_ _null_ _null_ _null_ _null_ regoperin _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2215 ( regoperout PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 2275 "2203" _null_ _null_ _null_ _null_ _null_ regoperout _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 3492 ( to_regoper PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 2203 "25" _null_ _null_ _null_ _null_ _null_ to_regoper _null_ _null_ _null_ )); -DESCR("convert operator name to regoper"); -DATA(insert OID = 3476 ( to_regoperator PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 2204 "25" _null_ _null_ _null_ _null_ _null_ to_regoperator _null_ _null_ _null_ )); -DESCR("convert operator name to regoperator"); -DATA(insert OID = 2216 ( regoperatorin PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 2204 "2275" _null_ _null_ _null_ _null_ _null_ regoperatorin _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2217 ( regoperatorout PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 2275 "2204" _null_ _null_ _null_ _null_ _null_ regoperatorout _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2218 ( regclassin PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 2205 "2275" _null_ _null_ _null_ _null_ _null_ regclassin _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2219 ( regclassout PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 2275 "2205" _null_ _null_ _null_ _null_ _null_ regclassout _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 3495 ( to_regclass PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 2205 "25" _null_ _null_ _null_ _null_ _null_ to_regclass _null_ _null_ _null_ )); -DESCR("convert classname to regclass"); -DATA(insert OID = 2220 ( regtypein PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 2206 "2275" _null_ _null_ _null_ _null_ _null_ regtypein _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2221 ( regtypeout PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 2275 "2206" _null_ _null_ _null_ _null_ _null_ regtypeout _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 3493 ( to_regtype PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 2206 "25" _null_ _null_ _null_ _null_ _null_ to_regtype _null_ _null_ _null_ )); -DESCR("convert type name to regtype"); -DATA(insert OID = 1079 ( regclass PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 2205 "25" _null_ _null_ _null_ _null_ _null_ text_regclass _null_ _null_ _null_ )); -DESCR("convert text to regclass"); - -DATA(insert OID = 4098 ( regrolein PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 4096 "2275" _null_ _null_ _null_ _null_ _null_ regrolein _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 4092 ( regroleout PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 2275 "4096" _null_ _null_ _null_ _null_ _null_ regroleout _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 4093 ( to_regrole PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 4096 "25" _null_ _null_ _null_ _null_ _null_ to_regrole _null_ _null_ _null_ )); -DESCR("convert role name to regrole"); - -DATA(insert OID = 4084 ( regnamespacein PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 4089 "2275" _null_ _null_ _null_ _null_ _null_ regnamespacein _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 4085 ( regnamespaceout PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 2275 "4089" _null_ _null_ _null_ _null_ _null_ regnamespaceout _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 4086 ( to_regnamespace PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 4089 "25" _null_ _null_ _null_ _null_ _null_ to_regnamespace _null_ _null_ _null_ )); -DESCR("convert namespace name to regnamespace"); - -DATA(insert OID = 1268 ( parse_ident PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1009 "25 16" _null_ _null_ "{str,strict}" _null_ _null_ parse_ident _null_ _null_ _null_ )); -DESCR("parse qualified identifier to array of identifiers"); - -DATA(insert OID = 2246 ( fmgr_internal_validator PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 2278 "26" _null_ _null_ _null_ _null_ _null_ fmgr_internal_validator _null_ _null_ _null_ )); -DESCR("(internal)"); -DATA(insert OID = 2247 ( fmgr_c_validator PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 2278 "26" _null_ _null_ _null_ _null_ _null_ fmgr_c_validator _null_ _null_ _null_ )); -DESCR("(internal)"); -DATA(insert OID = 2248 ( fmgr_sql_validator PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 2278 "26" _null_ _null_ _null_ _null_ _null_ fmgr_sql_validator _null_ _null_ _null_ )); -DESCR("(internal)"); - -DATA(insert OID = 2250 ( has_database_privilege PGNSP PGUID 12 1 0 0 0 f f f t f s s 3 0 16 "19 25 25" _null_ _null_ _null_ _null_ _null_ has_database_privilege_name_name _null_ _null_ _null_ )); -DESCR("user privilege on database by username, database name"); -DATA(insert OID = 2251 ( has_database_privilege PGNSP PGUID 12 1 0 0 0 f f f t f s s 3 0 16 "19 26 25" _null_ _null_ _null_ _null_ _null_ has_database_privilege_name_id _null_ _null_ _null_ )); -DESCR("user privilege on database by username, database oid"); -DATA(insert OID = 2252 ( has_database_privilege PGNSP PGUID 12 1 0 0 0 f f f t f s s 3 0 16 "26 25 25" _null_ _null_ _null_ _null_ _null_ has_database_privilege_id_name _null_ _null_ _null_ )); -DESCR("user privilege on database by user oid, database name"); -DATA(insert OID = 2253 ( has_database_privilege PGNSP PGUID 12 1 0 0 0 f f f t f s s 3 0 16 "26 26 25" _null_ _null_ _null_ _null_ _null_ has_database_privilege_id_id _null_ _null_ _null_ )); -DESCR("user privilege on database by user oid, database oid"); -DATA(insert OID = 2254 ( has_database_privilege PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 16 "25 25" _null_ _null_ _null_ _null_ _null_ has_database_privilege_name _null_ _null_ _null_ )); -DESCR("current user privilege on database by database name"); -DATA(insert OID = 2255 ( has_database_privilege PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 16 "26 25" _null_ _null_ _null_ _null_ _null_ has_database_privilege_id _null_ _null_ _null_ )); -DESCR("current user privilege on database by database oid"); - -DATA(insert OID = 2256 ( has_function_privilege PGNSP PGUID 12 1 0 0 0 f f f t f s s 3 0 16 "19 25 25" _null_ _null_ _null_ _null_ _null_ has_function_privilege_name_name _null_ _null_ _null_ )); -DESCR("user privilege on function by username, function name"); -DATA(insert OID = 2257 ( has_function_privilege PGNSP PGUID 12 1 0 0 0 f f f t f s s 3 0 16 "19 26 25" _null_ _null_ _null_ _null_ _null_ has_function_privilege_name_id _null_ _null_ _null_ )); -DESCR("user privilege on function by username, function oid"); -DATA(insert OID = 2258 ( has_function_privilege PGNSP PGUID 12 1 0 0 0 f f f t f s s 3 0 16 "26 25 25" _null_ _null_ _null_ _null_ _null_ has_function_privilege_id_name _null_ _null_ _null_ )); -DESCR("user privilege on function by user oid, function name"); -DATA(insert OID = 2259 ( has_function_privilege PGNSP PGUID 12 1 0 0 0 f f f t f s s 3 0 16 "26 26 25" _null_ _null_ _null_ _null_ _null_ has_function_privilege_id_id _null_ _null_ _null_ )); -DESCR("user privilege on function by user oid, function oid"); -DATA(insert OID = 2260 ( has_function_privilege PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 16 "25 25" _null_ _null_ _null_ _null_ _null_ has_function_privilege_name _null_ _null_ _null_ )); -DESCR("current user privilege on function by function name"); -DATA(insert OID = 2261 ( has_function_privilege PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 16 "26 25" _null_ _null_ _null_ _null_ _null_ has_function_privilege_id _null_ _null_ _null_ )); -DESCR("current user privilege on function by function oid"); - -DATA(insert OID = 2262 ( has_language_privilege PGNSP PGUID 12 1 0 0 0 f f f t f s s 3 0 16 "19 25 25" _null_ _null_ _null_ _null_ _null_ has_language_privilege_name_name _null_ _null_ _null_ )); -DESCR("user privilege on language by username, language name"); -DATA(insert OID = 2263 ( has_language_privilege PGNSP PGUID 12 1 0 0 0 f f f t f s s 3 0 16 "19 26 25" _null_ _null_ _null_ _null_ _null_ has_language_privilege_name_id _null_ _null_ _null_ )); -DESCR("user privilege on language by username, language oid"); -DATA(insert OID = 2264 ( has_language_privilege PGNSP PGUID 12 1 0 0 0 f f f t f s s 3 0 16 "26 25 25" _null_ _null_ _null_ _null_ _null_ has_language_privilege_id_name _null_ _null_ _null_ )); -DESCR("user privilege on language by user oid, language name"); -DATA(insert OID = 2265 ( has_language_privilege PGNSP PGUID 12 1 0 0 0 f f f t f s s 3 0 16 "26 26 25" _null_ _null_ _null_ _null_ _null_ has_language_privilege_id_id _null_ _null_ _null_ )); -DESCR("user privilege on language by user oid, language oid"); -DATA(insert OID = 2266 ( has_language_privilege PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 16 "25 25" _null_ _null_ _null_ _null_ _null_ has_language_privilege_name _null_ _null_ _null_ )); -DESCR("current user privilege on language by language name"); -DATA(insert OID = 2267 ( has_language_privilege PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 16 "26 25" _null_ _null_ _null_ _null_ _null_ has_language_privilege_id _null_ _null_ _null_ )); -DESCR("current user privilege on language by language oid"); - -DATA(insert OID = 2268 ( has_schema_privilege PGNSP PGUID 12 1 0 0 0 f f f t f s s 3 0 16 "19 25 25" _null_ _null_ _null_ _null_ _null_ has_schema_privilege_name_name _null_ _null_ _null_ )); -DESCR("user privilege on schema by username, schema name"); -DATA(insert OID = 2269 ( has_schema_privilege PGNSP PGUID 12 1 0 0 0 f f f t f s s 3 0 16 "19 26 25" _null_ _null_ _null_ _null_ _null_ has_schema_privilege_name_id _null_ _null_ _null_ )); -DESCR("user privilege on schema by username, schema oid"); -DATA(insert OID = 2270 ( has_schema_privilege PGNSP PGUID 12 1 0 0 0 f f f t f s s 3 0 16 "26 25 25" _null_ _null_ _null_ _null_ _null_ has_schema_privilege_id_name _null_ _null_ _null_ )); -DESCR("user privilege on schema by user oid, schema name"); -DATA(insert OID = 2271 ( has_schema_privilege PGNSP PGUID 12 1 0 0 0 f f f t f s s 3 0 16 "26 26 25" _null_ _null_ _null_ _null_ _null_ has_schema_privilege_id_id _null_ _null_ _null_ )); -DESCR("user privilege on schema by user oid, schema oid"); -DATA(insert OID = 2272 ( has_schema_privilege PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 16 "25 25" _null_ _null_ _null_ _null_ _null_ has_schema_privilege_name _null_ _null_ _null_ )); -DESCR("current user privilege on schema by schema name"); -DATA(insert OID = 2273 ( has_schema_privilege PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 16 "26 25" _null_ _null_ _null_ _null_ _null_ has_schema_privilege_id _null_ _null_ _null_ )); -DESCR("current user privilege on schema by schema oid"); - -DATA(insert OID = 2390 ( has_tablespace_privilege PGNSP PGUID 12 1 0 0 0 f f f t f s s 3 0 16 "19 25 25" _null_ _null_ _null_ _null_ _null_ has_tablespace_privilege_name_name _null_ _null_ _null_ )); -DESCR("user privilege on tablespace by username, tablespace name"); -DATA(insert OID = 2391 ( has_tablespace_privilege PGNSP PGUID 12 1 0 0 0 f f f t f s s 3 0 16 "19 26 25" _null_ _null_ _null_ _null_ _null_ has_tablespace_privilege_name_id _null_ _null_ _null_ )); -DESCR("user privilege on tablespace by username, tablespace oid"); -DATA(insert OID = 2392 ( has_tablespace_privilege PGNSP PGUID 12 1 0 0 0 f f f t f s s 3 0 16 "26 25 25" _null_ _null_ _null_ _null_ _null_ has_tablespace_privilege_id_name _null_ _null_ _null_ )); -DESCR("user privilege on tablespace by user oid, tablespace name"); -DATA(insert OID = 2393 ( has_tablespace_privilege PGNSP PGUID 12 1 0 0 0 f f f t f s s 3 0 16 "26 26 25" _null_ _null_ _null_ _null_ _null_ has_tablespace_privilege_id_id _null_ _null_ _null_ )); -DESCR("user privilege on tablespace by user oid, tablespace oid"); -DATA(insert OID = 2394 ( has_tablespace_privilege PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 16 "25 25" _null_ _null_ _null_ _null_ _null_ has_tablespace_privilege_name _null_ _null_ _null_ )); -DESCR("current user privilege on tablespace by tablespace name"); -DATA(insert OID = 2395 ( has_tablespace_privilege PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 16 "26 25" _null_ _null_ _null_ _null_ _null_ has_tablespace_privilege_id _null_ _null_ _null_ )); -DESCR("current user privilege on tablespace by tablespace oid"); - -DATA(insert OID = 3000 ( has_foreign_data_wrapper_privilege PGNSP PGUID 12 1 0 0 0 f f f t f s s 3 0 16 "19 25 25" _null_ _null_ _null_ _null_ _null_ has_foreign_data_wrapper_privilege_name_name _null_ _null_ _null_ )); -DESCR("user privilege on foreign data wrapper by username, foreign data wrapper name"); -DATA(insert OID = 3001 ( has_foreign_data_wrapper_privilege PGNSP PGUID 12 1 0 0 0 f f f t f s s 3 0 16 "19 26 25" _null_ _null_ _null_ _null_ _null_ has_foreign_data_wrapper_privilege_name_id _null_ _null_ _null_ )); -DESCR("user privilege on foreign data wrapper by username, foreign data wrapper oid"); -DATA(insert OID = 3002 ( has_foreign_data_wrapper_privilege PGNSP PGUID 12 1 0 0 0 f f f t f s s 3 0 16 "26 25 25" _null_ _null_ _null_ _null_ _null_ has_foreign_data_wrapper_privilege_id_name _null_ _null_ _null_ )); -DESCR("user privilege on foreign data wrapper by user oid, foreign data wrapper name"); -DATA(insert OID = 3003 ( has_foreign_data_wrapper_privilege PGNSP PGUID 12 1 0 0 0 f f f t f s s 3 0 16 "26 26 25" _null_ _null_ _null_ _null_ _null_ has_foreign_data_wrapper_privilege_id_id _null_ _null_ _null_ )); -DESCR("user privilege on foreign data wrapper by user oid, foreign data wrapper oid"); -DATA(insert OID = 3004 ( has_foreign_data_wrapper_privilege PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 16 "25 25" _null_ _null_ _null_ _null_ _null_ has_foreign_data_wrapper_privilege_name _null_ _null_ _null_ )); -DESCR("current user privilege on foreign data wrapper by foreign data wrapper name"); -DATA(insert OID = 3005 ( has_foreign_data_wrapper_privilege PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 16 "26 25" _null_ _null_ _null_ _null_ _null_ has_foreign_data_wrapper_privilege_id _null_ _null_ _null_ )); -DESCR("current user privilege on foreign data wrapper by foreign data wrapper oid"); - -DATA(insert OID = 3006 ( has_server_privilege PGNSP PGUID 12 1 0 0 0 f f f t f s s 3 0 16 "19 25 25" _null_ _null_ _null_ _null_ _null_ has_server_privilege_name_name _null_ _null_ _null_ )); -DESCR("user privilege on server by username, server name"); -DATA(insert OID = 3007 ( has_server_privilege PGNSP PGUID 12 1 0 0 0 f f f t f s s 3 0 16 "19 26 25" _null_ _null_ _null_ _null_ _null_ has_server_privilege_name_id _null_ _null_ _null_ )); -DESCR("user privilege on server by username, server oid"); -DATA(insert OID = 3008 ( has_server_privilege PGNSP PGUID 12 1 0 0 0 f f f t f s s 3 0 16 "26 25 25" _null_ _null_ _null_ _null_ _null_ has_server_privilege_id_name _null_ _null_ _null_ )); -DESCR("user privilege on server by user oid, server name"); -DATA(insert OID = 3009 ( has_server_privilege PGNSP PGUID 12 1 0 0 0 f f f t f s s 3 0 16 "26 26 25" _null_ _null_ _null_ _null_ _null_ has_server_privilege_id_id _null_ _null_ _null_ )); -DESCR("user privilege on server by user oid, server oid"); -DATA(insert OID = 3010 ( has_server_privilege PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 16 "25 25" _null_ _null_ _null_ _null_ _null_ has_server_privilege_name _null_ _null_ _null_ )); -DESCR("current user privilege on server by server name"); -DATA(insert OID = 3011 ( has_server_privilege PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 16 "26 25" _null_ _null_ _null_ _null_ _null_ has_server_privilege_id _null_ _null_ _null_ )); -DESCR("current user privilege on server by server oid"); - -DATA(insert OID = 3138 ( has_type_privilege PGNSP PGUID 12 1 0 0 0 f f f t f s s 3 0 16 "19 25 25" _null_ _null_ _null_ _null_ _null_ has_type_privilege_name_name _null_ _null_ _null_ )); -DESCR("user privilege on type by username, type name"); -DATA(insert OID = 3139 ( has_type_privilege PGNSP PGUID 12 1 0 0 0 f f f t f s s 3 0 16 "19 26 25" _null_ _null_ _null_ _null_ _null_ has_type_privilege_name_id _null_ _null_ _null_ )); -DESCR("user privilege on type by username, type oid"); -DATA(insert OID = 3140 ( has_type_privilege PGNSP PGUID 12 1 0 0 0 f f f t f s s 3 0 16 "26 25 25" _null_ _null_ _null_ _null_ _null_ has_type_privilege_id_name _null_ _null_ _null_ )); -DESCR("user privilege on type by user oid, type name"); -DATA(insert OID = 3141 ( has_type_privilege PGNSP PGUID 12 1 0 0 0 f f f t f s s 3 0 16 "26 26 25" _null_ _null_ _null_ _null_ _null_ has_type_privilege_id_id _null_ _null_ _null_ )); -DESCR("user privilege on type by user oid, type oid"); -DATA(insert OID = 3142 ( has_type_privilege PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 16 "25 25" _null_ _null_ _null_ _null_ _null_ has_type_privilege_name _null_ _null_ _null_ )); -DESCR("current user privilege on type by type name"); -DATA(insert OID = 3143 ( has_type_privilege PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 16 "26 25" _null_ _null_ _null_ _null_ _null_ has_type_privilege_id _null_ _null_ _null_ )); -DESCR("current user privilege on type by type oid"); - -DATA(insert OID = 2705 ( pg_has_role PGNSP PGUID 12 1 0 0 0 f f f t f s s 3 0 16 "19 19 25" _null_ _null_ _null_ _null_ _null_ pg_has_role_name_name _null_ _null_ _null_ )); -DESCR("user privilege on role by username, role name"); -DATA(insert OID = 2706 ( pg_has_role PGNSP PGUID 12 1 0 0 0 f f f t f s s 3 0 16 "19 26 25" _null_ _null_ _null_ _null_ _null_ pg_has_role_name_id _null_ _null_ _null_ )); -DESCR("user privilege on role by username, role oid"); -DATA(insert OID = 2707 ( pg_has_role PGNSP PGUID 12 1 0 0 0 f f f t f s s 3 0 16 "26 19 25" _null_ _null_ _null_ _null_ _null_ pg_has_role_id_name _null_ _null_ _null_ )); -DESCR("user privilege on role by user oid, role name"); -DATA(insert OID = 2708 ( pg_has_role PGNSP PGUID 12 1 0 0 0 f f f t f s s 3 0 16 "26 26 25" _null_ _null_ _null_ _null_ _null_ pg_has_role_id_id _null_ _null_ _null_ )); -DESCR("user privilege on role by user oid, role oid"); -DATA(insert OID = 2709 ( pg_has_role PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 16 "19 25" _null_ _null_ _null_ _null_ _null_ pg_has_role_name _null_ _null_ _null_ )); -DESCR("current user privilege on role by role name"); -DATA(insert OID = 2710 ( pg_has_role PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 16 "26 25" _null_ _null_ _null_ _null_ _null_ pg_has_role_id _null_ _null_ _null_ )); -DESCR("current user privilege on role by role oid"); - -DATA(insert OID = 1269 ( pg_column_size PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 23 "2276" _null_ _null_ _null_ _null_ _null_ pg_column_size _null_ _null_ _null_ )); -DESCR("bytes required to store the value, perhaps with compression"); -DATA(insert OID = 2322 ( pg_tablespace_size PGNSP PGUID 12 1 0 0 0 f f f t f v s 1 0 20 "26" _null_ _null_ _null_ _null_ _null_ pg_tablespace_size_oid _null_ _null_ _null_ )); -DESCR("total disk space usage for the specified tablespace"); -DATA(insert OID = 2323 ( pg_tablespace_size PGNSP PGUID 12 1 0 0 0 f f f t f v s 1 0 20 "19" _null_ _null_ _null_ _null_ _null_ pg_tablespace_size_name _null_ _null_ _null_ )); -DESCR("total disk space usage for the specified tablespace"); -DATA(insert OID = 2324 ( pg_database_size PGNSP PGUID 12 1 0 0 0 f f f t f v s 1 0 20 "26" _null_ _null_ _null_ _null_ _null_ pg_database_size_oid _null_ _null_ _null_ )); -DESCR("total disk space usage for the specified database"); -DATA(insert OID = 2168 ( pg_database_size PGNSP PGUID 12 1 0 0 0 f f f t f v s 1 0 20 "19" _null_ _null_ _null_ _null_ _null_ pg_database_size_name _null_ _null_ _null_ )); -DESCR("total disk space usage for the specified database"); -DATA(insert OID = 2325 ( pg_relation_size PGNSP PGUID 14 1 0 0 0 f f f t f v s 1 0 20 "2205" _null_ _null_ _null_ _null_ _null_ "select pg_catalog.pg_relation_size($1, ''main'')" _null_ _null_ _null_ )); -DESCR("disk space usage for the main fork of the specified table or index"); -DATA(insert OID = 2332 ( pg_relation_size PGNSP PGUID 12 1 0 0 0 f f f t f v s 2 0 20 "2205 25" _null_ _null_ _null_ _null_ _null_ pg_relation_size _null_ _null_ _null_ )); -DESCR("disk space usage for the specified fork of a table or index"); -DATA(insert OID = 2286 ( pg_total_relation_size PGNSP PGUID 12 1 0 0 0 f f f t f v s 1 0 20 "2205" _null_ _null_ _null_ _null_ _null_ pg_total_relation_size _null_ _null_ _null_ )); -DESCR("total disk space usage for the specified table and associated indexes"); -DATA(insert OID = 2288 ( pg_size_pretty PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 25 "20" _null_ _null_ _null_ _null_ _null_ pg_size_pretty _null_ _null_ _null_ )); -DESCR("convert a long int to a human readable text using size units"); -DATA(insert OID = 3166 ( pg_size_pretty PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 25 "1700" _null_ _null_ _null_ _null_ _null_ pg_size_pretty_numeric _null_ _null_ _null_ )); -DESCR("convert a numeric to a human readable text using size units"); -DATA(insert OID = 3334 ( pg_size_bytes PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 20 "25" _null_ _null_ _null_ _null_ _null_ pg_size_bytes _null_ _null_ _null_ )); -DESCR("convert a size in human-readable format with size units into bytes"); -DATA(insert OID = 2997 ( pg_table_size PGNSP PGUID 12 1 0 0 0 f f f t f v s 1 0 20 "2205" _null_ _null_ _null_ _null_ _null_ pg_table_size _null_ _null_ _null_ )); -DESCR("disk space usage for the specified table, including TOAST, free space and visibility map"); -DATA(insert OID = 2998 ( pg_indexes_size PGNSP PGUID 12 1 0 0 0 f f f t f v s 1 0 20 "2205" _null_ _null_ _null_ _null_ _null_ pg_indexes_size _null_ _null_ _null_ )); -DESCR("disk space usage for all indexes attached to the specified table"); -DATA(insert OID = 2999 ( pg_relation_filenode PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 26 "2205" _null_ _null_ _null_ _null_ _null_ pg_relation_filenode _null_ _null_ _null_ )); -DESCR("filenode identifier of relation"); -DATA(insert OID = 3454 ( pg_filenode_relation PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 2205 "26 26" _null_ _null_ _null_ _null_ _null_ pg_filenode_relation _null_ _null_ _null_ )); -DESCR("relation OID for filenode and tablespace"); -DATA(insert OID = 3034 ( pg_relation_filepath PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 25 "2205" _null_ _null_ _null_ _null_ _null_ pg_relation_filepath _null_ _null_ _null_ )); -DESCR("file path of relation"); - -DATA(insert OID = 2316 ( postgresql_fdw_validator PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "1009 26" _null_ _null_ _null_ _null_ _null_ postgresql_fdw_validator _null_ _null_ _null_)); -DESCR("(internal)"); - -DATA(insert OID = 2290 ( record_in PGNSP PGUID 12 1 0 0 0 f f f t f s s 3 0 2249 "2275 26 23" _null_ _null_ _null_ _null_ _null_ record_in _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2291 ( record_out PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 2275 "2249" _null_ _null_ _null_ _null_ _null_ record_out _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2292 ( cstring_in PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2275 "2275" _null_ _null_ _null_ _null_ _null_ cstring_in _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2293 ( cstring_out PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2275 "2275" _null_ _null_ _null_ _null_ _null_ cstring_out _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2294 ( any_in PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2276 "2275" _null_ _null_ _null_ _null_ _null_ any_in _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2295 ( any_out PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2275 "2276" _null_ _null_ _null_ _null_ _null_ any_out _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2296 ( anyarray_in PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2277 "2275" _null_ _null_ _null_ _null_ _null_ anyarray_in _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2297 ( anyarray_out PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 2275 "2277" _null_ _null_ _null_ _null_ _null_ anyarray_out _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2298 ( void_in PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2278 "2275" _null_ _null_ _null_ _null_ _null_ void_in _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2299 ( void_out PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2275 "2278" _null_ _null_ _null_ _null_ _null_ void_out _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2300 ( trigger_in PGNSP PGUID 12 1 0 0 0 f f f f f i s 1 0 2279 "2275" _null_ _null_ _null_ _null_ _null_ trigger_in _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2301 ( trigger_out PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2275 "2279" _null_ _null_ _null_ _null_ _null_ trigger_out _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 3594 ( event_trigger_in PGNSP PGUID 12 1 0 0 0 f f f f f i s 1 0 3838 "2275" _null_ _null_ _null_ _null_ _null_ event_trigger_in _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 3595 ( event_trigger_out PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2275 "3838" _null_ _null_ _null_ _null_ _null_ event_trigger_out _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2302 ( language_handler_in PGNSP PGUID 12 1 0 0 0 f f f f f i s 1 0 2280 "2275" _null_ _null_ _null_ _null_ _null_ language_handler_in _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2303 ( language_handler_out PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2275 "2280" _null_ _null_ _null_ _null_ _null_ language_handler_out _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2304 ( internal_in PGNSP PGUID 12 1 0 0 0 f f f f f i s 1 0 2281 "2275" _null_ _null_ _null_ _null_ _null_ internal_in _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2305 ( internal_out PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2275 "2281" _null_ _null_ _null_ _null_ _null_ internal_out _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2306 ( opaque_in PGNSP PGUID 12 1 0 0 0 f f f f f i s 1 0 2282 "2275" _null_ _null_ _null_ _null_ _null_ opaque_in _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2307 ( opaque_out PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2275 "2282" _null_ _null_ _null_ _null_ _null_ opaque_out _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2312 ( anyelement_in PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2283 "2275" _null_ _null_ _null_ _null_ _null_ anyelement_in _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2313 ( anyelement_out PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2275 "2283" _null_ _null_ _null_ _null_ _null_ anyelement_out _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2398 ( shell_in PGNSP PGUID 12 1 0 0 0 f f f f f i s 1 0 2282 "2275" _null_ _null_ _null_ _null_ _null_ shell_in _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2399 ( shell_out PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2275 "2282" _null_ _null_ _null_ _null_ _null_ shell_out _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2597 ( domain_in PGNSP PGUID 12 1 0 0 0 f f f f f s s 3 0 2276 "2275 26 23" _null_ _null_ _null_ _null_ _null_ domain_in _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2598 ( domain_recv PGNSP PGUID 12 1 0 0 0 f f f f f s s 3 0 2276 "2281 26 23" _null_ _null_ _null_ _null_ _null_ domain_recv _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2777 ( anynonarray_in PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2776 "2275" _null_ _null_ _null_ _null_ _null_ anynonarray_in _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2778 ( anynonarray_out PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2275 "2776" _null_ _null_ _null_ _null_ _null_ anynonarray_out _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 3116 ( fdw_handler_in PGNSP PGUID 12 1 0 0 0 f f f f f i s 1 0 3115 "2275" _null_ _null_ _null_ _null_ _null_ fdw_handler_in _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 3117 ( fdw_handler_out PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2275 "3115" _null_ _null_ _null_ _null_ _null_ fdw_handler_out _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 326 ( index_am_handler_in PGNSP PGUID 12 1 0 0 0 f f f f f i s 1 0 325 "2275" _null_ _null_ _null_ _null_ _null_ index_am_handler_in _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 327 ( index_am_handler_out PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2275 "325" _null_ _null_ _null_ _null_ _null_ index_am_handler_out _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 3311 ( tsm_handler_in PGNSP PGUID 12 1 0 0 0 f f f f f i s 1 0 3310 "2275" _null_ _null_ _null_ _null_ _null_ tsm_handler_in _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 3312 ( tsm_handler_out PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2275 "3310" _null_ _null_ _null_ _null_ _null_ tsm_handler_out _null_ _null_ _null_ )); -DESCR("I/O"); - -/* tablesample method handlers */ -DATA(insert OID = 3313 ( bernoulli PGNSP PGUID 12 1 0 0 0 f f f t f v s 1 0 3310 "2281" _null_ _null_ _null_ _null_ _null_ tsm_bernoulli_handler _null_ _null_ _null_ )); -DESCR("BERNOULLI tablesample method handler"); -DATA(insert OID = 3314 ( system PGNSP PGUID 12 1 0 0 0 f f f t f v s 1 0 3310 "2281" _null_ _null_ _null_ _null_ _null_ tsm_system_handler _null_ _null_ _null_ )); -DESCR("SYSTEM tablesample method handler"); - -/* cryptographic */ -DATA(insert OID = 2311 ( md5 PGNSP PGUID 12 1 0 0 0 f f t t f i s 1 0 25 "25" _null_ _null_ _null_ _null_ _null_ md5_text _null_ _null_ _null_ )); -DESCR("MD5 hash"); -DATA(insert OID = 2321 ( md5 PGNSP PGUID 12 1 0 0 0 f f t t f i s 1 0 25 "17" _null_ _null_ _null_ _null_ _null_ md5_bytea _null_ _null_ _null_ )); -DESCR("MD5 hash"); -DATA(insert OID = 3419 ( sha224 PGNSP PGUID 12 1 0 0 0 f f t t f i s 1 0 17 "17" _null_ _null_ _null_ _null_ _null_ sha224_bytea _null_ _null_ _null_ )); -DESCR("SHA-224 hash"); -DATA(insert OID = 3420 ( sha256 PGNSP PGUID 12 1 0 0 0 f f t t f i s 1 0 17 "17" _null_ _null_ _null_ _null_ _null_ sha256_bytea _null_ _null_ _null_ )); -DESCR("SHA-256 hash"); -DATA(insert OID = 3421 ( sha384 PGNSP PGUID 12 1 0 0 0 f f t t f i s 1 0 17 "17" _null_ _null_ _null_ _null_ _null_ sha384_bytea _null_ _null_ _null_ )); -DESCR("SHA-384 hash"); -DATA(insert OID = 3422 ( sha512 PGNSP PGUID 12 1 0 0 0 f f t t f i s 1 0 17 "17" _null_ _null_ _null_ _null_ _null_ sha512_bytea _null_ _null_ _null_ )); -DESCR("SHA-512 hash"); - -/* crosstype operations for date vs. timestamp and timestamptz */ -DATA(insert OID = 2338 ( date_lt_timestamp PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "1082 1114" _null_ _null_ _null_ _null_ _null_ date_lt_timestamp _null_ _null_ _null_ )); -DATA(insert OID = 2339 ( date_le_timestamp PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "1082 1114" _null_ _null_ _null_ _null_ _null_ date_le_timestamp _null_ _null_ _null_ )); -DATA(insert OID = 2340 ( date_eq_timestamp PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "1082 1114" _null_ _null_ _null_ _null_ _null_ date_eq_timestamp _null_ _null_ _null_ )); -DATA(insert OID = 2341 ( date_gt_timestamp PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "1082 1114" _null_ _null_ _null_ _null_ _null_ date_gt_timestamp _null_ _null_ _null_ )); -DATA(insert OID = 2342 ( date_ge_timestamp PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "1082 1114" _null_ _null_ _null_ _null_ _null_ date_ge_timestamp _null_ _null_ _null_ )); -DATA(insert OID = 2343 ( date_ne_timestamp PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "1082 1114" _null_ _null_ _null_ _null_ _null_ date_ne_timestamp _null_ _null_ _null_ )); -DATA(insert OID = 2344 ( date_cmp_timestamp PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "1082 1114" _null_ _null_ _null_ _null_ _null_ date_cmp_timestamp _null_ _null_ _null_ )); -DESCR("less-equal-greater"); - -DATA(insert OID = 2351 ( date_lt_timestamptz PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 16 "1082 1184" _null_ _null_ _null_ _null_ _null_ date_lt_timestamptz _null_ _null_ _null_ )); -DATA(insert OID = 2352 ( date_le_timestamptz PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 16 "1082 1184" _null_ _null_ _null_ _null_ _null_ date_le_timestamptz _null_ _null_ _null_ )); -DATA(insert OID = 2353 ( date_eq_timestamptz PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 16 "1082 1184" _null_ _null_ _null_ _null_ _null_ date_eq_timestamptz _null_ _null_ _null_ )); -DATA(insert OID = 2354 ( date_gt_timestamptz PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 16 "1082 1184" _null_ _null_ _null_ _null_ _null_ date_gt_timestamptz _null_ _null_ _null_ )); -DATA(insert OID = 2355 ( date_ge_timestamptz PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 16 "1082 1184" _null_ _null_ _null_ _null_ _null_ date_ge_timestamptz _null_ _null_ _null_ )); -DATA(insert OID = 2356 ( date_ne_timestamptz PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 16 "1082 1184" _null_ _null_ _null_ _null_ _null_ date_ne_timestamptz _null_ _null_ _null_ )); -DATA(insert OID = 2357 ( date_cmp_timestamptz PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 23 "1082 1184" _null_ _null_ _null_ _null_ _null_ date_cmp_timestamptz _null_ _null_ _null_ )); -DESCR("less-equal-greater"); - -DATA(insert OID = 2364 ( timestamp_lt_date PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "1114 1082" _null_ _null_ _null_ _null_ _null_ timestamp_lt_date _null_ _null_ _null_ )); -DATA(insert OID = 2365 ( timestamp_le_date PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "1114 1082" _null_ _null_ _null_ _null_ _null_ timestamp_le_date _null_ _null_ _null_ )); -DATA(insert OID = 2366 ( timestamp_eq_date PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "1114 1082" _null_ _null_ _null_ _null_ _null_ timestamp_eq_date _null_ _null_ _null_ )); -DATA(insert OID = 2367 ( timestamp_gt_date PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "1114 1082" _null_ _null_ _null_ _null_ _null_ timestamp_gt_date _null_ _null_ _null_ )); -DATA(insert OID = 2368 ( timestamp_ge_date PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "1114 1082" _null_ _null_ _null_ _null_ _null_ timestamp_ge_date _null_ _null_ _null_ )); -DATA(insert OID = 2369 ( timestamp_ne_date PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "1114 1082" _null_ _null_ _null_ _null_ _null_ timestamp_ne_date _null_ _null_ _null_ )); -DATA(insert OID = 2370 ( timestamp_cmp_date PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "1114 1082" _null_ _null_ _null_ _null_ _null_ timestamp_cmp_date _null_ _null_ _null_ )); -DESCR("less-equal-greater"); - -DATA(insert OID = 2377 ( timestamptz_lt_date PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 16 "1184 1082" _null_ _null_ _null_ _null_ _null_ timestamptz_lt_date _null_ _null_ _null_ )); -DATA(insert OID = 2378 ( timestamptz_le_date PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 16 "1184 1082" _null_ _null_ _null_ _null_ _null_ timestamptz_le_date _null_ _null_ _null_ )); -DATA(insert OID = 2379 ( timestamptz_eq_date PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 16 "1184 1082" _null_ _null_ _null_ _null_ _null_ timestamptz_eq_date _null_ _null_ _null_ )); -DATA(insert OID = 2380 ( timestamptz_gt_date PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 16 "1184 1082" _null_ _null_ _null_ _null_ _null_ timestamptz_gt_date _null_ _null_ _null_ )); -DATA(insert OID = 2381 ( timestamptz_ge_date PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 16 "1184 1082" _null_ _null_ _null_ _null_ _null_ timestamptz_ge_date _null_ _null_ _null_ )); -DATA(insert OID = 2382 ( timestamptz_ne_date PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 16 "1184 1082" _null_ _null_ _null_ _null_ _null_ timestamptz_ne_date _null_ _null_ _null_ )); -DATA(insert OID = 2383 ( timestamptz_cmp_date PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 23 "1184 1082" _null_ _null_ _null_ _null_ _null_ timestamptz_cmp_date _null_ _null_ _null_ )); -DESCR("less-equal-greater"); - -/* crosstype operations for timestamp vs. timestamptz */ -DATA(insert OID = 2520 ( timestamp_lt_timestamptz PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 16 "1114 1184" _null_ _null_ _null_ _null_ _null_ timestamp_lt_timestamptz _null_ _null_ _null_ )); -DATA(insert OID = 2521 ( timestamp_le_timestamptz PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 16 "1114 1184" _null_ _null_ _null_ _null_ _null_ timestamp_le_timestamptz _null_ _null_ _null_ )); -DATA(insert OID = 2522 ( timestamp_eq_timestamptz PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 16 "1114 1184" _null_ _null_ _null_ _null_ _null_ timestamp_eq_timestamptz _null_ _null_ _null_ )); -DATA(insert OID = 2523 ( timestamp_gt_timestamptz PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 16 "1114 1184" _null_ _null_ _null_ _null_ _null_ timestamp_gt_timestamptz _null_ _null_ _null_ )); -DATA(insert OID = 2524 ( timestamp_ge_timestamptz PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 16 "1114 1184" _null_ _null_ _null_ _null_ _null_ timestamp_ge_timestamptz _null_ _null_ _null_ )); -DATA(insert OID = 2525 ( timestamp_ne_timestamptz PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 16 "1114 1184" _null_ _null_ _null_ _null_ _null_ timestamp_ne_timestamptz _null_ _null_ _null_ )); -DATA(insert OID = 2526 ( timestamp_cmp_timestamptz PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 23 "1114 1184" _null_ _null_ _null_ _null_ _null_ timestamp_cmp_timestamptz _null_ _null_ _null_ )); -DESCR("less-equal-greater"); - -DATA(insert OID = 2527 ( timestamptz_lt_timestamp PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 16 "1184 1114" _null_ _null_ _null_ _null_ _null_ timestamptz_lt_timestamp _null_ _null_ _null_ )); -DATA(insert OID = 2528 ( timestamptz_le_timestamp PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 16 "1184 1114" _null_ _null_ _null_ _null_ _null_ timestamptz_le_timestamp _null_ _null_ _null_ )); -DATA(insert OID = 2529 ( timestamptz_eq_timestamp PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 16 "1184 1114" _null_ _null_ _null_ _null_ _null_ timestamptz_eq_timestamp _null_ _null_ _null_ )); -DATA(insert OID = 2530 ( timestamptz_gt_timestamp PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 16 "1184 1114" _null_ _null_ _null_ _null_ _null_ timestamptz_gt_timestamp _null_ _null_ _null_ )); -DATA(insert OID = 2531 ( timestamptz_ge_timestamp PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 16 "1184 1114" _null_ _null_ _null_ _null_ _null_ timestamptz_ge_timestamp _null_ _null_ _null_ )); -DATA(insert OID = 2532 ( timestamptz_ne_timestamp PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 16 "1184 1114" _null_ _null_ _null_ _null_ _null_ timestamptz_ne_timestamp _null_ _null_ _null_ )); -DATA(insert OID = 2533 ( timestamptz_cmp_timestamp PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 23 "1184 1114" _null_ _null_ _null_ _null_ _null_ timestamptz_cmp_timestamp _null_ _null_ _null_ )); -DESCR("less-equal-greater"); - - -/* send/receive functions */ -DATA(insert OID = 2400 ( array_recv PGNSP PGUID 12 1 0 0 0 f f f t f s s 3 0 2277 "2281 26 23" _null_ _null_ _null_ _null_ _null_ array_recv _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2401 ( array_send PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 17 "2277" _null_ _null_ _null_ _null_ _null_ array_send _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2402 ( record_recv PGNSP PGUID 12 1 0 0 0 f f f t f s s 3 0 2249 "2281 26 23" _null_ _null_ _null_ _null_ _null_ record_recv _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2403 ( record_send PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 17 "2249" _null_ _null_ _null_ _null_ _null_ record_send _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2404 ( int2recv PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 21 "2281" _null_ _null_ _null_ _null_ _null_ int2recv _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2405 ( int2send PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 17 "21" _null_ _null_ _null_ _null_ _null_ int2send _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2406 ( int4recv PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "2281" _null_ _null_ _null_ _null_ _null_ int4recv _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2407 ( int4send PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 17 "23" _null_ _null_ _null_ _null_ _null_ int4send _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2408 ( int8recv PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 20 "2281" _null_ _null_ _null_ _null_ _null_ int8recv _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2409 ( int8send PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 17 "20" _null_ _null_ _null_ _null_ _null_ int8send _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2410 ( int2vectorrecv PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 22 "2281" _null_ _null_ _null_ _null_ _null_ int2vectorrecv _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2411 ( int2vectorsend PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 17 "22" _null_ _null_ _null_ _null_ _null_ int2vectorsend _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2412 ( bytearecv PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 17 "2281" _null_ _null_ _null_ _null_ _null_ bytearecv _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2413 ( byteasend PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 17 "17" _null_ _null_ _null_ _null_ _null_ byteasend _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2414 ( textrecv PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 25 "2281" _null_ _null_ _null_ _null_ _null_ textrecv _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2415 ( textsend PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 17 "25" _null_ _null_ _null_ _null_ _null_ textsend _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2416 ( unknownrecv PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 705 "2281" _null_ _null_ _null_ _null_ _null_ unknownrecv _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2417 ( unknownsend PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 17 "705" _null_ _null_ _null_ _null_ _null_ unknownsend _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2418 ( oidrecv PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 26 "2281" _null_ _null_ _null_ _null_ _null_ oidrecv _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2419 ( oidsend PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 17 "26" _null_ _null_ _null_ _null_ _null_ oidsend _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2420 ( oidvectorrecv PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 30 "2281" _null_ _null_ _null_ _null_ _null_ oidvectorrecv _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2421 ( oidvectorsend PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 17 "30" _null_ _null_ _null_ _null_ _null_ oidvectorsend _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2422 ( namerecv PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 19 "2281" _null_ _null_ _null_ _null_ _null_ namerecv _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2423 ( namesend PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 17 "19" _null_ _null_ _null_ _null_ _null_ namesend _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2424 ( float4recv PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 700 "2281" _null_ _null_ _null_ _null_ _null_ float4recv _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2425 ( float4send PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 17 "700" _null_ _null_ _null_ _null_ _null_ float4send _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2426 ( float8recv PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 701 "2281" _null_ _null_ _null_ _null_ _null_ float8recv _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2427 ( float8send PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 17 "701" _null_ _null_ _null_ _null_ _null_ float8send _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2428 ( point_recv PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 600 "2281" _null_ _null_ _null_ _null_ _null_ point_recv _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2429 ( point_send PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 17 "600" _null_ _null_ _null_ _null_ _null_ point_send _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2430 ( bpcharrecv PGNSP PGUID 12 1 0 0 0 f f f t f s s 3 0 1042 "2281 26 23" _null_ _null_ _null_ _null_ _null_ bpcharrecv _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2431 ( bpcharsend PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 17 "1042" _null_ _null_ _null_ _null_ _null_ bpcharsend _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2432 ( varcharrecv PGNSP PGUID 12 1 0 0 0 f f f t f s s 3 0 1043 "2281 26 23" _null_ _null_ _null_ _null_ _null_ varcharrecv _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2433 ( varcharsend PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 17 "1043" _null_ _null_ _null_ _null_ _null_ varcharsend _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2434 ( charrecv PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 18 "2281" _null_ _null_ _null_ _null_ _null_ charrecv _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2435 ( charsend PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 17 "18" _null_ _null_ _null_ _null_ _null_ charsend _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2436 ( boolrecv PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 16 "2281" _null_ _null_ _null_ _null_ _null_ boolrecv _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2437 ( boolsend PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 17 "16" _null_ _null_ _null_ _null_ _null_ boolsend _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2438 ( tidrecv PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 27 "2281" _null_ _null_ _null_ _null_ _null_ tidrecv _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2439 ( tidsend PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 17 "27" _null_ _null_ _null_ _null_ _null_ tidsend _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2440 ( xidrecv PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 28 "2281" _null_ _null_ _null_ _null_ _null_ xidrecv _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2441 ( xidsend PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 17 "28" _null_ _null_ _null_ _null_ _null_ xidsend _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2442 ( cidrecv PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 29 "2281" _null_ _null_ _null_ _null_ _null_ cidrecv _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2443 ( cidsend PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 17 "29" _null_ _null_ _null_ _null_ _null_ cidsend _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2444 ( regprocrecv PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 24 "2281" _null_ _null_ _null_ _null_ _null_ regprocrecv _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2445 ( regprocsend PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 17 "24" _null_ _null_ _null_ _null_ _null_ regprocsend _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2446 ( regprocedurerecv PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2202 "2281" _null_ _null_ _null_ _null_ _null_ regprocedurerecv _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2447 ( regproceduresend PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 17 "2202" _null_ _null_ _null_ _null_ _null_ regproceduresend _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2448 ( regoperrecv PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2203 "2281" _null_ _null_ _null_ _null_ _null_ regoperrecv _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2449 ( regopersend PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 17 "2203" _null_ _null_ _null_ _null_ _null_ regopersend _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2450 ( regoperatorrecv PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2204 "2281" _null_ _null_ _null_ _null_ _null_ regoperatorrecv _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2451 ( regoperatorsend PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 17 "2204" _null_ _null_ _null_ _null_ _null_ regoperatorsend _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2452 ( regclassrecv PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2205 "2281" _null_ _null_ _null_ _null_ _null_ regclassrecv _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2453 ( regclasssend PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 17 "2205" _null_ _null_ _null_ _null_ _null_ regclasssend _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2454 ( regtyperecv PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2206 "2281" _null_ _null_ _null_ _null_ _null_ regtyperecv _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2455 ( regtypesend PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 17 "2206" _null_ _null_ _null_ _null_ _null_ regtypesend _null_ _null_ _null_ )); -DESCR("I/O"); - -DATA(insert OID = 4094 ( regrolerecv PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 4096 "2281" _null_ _null_ _null_ _null_ _null_ regrolerecv _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 4095 ( regrolesend PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 17 "4096" _null_ _null_ _null_ _null_ _null_ regrolesend _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 4087 ( regnamespacerecv PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 4089 "2281" _null_ _null_ _null_ _null_ _null_ regnamespacerecv _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 4088 ( regnamespacesend PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 17 "4089" _null_ _null_ _null_ _null_ _null_ regnamespacesend _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2456 ( bit_recv PGNSP PGUID 12 1 0 0 0 f f f t f i s 3 0 1560 "2281 26 23" _null_ _null_ _null_ _null_ _null_ bit_recv _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2457 ( bit_send PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 17 "1560" _null_ _null_ _null_ _null_ _null_ bit_send _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2458 ( varbit_recv PGNSP PGUID 12 1 0 0 0 f f f t f i s 3 0 1562 "2281 26 23" _null_ _null_ _null_ _null_ _null_ varbit_recv _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2459 ( varbit_send PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 17 "1562" _null_ _null_ _null_ _null_ _null_ varbit_send _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2460 ( numeric_recv PGNSP PGUID 12 1 0 0 0 f f f t f i s 3 0 1700 "2281 26 23" _null_ _null_ _null_ _null_ _null_ numeric_recv _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2461 ( numeric_send PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 17 "1700" _null_ _null_ _null_ _null_ _null_ numeric_send _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2462 ( abstimerecv PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 702 "2281" _null_ _null_ _null_ _null_ _null_ abstimerecv _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2463 ( abstimesend PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 17 "702" _null_ _null_ _null_ _null_ _null_ abstimesend _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2464 ( reltimerecv PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 703 "2281" _null_ _null_ _null_ _null_ _null_ reltimerecv _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2465 ( reltimesend PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 17 "703" _null_ _null_ _null_ _null_ _null_ reltimesend _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2466 ( tintervalrecv PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 704 "2281" _null_ _null_ _null_ _null_ _null_ tintervalrecv _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2467 ( tintervalsend PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 17 "704" _null_ _null_ _null_ _null_ _null_ tintervalsend _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2468 ( date_recv PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 1082 "2281" _null_ _null_ _null_ _null_ _null_ date_recv _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2469 ( date_send PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 17 "1082" _null_ _null_ _null_ _null_ _null_ date_send _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2470 ( time_recv PGNSP PGUID 12 1 0 0 0 f f f t f i s 3 0 1083 "2281 26 23" _null_ _null_ _null_ _null_ _null_ time_recv _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2471 ( time_send PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 17 "1083" _null_ _null_ _null_ _null_ _null_ time_send _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2472 ( timetz_recv PGNSP PGUID 12 1 0 0 0 f f f t f i s 3 0 1266 "2281 26 23" _null_ _null_ _null_ _null_ _null_ timetz_recv _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2473 ( timetz_send PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 17 "1266" _null_ _null_ _null_ _null_ _null_ timetz_send _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2474 ( timestamp_recv PGNSP PGUID 12 1 0 0 0 f f f t f i s 3 0 1114 "2281 26 23" _null_ _null_ _null_ _null_ _null_ timestamp_recv _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2475 ( timestamp_send PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 17 "1114" _null_ _null_ _null_ _null_ _null_ timestamp_send _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2476 ( timestamptz_recv PGNSP PGUID 12 1 0 0 0 f f f t f i s 3 0 1184 "2281 26 23" _null_ _null_ _null_ _null_ _null_ timestamptz_recv _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2477 ( timestamptz_send PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 17 "1184" _null_ _null_ _null_ _null_ _null_ timestamptz_send _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2478 ( interval_recv PGNSP PGUID 12 1 0 0 0 f f f t f i s 3 0 1186 "2281 26 23" _null_ _null_ _null_ _null_ _null_ interval_recv _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2479 ( interval_send PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 17 "1186" _null_ _null_ _null_ _null_ _null_ interval_send _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2480 ( lseg_recv PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 601 "2281" _null_ _null_ _null_ _null_ _null_ lseg_recv _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2481 ( lseg_send PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 17 "601" _null_ _null_ _null_ _null_ _null_ lseg_send _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2482 ( path_recv PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 602 "2281" _null_ _null_ _null_ _null_ _null_ path_recv _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2483 ( path_send PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 17 "602" _null_ _null_ _null_ _null_ _null_ path_send _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2484 ( box_recv PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 603 "2281" _null_ _null_ _null_ _null_ _null_ box_recv _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2485 ( box_send PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 17 "603" _null_ _null_ _null_ _null_ _null_ box_send _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2486 ( poly_recv PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 604 "2281" _null_ _null_ _null_ _null_ _null_ poly_recv _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2487 ( poly_send PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 17 "604" _null_ _null_ _null_ _null_ _null_ poly_send _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2488 ( line_recv PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 628 "2281" _null_ _null_ _null_ _null_ _null_ line_recv _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2489 ( line_send PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 17 "628" _null_ _null_ _null_ _null_ _null_ line_send _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2490 ( circle_recv PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 718 "2281" _null_ _null_ _null_ _null_ _null_ circle_recv _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2491 ( circle_send PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 17 "718" _null_ _null_ _null_ _null_ _null_ circle_send _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2492 ( cash_recv PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 790 "2281" _null_ _null_ _null_ _null_ _null_ cash_recv _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2493 ( cash_send PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 17 "790" _null_ _null_ _null_ _null_ _null_ cash_send _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2494 ( macaddr_recv PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 829 "2281" _null_ _null_ _null_ _null_ _null_ macaddr_recv _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2495 ( macaddr_send PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 17 "829" _null_ _null_ _null_ _null_ _null_ macaddr_send _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2496 ( inet_recv PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 869 "2281" _null_ _null_ _null_ _null_ _null_ inet_recv _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2497 ( inet_send PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 17 "869" _null_ _null_ _null_ _null_ _null_ inet_send _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2498 ( cidr_recv PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 650 "2281" _null_ _null_ _null_ _null_ _null_ cidr_recv _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2499 ( cidr_send PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 17 "650" _null_ _null_ _null_ _null_ _null_ cidr_send _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2500 ( cstring_recv PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 2275 "2281" _null_ _null_ _null_ _null_ _null_ cstring_recv _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2501 ( cstring_send PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 17 "2275" _null_ _null_ _null_ _null_ _null_ cstring_send _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2502 ( anyarray_recv PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 2277 "2281" _null_ _null_ _null_ _null_ _null_ anyarray_recv _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2503 ( anyarray_send PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 17 "2277" _null_ _null_ _null_ _null_ _null_ anyarray_send _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 3120 ( void_recv PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2278 "2281" _null_ _null_ _null_ _null_ _null_ void_recv _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 3121 ( void_send PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 17 "2278" _null_ _null_ _null_ _null_ _null_ void_send _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 3446 ( macaddr8_recv PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 774 "2281" _null_ _null_ _null_ _null_ _null_ macaddr8_recv _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 3447 ( macaddr8_send PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 17 "774" _null_ _null_ _null_ _null_ _null_ macaddr8_send _null_ _null_ _null_ )); -DESCR("I/O"); - -/* System-view support functions with pretty-print option */ -DATA(insert OID = 2504 ( pg_get_ruledef PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 25 "26 16" _null_ _null_ _null_ _null_ _null_ pg_get_ruledef_ext _null_ _null_ _null_ )); -DESCR("source text of a rule with pretty-print option"); -DATA(insert OID = 2505 ( pg_get_viewdef PGNSP PGUID 12 1 0 0 0 f f f t f s r 2 0 25 "25 16" _null_ _null_ _null_ _null_ _null_ pg_get_viewdef_name_ext _null_ _null_ _null_ )); -DESCR("select statement of a view with pretty-print option"); -DATA(insert OID = 2506 ( pg_get_viewdef PGNSP PGUID 12 1 0 0 0 f f f t f s r 2 0 25 "26 16" _null_ _null_ _null_ _null_ _null_ pg_get_viewdef_ext _null_ _null_ _null_ )); -DESCR("select statement of a view with pretty-print option"); -DATA(insert OID = 3159 ( pg_get_viewdef PGNSP PGUID 12 1 0 0 0 f f f t f s r 2 0 25 "26 23" _null_ _null_ _null_ _null_ _null_ pg_get_viewdef_wrap _null_ _null_ _null_ )); -DESCR("select statement of a view with pretty-printing and specified line wrapping"); -DATA(insert OID = 2507 ( pg_get_indexdef PGNSP PGUID 12 1 0 0 0 f f f t f s s 3 0 25 "26 23 16" _null_ _null_ _null_ _null_ _null_ pg_get_indexdef_ext _null_ _null_ _null_ )); -DESCR("index description (full create statement or single expression) with pretty-print option"); -DATA(insert OID = 2508 ( pg_get_constraintdef PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 25 "26 16" _null_ _null_ _null_ _null_ _null_ pg_get_constraintdef_ext _null_ _null_ _null_ )); -DESCR("constraint description with pretty-print option"); -DATA(insert OID = 2509 ( pg_get_expr PGNSP PGUID 12 1 0 0 0 f f f t f s s 3 0 25 "194 26 16" _null_ _null_ _null_ _null_ _null_ pg_get_expr_ext _null_ _null_ _null_ )); -DESCR("deparse an encoded expression with pretty-print option"); -DATA(insert OID = 2510 ( pg_prepared_statement PGNSP PGUID 12 1 1000 0 0 f f f t t s r 0 0 2249 "" "{25,25,1184,2211,16}" "{o,o,o,o,o}" "{name,statement,prepare_time,parameter_types,from_sql}" _null_ _null_ pg_prepared_statement _null_ _null_ _null_ )); -DESCR("get the prepared statements for this session"); -DATA(insert OID = 2511 ( pg_cursor PGNSP PGUID 12 1 1000 0 0 f f f t t s r 0 0 2249 "" "{25,25,16,16,16,1184}" "{o,o,o,o,o,o}" "{name,statement,is_holdable,is_binary,is_scrollable,creation_time}" _null_ _null_ pg_cursor _null_ _null_ _null_ )); -DESCR("get the open cursors for this session"); -DATA(insert OID = 2599 ( pg_timezone_abbrevs PGNSP PGUID 12 1 1000 0 0 f f f t t s s 0 0 2249 "" "{25,1186,16}" "{o,o,o}" "{abbrev,utc_offset,is_dst}" _null_ _null_ pg_timezone_abbrevs _null_ _null_ _null_ )); -DESCR("get the available time zone abbreviations"); -DATA(insert OID = 2856 ( pg_timezone_names PGNSP PGUID 12 1 1000 0 0 f f f t t s s 0 0 2249 "" "{25,25,1186,16}" "{o,o,o,o}" "{name,abbrev,utc_offset,is_dst}" _null_ _null_ pg_timezone_names _null_ _null_ _null_ )); -DESCR("get the available time zone names"); -DATA(insert OID = 2730 ( pg_get_triggerdef PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 25 "26 16" _null_ _null_ _null_ _null_ _null_ pg_get_triggerdef_ext _null_ _null_ _null_ )); -DESCR("trigger description with pretty-print option"); - -/* asynchronous notifications */ -DATA(insert OID = 3035 ( pg_listening_channels PGNSP PGUID 12 1 10 0 0 f f f t t s r 0 0 25 "" _null_ _null_ _null_ _null_ _null_ pg_listening_channels _null_ _null_ _null_ )); -DESCR("get the channels that the current backend listens to"); -DATA(insert OID = 3036 ( pg_notify PGNSP PGUID 12 1 0 0 0 f f f f f v r 2 0 2278 "25 25" _null_ _null_ _null_ _null_ _null_ pg_notify _null_ _null_ _null_ )); -DESCR("send a notification event"); -DATA(insert OID = 3296 ( pg_notification_queue_usage PGNSP PGUID 12 1 0 0 0 f f f t f v s 0 0 701 "" _null_ _null_ _null_ _null_ _null_ pg_notification_queue_usage _null_ _null_ _null_ )); -DESCR("get the fraction of the asynchronous notification queue currently in use"); - -/* non-persistent series generator */ -DATA(insert OID = 1066 ( generate_series PGNSP PGUID 12 1 1000 0 0 f f f t t i s 3 0 23 "23 23 23" _null_ _null_ _null_ _null_ _null_ generate_series_step_int4 _null_ _null_ _null_ )); -DESCR("non-persistent series generator"); -DATA(insert OID = 1067 ( generate_series PGNSP PGUID 12 1 1000 0 0 f f f t t i s 2 0 23 "23 23" _null_ _null_ _null_ _null_ _null_ generate_series_int4 _null_ _null_ _null_ )); -DESCR("non-persistent series generator"); -DATA(insert OID = 1068 ( generate_series PGNSP PGUID 12 1 1000 0 0 f f f t t i s 3 0 20 "20 20 20" _null_ _null_ _null_ _null_ _null_ generate_series_step_int8 _null_ _null_ _null_ )); -DESCR("non-persistent series generator"); -DATA(insert OID = 1069 ( generate_series PGNSP PGUID 12 1 1000 0 0 f f f t t i s 2 0 20 "20 20" _null_ _null_ _null_ _null_ _null_ generate_series_int8 _null_ _null_ _null_ )); -DESCR("non-persistent series generator"); -DATA(insert OID = 3259 ( generate_series PGNSP PGUID 12 1 1000 0 0 f f f t t i s 3 0 1700 "1700 1700 1700" _null_ _null_ _null_ _null_ _null_ generate_series_step_numeric _null_ _null_ _null_ )); -DESCR("non-persistent series generator"); -DATA(insert OID = 3260 ( generate_series PGNSP PGUID 12 1 1000 0 0 f f f t t i s 2 0 1700 "1700 1700" _null_ _null_ _null_ _null_ _null_ generate_series_numeric _null_ _null_ _null_ )); -DESCR("non-persistent series generator"); -DATA(insert OID = 938 ( generate_series PGNSP PGUID 12 1 1000 0 0 f f f t t i s 3 0 1114 "1114 1114 1186" _null_ _null_ _null_ _null_ _null_ generate_series_timestamp _null_ _null_ _null_ )); -DESCR("non-persistent series generator"); -DATA(insert OID = 939 ( generate_series PGNSP PGUID 12 1 1000 0 0 f f f t t s s 3 0 1184 "1184 1184 1186" _null_ _null_ _null_ _null_ _null_ generate_series_timestamptz _null_ _null_ _null_ )); -DESCR("non-persistent series generator"); - -/* boolean aggregates */ -DATA(insert OID = 2515 ( booland_statefunc PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "16 16" _null_ _null_ _null_ _null_ _null_ booland_statefunc _null_ _null_ _null_ )); -DESCR("aggregate transition function"); -DATA(insert OID = 2516 ( boolor_statefunc PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "16 16" _null_ _null_ _null_ _null_ _null_ boolor_statefunc _null_ _null_ _null_ )); -DESCR("aggregate transition function"); -DATA(insert OID = 3496 ( bool_accum PGNSP PGUID 12 1 0 0 0 f f f f f i s 2 0 2281 "2281 16" _null_ _null_ _null_ _null_ _null_ bool_accum _null_ _null_ _null_ )); -DESCR("aggregate transition function"); -DATA(insert OID = 3497 ( bool_accum_inv PGNSP PGUID 12 1 0 0 0 f f f f f i s 2 0 2281 "2281 16" _null_ _null_ _null_ _null_ _null_ bool_accum_inv _null_ _null_ _null_ )); -DESCR("aggregate transition function"); -DATA(insert OID = 3498 ( bool_alltrue PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 16 "2281" _null_ _null_ _null_ _null_ _null_ bool_alltrue _null_ _null_ _null_ )); -DESCR("aggregate final function"); -DATA(insert OID = 3499 ( bool_anytrue PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 16 "2281" _null_ _null_ _null_ _null_ _null_ bool_anytrue _null_ _null_ _null_ )); -DESCR("aggregate final function"); -DATA(insert OID = 2517 ( bool_and PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 16 "16" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("boolean-and aggregate"); -/* ANY, SOME? These names conflict with subquery operators. See doc. */ -DATA(insert OID = 2518 ( bool_or PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 16 "16" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("boolean-or aggregate"); -DATA(insert OID = 2519 ( every PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 16 "16" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("boolean-and aggregate"); - -/* bitwise integer aggregates */ -DATA(insert OID = 2236 ( bit_and PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 21 "21" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("bitwise-and smallint aggregate"); -DATA(insert OID = 2237 ( bit_or PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 21 "21" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("bitwise-or smallint aggregate"); -DATA(insert OID = 2238 ( bit_and PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 23 "23" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("bitwise-and integer aggregate"); -DATA(insert OID = 2239 ( bit_or PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 23 "23" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("bitwise-or integer aggregate"); -DATA(insert OID = 2240 ( bit_and PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 20 "20" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("bitwise-and bigint aggregate"); -DATA(insert OID = 2241 ( bit_or PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 20 "20" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("bitwise-or bigint aggregate"); -DATA(insert OID = 2242 ( bit_and PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 1560 "1560" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("bitwise-and bit aggregate"); -DATA(insert OID = 2243 ( bit_or PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 1560 "1560" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("bitwise-or bit aggregate"); - -/* formerly-missing interval + datetime operators */ -DATA(insert OID = 2546 ( interval_pl_date PGNSP PGUID 14 1 0 0 0 f f f t f i s 2 0 1114 "1186 1082" _null_ _null_ _null_ _null_ _null_ "select $2 + $1" _null_ _null_ _null_ )); -DATA(insert OID = 2547 ( interval_pl_timetz PGNSP PGUID 14 1 0 0 0 f f f t f i s 2 0 1266 "1186 1266" _null_ _null_ _null_ _null_ _null_ "select $2 + $1" _null_ _null_ _null_ )); -DATA(insert OID = 2548 ( interval_pl_timestamp PGNSP PGUID 14 1 0 0 0 f f f t f i s 2 0 1114 "1186 1114" _null_ _null_ _null_ _null_ _null_ "select $2 + $1" _null_ _null_ _null_ )); -DATA(insert OID = 2549 ( interval_pl_timestamptz PGNSP PGUID 14 1 0 0 0 f f f t f s s 2 0 1184 "1186 1184" _null_ _null_ _null_ _null_ _null_ "select $2 + $1" _null_ _null_ _null_ )); -DATA(insert OID = 2550 ( integer_pl_date PGNSP PGUID 14 1 0 0 0 f f f t f i s 2 0 1082 "23 1082" _null_ _null_ _null_ _null_ _null_ "select $2 + $1" _null_ _null_ _null_ )); - -DATA(insert OID = 2556 ( pg_tablespace_databases PGNSP PGUID 12 1 1000 0 0 f f f t t s s 1 0 26 "26" _null_ _null_ _null_ _null_ _null_ pg_tablespace_databases _null_ _null_ _null_ )); -DESCR("get OIDs of databases in a tablespace"); - -DATA(insert OID = 2557 ( bool PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 16 "23" _null_ _null_ _null_ _null_ _null_ int4_bool _null_ _null_ _null_ )); -DESCR("convert int4 to boolean"); -DATA(insert OID = 2558 ( int4 PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "16" _null_ _null_ _null_ _null_ _null_ bool_int4 _null_ _null_ _null_ )); -DESCR("convert boolean to int4"); -DATA(insert OID = 2559 ( lastval PGNSP PGUID 12 1 0 0 0 f f f t f v u 0 0 20 "" _null_ _null_ _null_ _null_ _null_ lastval _null_ _null_ _null_ )); -DESCR("current value from last used sequence"); - -/* start time function */ -DATA(insert OID = 2560 ( pg_postmaster_start_time PGNSP PGUID 12 1 0 0 0 f f f t f s s 0 0 1184 "" _null_ _null_ _null_ _null_ _null_ pg_postmaster_start_time _null_ _null_ _null_ )); -DESCR("postmaster start time"); -/* config reload time function */ -DATA(insert OID = 2034 ( pg_conf_load_time PGNSP PGUID 12 1 0 0 0 f f f t f s r 0 0 1184 "" _null_ _null_ _null_ _null_ _null_ pg_conf_load_time _null_ _null_ _null_ )); -DESCR("configuration load time"); - -/* new functions for Y-direction rtree opclasses */ -DATA(insert OID = 2562 ( box_below PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "603 603" _null_ _null_ _null_ _null_ _null_ box_below _null_ _null_ _null_ )); -DATA(insert OID = 2563 ( box_overbelow PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "603 603" _null_ _null_ _null_ _null_ _null_ box_overbelow _null_ _null_ _null_ )); -DATA(insert OID = 2564 ( box_overabove PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "603 603" _null_ _null_ _null_ _null_ _null_ box_overabove _null_ _null_ _null_ )); -DATA(insert OID = 2565 ( box_above PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "603 603" _null_ _null_ _null_ _null_ _null_ box_above _null_ _null_ _null_ )); -DATA(insert OID = 2566 ( poly_below PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "604 604" _null_ _null_ _null_ _null_ _null_ poly_below _null_ _null_ _null_ )); -DATA(insert OID = 2567 ( poly_overbelow PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "604 604" _null_ _null_ _null_ _null_ _null_ poly_overbelow _null_ _null_ _null_ )); -DATA(insert OID = 2568 ( poly_overabove PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "604 604" _null_ _null_ _null_ _null_ _null_ poly_overabove _null_ _null_ _null_ )); -DATA(insert OID = 2569 ( poly_above PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "604 604" _null_ _null_ _null_ _null_ _null_ poly_above _null_ _null_ _null_ )); -DATA(insert OID = 2587 ( circle_overbelow PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "718 718" _null_ _null_ _null_ _null_ _null_ circle_overbelow _null_ _null_ _null_ )); -DATA(insert OID = 2588 ( circle_overabove PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "718 718" _null_ _null_ _null_ _null_ _null_ circle_overabove _null_ _null_ _null_ )); - -/* support functions for GiST r-tree emulation */ -DATA(insert OID = 2578 ( gist_box_consistent PGNSP PGUID 12 1 0 0 0 f f f t f i s 5 0 16 "2281 603 21 26 2281" _null_ _null_ _null_ _null_ _null_ gist_box_consistent _null_ _null_ _null_ )); -DESCR("GiST support"); -DATA(insert OID = 2581 ( gist_box_penalty PGNSP PGUID 12 1 0 0 0 f f f t f i s 3 0 2281 "2281 2281 2281" _null_ _null_ _null_ _null_ _null_ gist_box_penalty _null_ _null_ _null_ )); -DESCR("GiST support"); -DATA(insert OID = 2582 ( gist_box_picksplit PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 2281 "2281 2281" _null_ _null_ _null_ _null_ _null_ gist_box_picksplit _null_ _null_ _null_ )); -DESCR("GiST support"); -DATA(insert OID = 2583 ( gist_box_union PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 603 "2281 2281" _null_ _null_ _null_ _null_ _null_ gist_box_union _null_ _null_ _null_ )); -DESCR("GiST support"); -DATA(insert OID = 2584 ( gist_box_same PGNSP PGUID 12 1 0 0 0 f f f t f i s 3 0 2281 "603 603 2281" _null_ _null_ _null_ _null_ _null_ gist_box_same _null_ _null_ _null_ )); -DESCR("GiST support"); -DATA(insert OID = 2585 ( gist_poly_consistent PGNSP PGUID 12 1 0 0 0 f f f t f i s 5 0 16 "2281 604 21 26 2281" _null_ _null_ _null_ _null_ _null_ gist_poly_consistent _null_ _null_ _null_ )); -DESCR("GiST support"); -DATA(insert OID = 2586 ( gist_poly_compress PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2281 "2281" _null_ _null_ _null_ _null_ _null_ gist_poly_compress _null_ _null_ _null_ )); -DESCR("GiST support"); -DATA(insert OID = 2591 ( gist_circle_consistent PGNSP PGUID 12 1 0 0 0 f f f t f i s 5 0 16 "2281 718 21 26 2281" _null_ _null_ _null_ _null_ _null_ gist_circle_consistent _null_ _null_ _null_ )); -DESCR("GiST support"); -DATA(insert OID = 2592 ( gist_circle_compress PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2281 "2281" _null_ _null_ _null_ _null_ _null_ gist_circle_compress _null_ _null_ _null_ )); -DESCR("GiST support"); -DATA(insert OID = 1030 ( gist_point_compress PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2281 "2281" _null_ _null_ _null_ _null_ _null_ gist_point_compress _null_ _null_ _null_ )); -DESCR("GiST support"); -DATA(insert OID = 3282 ( gist_point_fetch PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2281 "2281" _null_ _null_ _null_ _null_ _null_ gist_point_fetch _null_ _null_ _null_ )); -DESCR("GiST support"); -DATA(insert OID = 2179 ( gist_point_consistent PGNSP PGUID 12 1 0 0 0 f f f t f i s 5 0 16 "2281 600 21 26 2281" _null_ _null_ _null_ _null_ _null_ gist_point_consistent _null_ _null_ _null_ )); -DESCR("GiST support"); -DATA(insert OID = 3064 ( gist_point_distance PGNSP PGUID 12 1 0 0 0 f f f t f i s 5 0 701 "2281 600 21 26 2281" _null_ _null_ _null_ _null_ _null_ gist_point_distance _null_ _null_ _null_ )); -DESCR("GiST support"); -DATA(insert OID = 3280 ( gist_circle_distance PGNSP PGUID 12 1 0 0 0 f f f t f i s 5 0 701 "2281 718 21 26 2281" _null_ _null_ _null_ _null_ _null_ gist_circle_distance _null_ _null_ _null_ )); -DESCR("GiST support"); -DATA(insert OID = 3288 ( gist_poly_distance PGNSP PGUID 12 1 0 0 0 f f f t f i s 5 0 701 "2281 604 21 26 2281" _null_ _null_ _null_ _null_ _null_ gist_poly_distance _null_ _null_ _null_ )); -DESCR("GiST support"); - -/* GIN array support */ -DATA(insert OID = 2743 ( ginarrayextract PGNSP PGUID 12 1 0 0 0 f f f t f i s 3 0 2281 "2277 2281 2281" _null_ _null_ _null_ _null_ _null_ ginarrayextract _null_ _null_ _null_ )); -DESCR("GIN array support"); -DATA(insert OID = 2774 ( ginqueryarrayextract PGNSP PGUID 12 1 0 0 0 f f f t f i s 7 0 2281 "2277 2281 21 2281 2281 2281 2281" _null_ _null_ _null_ _null_ _null_ ginqueryarrayextract _null_ _null_ _null_ )); -DESCR("GIN array support"); -DATA(insert OID = 2744 ( ginarrayconsistent PGNSP PGUID 12 1 0 0 0 f f f t f i s 8 0 16 "2281 21 2277 23 2281 2281 2281 2281" _null_ _null_ _null_ _null_ _null_ ginarrayconsistent _null_ _null_ _null_ )); -DESCR("GIN array support"); -DATA(insert OID = 3920 ( ginarraytriconsistent PGNSP PGUID 12 1 0 0 0 f f f t f i s 7 0 18 "2281 21 2277 23 2281 2281 2281" _null_ _null_ _null_ _null_ _null_ ginarraytriconsistent _null_ _null_ _null_ )); -DESCR("GIN array support"); -DATA(insert OID = 3076 ( ginarrayextract PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 2281 "2277 2281" _null_ _null_ _null_ _null_ _null_ ginarrayextract_2args _null_ _null_ _null_ )); -DESCR("GIN array support (obsolete)"); - -/* overlap/contains/contained */ -DATA(insert OID = 2747 ( arrayoverlap PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "2277 2277" _null_ _null_ _null_ _null_ _null_ arrayoverlap _null_ _null_ _null_ )); -DATA(insert OID = 2748 ( arraycontains PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "2277 2277" _null_ _null_ _null_ _null_ _null_ arraycontains _null_ _null_ _null_ )); -DATA(insert OID = 2749 ( arraycontained PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "2277 2277" _null_ _null_ _null_ _null_ _null_ arraycontained _null_ _null_ _null_ )); - -/* BRIN minmax */ -DATA(insert OID = 3383 ( brin_minmax_opcinfo PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2281 "2281" _null_ _null_ _null_ _null_ _null_ brin_minmax_opcinfo _null_ _null_ _null_ )); -DESCR("BRIN minmax support"); -DATA(insert OID = 3384 ( brin_minmax_add_value PGNSP PGUID 12 1 0 0 0 f f f t f i s 4 0 16 "2281 2281 2281 2281" _null_ _null_ _null_ _null_ _null_ brin_minmax_add_value _null_ _null_ _null_ )); -DESCR("BRIN minmax support"); -DATA(insert OID = 3385 ( brin_minmax_consistent PGNSP PGUID 12 1 0 0 0 f f f t f i s 3 0 16 "2281 2281 2281" _null_ _null_ _null_ _null_ _null_ brin_minmax_consistent _null_ _null_ _null_ )); -DESCR("BRIN minmax support"); -DATA(insert OID = 3386 ( brin_minmax_union PGNSP PGUID 12 1 0 0 0 f f f t f i s 3 0 16 "2281 2281 2281" _null_ _null_ _null_ _null_ _null_ brin_minmax_union _null_ _null_ _null_ )); -DESCR("BRIN minmax support"); - -/* BRIN inclusion */ -DATA(insert OID = 4105 ( brin_inclusion_opcinfo PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2281 "2281" _null_ _null_ _null_ _null_ _null_ brin_inclusion_opcinfo _null_ _null_ _null_ )); -DESCR("BRIN inclusion support"); -DATA(insert OID = 4106 ( brin_inclusion_add_value PGNSP PGUID 12 1 0 0 0 f f f t f i s 4 0 16 "2281 2281 2281 2281" _null_ _null_ _null_ _null_ _null_ brin_inclusion_add_value _null_ _null_ _null_ )); -DESCR("BRIN inclusion support"); -DATA(insert OID = 4107 ( brin_inclusion_consistent PGNSP PGUID 12 1 0 0 0 f f f t f i s 3 0 16 "2281 2281 2281" _null_ _null_ _null_ _null_ _null_ brin_inclusion_consistent _null_ _null_ _null_ )); -DESCR("BRIN inclusion support"); -DATA(insert OID = 4108 ( brin_inclusion_union PGNSP PGUID 12 1 0 0 0 f f f t f i s 3 0 16 "2281 2281 2281" _null_ _null_ _null_ _null_ _null_ brin_inclusion_union _null_ _null_ _null_ )); -DESCR("BRIN inclusion support"); - -/* userlock replacements */ -DATA(insert OID = 2880 ( pg_advisory_lock PGNSP PGUID 12 1 0 0 0 f f f t f v u 1 0 2278 "20" _null_ _null_ _null_ _null_ _null_ pg_advisory_lock_int8 _null_ _null_ _null_ )); -DESCR("obtain exclusive advisory lock"); -DATA(insert OID = 3089 ( pg_advisory_xact_lock PGNSP PGUID 12 1 0 0 0 f f f t f v u 1 0 2278 "20" _null_ _null_ _null_ _null_ _null_ pg_advisory_xact_lock_int8 _null_ _null_ _null_ )); -DESCR("obtain exclusive advisory lock"); -DATA(insert OID = 2881 ( pg_advisory_lock_shared PGNSP PGUID 12 1 0 0 0 f f f t f v u 1 0 2278 "20" _null_ _null_ _null_ _null_ _null_ pg_advisory_lock_shared_int8 _null_ _null_ _null_ )); -DESCR("obtain shared advisory lock"); -DATA(insert OID = 3090 ( pg_advisory_xact_lock_shared PGNSP PGUID 12 1 0 0 0 f f f t f v u 1 0 2278 "20" _null_ _null_ _null_ _null_ _null_ pg_advisory_xact_lock_shared_int8 _null_ _null_ _null_ )); -DESCR("obtain shared advisory lock"); -DATA(insert OID = 2882 ( pg_try_advisory_lock PGNSP PGUID 12 1 0 0 0 f f f t f v u 1 0 16 "20" _null_ _null_ _null_ _null_ _null_ pg_try_advisory_lock_int8 _null_ _null_ _null_ )); -DESCR("obtain exclusive advisory lock if available"); -DATA(insert OID = 3091 ( pg_try_advisory_xact_lock PGNSP PGUID 12 1 0 0 0 f f f t f v u 1 0 16 "20" _null_ _null_ _null_ _null_ _null_ pg_try_advisory_xact_lock_int8 _null_ _null_ _null_ )); -DESCR("obtain exclusive advisory lock if available"); -DATA(insert OID = 2883 ( pg_try_advisory_lock_shared PGNSP PGUID 12 1 0 0 0 f f f t f v u 1 0 16 "20" _null_ _null_ _null_ _null_ _null_ pg_try_advisory_lock_shared_int8 _null_ _null_ _null_ )); -DESCR("obtain shared advisory lock if available"); -DATA(insert OID = 3092 ( pg_try_advisory_xact_lock_shared PGNSP PGUID 12 1 0 0 0 f f f t f v u 1 0 16 "20" _null_ _null_ _null_ _null_ _null_ pg_try_advisory_xact_lock_shared_int8 _null_ _null_ _null_ )); -DESCR("obtain shared advisory lock if available"); -DATA(insert OID = 2884 ( pg_advisory_unlock PGNSP PGUID 12 1 0 0 0 f f f t f v u 1 0 16 "20" _null_ _null_ _null_ _null_ _null_ pg_advisory_unlock_int8 _null_ _null_ _null_ )); -DESCR("release exclusive advisory lock"); -DATA(insert OID = 2885 ( pg_advisory_unlock_shared PGNSP PGUID 12 1 0 0 0 f f f t f v u 1 0 16 "20" _null_ _null_ _null_ _null_ _null_ pg_advisory_unlock_shared_int8 _null_ _null_ _null_ )); -DESCR("release shared advisory lock"); -DATA(insert OID = 2886 ( pg_advisory_lock PGNSP PGUID 12 1 0 0 0 f f f t f v u 2 0 2278 "23 23" _null_ _null_ _null_ _null_ _null_ pg_advisory_lock_int4 _null_ _null_ _null_ )); -DESCR("obtain exclusive advisory lock"); -DATA(insert OID = 3093 ( pg_advisory_xact_lock PGNSP PGUID 12 1 0 0 0 f f f t f v u 2 0 2278 "23 23" _null_ _null_ _null_ _null_ _null_ pg_advisory_xact_lock_int4 _null_ _null_ _null_ )); -DESCR("obtain exclusive advisory lock"); -DATA(insert OID = 2887 ( pg_advisory_lock_shared PGNSP PGUID 12 1 0 0 0 f f f t f v u 2 0 2278 "23 23" _null_ _null_ _null_ _null_ _null_ pg_advisory_lock_shared_int4 _null_ _null_ _null_ )); -DESCR("obtain shared advisory lock"); -DATA(insert OID = 3094 ( pg_advisory_xact_lock_shared PGNSP PGUID 12 1 0 0 0 f f f t f v u 2 0 2278 "23 23" _null_ _null_ _null_ _null_ _null_ pg_advisory_xact_lock_shared_int4 _null_ _null_ _null_ )); -DESCR("obtain shared advisory lock"); -DATA(insert OID = 2888 ( pg_try_advisory_lock PGNSP PGUID 12 1 0 0 0 f f f t f v u 2 0 16 "23 23" _null_ _null_ _null_ _null_ _null_ pg_try_advisory_lock_int4 _null_ _null_ _null_ )); -DESCR("obtain exclusive advisory lock if available"); -DATA(insert OID = 3095 ( pg_try_advisory_xact_lock PGNSP PGUID 12 1 0 0 0 f f f t f v u 2 0 16 "23 23" _null_ _null_ _null_ _null_ _null_ pg_try_advisory_xact_lock_int4 _null_ _null_ _null_ )); -DESCR("obtain exclusive advisory lock if available"); -DATA(insert OID = 2889 ( pg_try_advisory_lock_shared PGNSP PGUID 12 1 0 0 0 f f f t f v u 2 0 16 "23 23" _null_ _null_ _null_ _null_ _null_ pg_try_advisory_lock_shared_int4 _null_ _null_ _null_ )); -DESCR("obtain shared advisory lock if available"); -DATA(insert OID = 3096 ( pg_try_advisory_xact_lock_shared PGNSP PGUID 12 1 0 0 0 f f f t f v u 2 0 16 "23 23" _null_ _null_ _null_ _null_ _null_ pg_try_advisory_xact_lock_shared_int4 _null_ _null_ _null_ )); -DESCR("obtain shared advisory lock if available"); -DATA(insert OID = 2890 ( pg_advisory_unlock PGNSP PGUID 12 1 0 0 0 f f f t f v u 2 0 16 "23 23" _null_ _null_ _null_ _null_ _null_ pg_advisory_unlock_int4 _null_ _null_ _null_ )); -DESCR("release exclusive advisory lock"); -DATA(insert OID = 2891 ( pg_advisory_unlock_shared PGNSP PGUID 12 1 0 0 0 f f f t f v u 2 0 16 "23 23" _null_ _null_ _null_ _null_ _null_ pg_advisory_unlock_shared_int4 _null_ _null_ _null_ )); -DESCR("release shared advisory lock"); -DATA(insert OID = 2892 ( pg_advisory_unlock_all PGNSP PGUID 12 1 0 0 0 f f f t f v u 0 0 2278 "" _null_ _null_ _null_ _null_ _null_ pg_advisory_unlock_all _null_ _null_ _null_ )); -DESCR("release all advisory locks"); - -/* XML support */ -DATA(insert OID = 2893 ( xml_in PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 142 "2275" _null_ _null_ _null_ _null_ _null_ xml_in _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2894 ( xml_out PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2275 "142" _null_ _null_ _null_ _null_ _null_ xml_out _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2895 ( xmlcomment PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 142 "25" _null_ _null_ _null_ _null_ _null_ xmlcomment _null_ _null_ _null_ )); -DESCR("generate XML comment"); -DATA(insert OID = 2896 ( xml PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 142 "25" _null_ _null_ _null_ _null_ _null_ texttoxml _null_ _null_ _null_ )); -DESCR("perform a non-validating parse of a character string to produce an XML value"); -DATA(insert OID = 2897 ( xmlvalidate PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "142 25" _null_ _null_ _null_ _null_ _null_ xmlvalidate _null_ _null_ _null_ )); -DESCR("validate an XML value"); -DATA(insert OID = 2898 ( xml_recv PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 142 "2281" _null_ _null_ _null_ _null_ _null_ xml_recv _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2899 ( xml_send PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 17 "142" _null_ _null_ _null_ _null_ _null_ xml_send _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2900 ( xmlconcat2 PGNSP PGUID 12 1 0 0 0 f f f f f i s 2 0 142 "142 142" _null_ _null_ _null_ _null_ _null_ xmlconcat2 _null_ _null_ _null_ )); -DESCR("aggregate transition function"); -DATA(insert OID = 2901 ( xmlagg PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 142 "142" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("concatenate XML values"); -DATA(insert OID = 2922 ( text PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 25 "142" _null_ _null_ _null_ _null_ _null_ xmltotext _null_ _null_ _null_ )); -DESCR("serialize an XML value to a character string"); - -DATA(insert OID = 2923 ( table_to_xml PGNSP PGUID 12 100 0 0 0 f f f t f s r 4 0 142 "2205 16 16 25" _null_ _null_ "{tbl,nulls,tableforest,targetns}" _null_ _null_ table_to_xml _null_ _null_ _null_ )); -DESCR("map table contents to XML"); -DATA(insert OID = 2924 ( query_to_xml PGNSP PGUID 12 100 0 0 0 f f f t f v u 4 0 142 "25 16 16 25" _null_ _null_ "{query,nulls,tableforest,targetns}" _null_ _null_ query_to_xml _null_ _null_ _null_ )); -DESCR("map query result to XML"); -DATA(insert OID = 2925 ( cursor_to_xml PGNSP PGUID 12 100 0 0 0 f f f t f v u 5 0 142 "1790 23 16 16 25" _null_ _null_ "{cursor,count,nulls,tableforest,targetns}" _null_ _null_ cursor_to_xml _null_ _null_ _null_ )); -DESCR("map rows from cursor to XML"); -DATA(insert OID = 2926 ( table_to_xmlschema PGNSP PGUID 12 100 0 0 0 f f f t f s r 4 0 142 "2205 16 16 25" _null_ _null_ "{tbl,nulls,tableforest,targetns}" _null_ _null_ table_to_xmlschema _null_ _null_ _null_ )); -DESCR("map table structure to XML Schema"); -DATA(insert OID = 2927 ( query_to_xmlschema PGNSP PGUID 12 100 0 0 0 f f f t f v u 4 0 142 "25 16 16 25" _null_ _null_ "{query,nulls,tableforest,targetns}" _null_ _null_ query_to_xmlschema _null_ _null_ _null_ )); -DESCR("map query result structure to XML Schema"); -DATA(insert OID = 2928 ( cursor_to_xmlschema PGNSP PGUID 12 100 0 0 0 f f f t f v u 4 0 142 "1790 16 16 25" _null_ _null_ "{cursor,nulls,tableforest,targetns}" _null_ _null_ cursor_to_xmlschema _null_ _null_ _null_ )); -DESCR("map cursor structure to XML Schema"); -DATA(insert OID = 2929 ( table_to_xml_and_xmlschema PGNSP PGUID 12 100 0 0 0 f f f t f s r 4 0 142 "2205 16 16 25" _null_ _null_ "{tbl,nulls,tableforest,targetns}" _null_ _null_ table_to_xml_and_xmlschema _null_ _null_ _null_ )); -DESCR("map table contents and structure to XML and XML Schema"); -DATA(insert OID = 2930 ( query_to_xml_and_xmlschema PGNSP PGUID 12 100 0 0 0 f f f t f v u 4 0 142 "25 16 16 25" _null_ _null_ "{query,nulls,tableforest,targetns}" _null_ _null_ query_to_xml_and_xmlschema _null_ _null_ _null_ )); -DESCR("map query result and structure to XML and XML Schema"); - -DATA(insert OID = 2933 ( schema_to_xml PGNSP PGUID 12 100 0 0 0 f f f t f s r 4 0 142 "19 16 16 25" _null_ _null_ "{schema,nulls,tableforest,targetns}" _null_ _null_ schema_to_xml _null_ _null_ _null_ )); -DESCR("map schema contents to XML"); -DATA(insert OID = 2934 ( schema_to_xmlschema PGNSP PGUID 12 100 0 0 0 f f f t f s r 4 0 142 "19 16 16 25" _null_ _null_ "{schema,nulls,tableforest,targetns}" _null_ _null_ schema_to_xmlschema _null_ _null_ _null_ )); -DESCR("map schema structure to XML Schema"); -DATA(insert OID = 2935 ( schema_to_xml_and_xmlschema PGNSP PGUID 12 100 0 0 0 f f f t f s r 4 0 142 "19 16 16 25" _null_ _null_ "{schema,nulls,tableforest,targetns}" _null_ _null_ schema_to_xml_and_xmlschema _null_ _null_ _null_ )); -DESCR("map schema contents and structure to XML and XML Schema"); - -DATA(insert OID = 2936 ( database_to_xml PGNSP PGUID 12 100 0 0 0 f f f t f s r 3 0 142 "16 16 25" _null_ _null_ "{nulls,tableforest,targetns}" _null_ _null_ database_to_xml _null_ _null_ _null_ )); -DESCR("map database contents to XML"); -DATA(insert OID = 2937 ( database_to_xmlschema PGNSP PGUID 12 100 0 0 0 f f f t f s r 3 0 142 "16 16 25" _null_ _null_ "{nulls,tableforest,targetns}" _null_ _null_ database_to_xmlschema _null_ _null_ _null_ )); -DESCR("map database structure to XML Schema"); -DATA(insert OID = 2938 ( database_to_xml_and_xmlschema PGNSP PGUID 12 100 0 0 0 f f f t f s r 3 0 142 "16 16 25" _null_ _null_ "{nulls,tableforest,targetns}" _null_ _null_ database_to_xml_and_xmlschema _null_ _null_ _null_ )); -DESCR("map database contents and structure to XML and XML Schema"); - -DATA(insert OID = 2931 ( xpath PGNSP PGUID 12 1 0 0 0 f f f t f i s 3 0 143 "25 142 1009" _null_ _null_ _null_ _null_ _null_ xpath _null_ _null_ _null_ )); -DESCR("evaluate XPath expression, with namespaces support"); -DATA(insert OID = 2932 ( xpath PGNSP PGUID 14 1 0 0 0 f f f t f i s 2 0 143 "25 142" _null_ _null_ _null_ _null_ _null_ "select pg_catalog.xpath($1, $2, ''{}''::pg_catalog.text[])" _null_ _null_ _null_ )); -DESCR("evaluate XPath expression"); - -DATA(insert OID = 2614 ( xmlexists PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "25 142" _null_ _null_ _null_ _null_ _null_ xmlexists _null_ _null_ _null_ )); -DESCR("test XML value against XPath expression"); - -DATA(insert OID = 3049 ( xpath_exists PGNSP PGUID 12 1 0 0 0 f f f t f i s 3 0 16 "25 142 1009" _null_ _null_ _null_ _null_ _null_ xpath_exists _null_ _null_ _null_ )); -DESCR("test XML value against XPath expression, with namespace support"); -DATA(insert OID = 3050 ( xpath_exists PGNSP PGUID 14 1 0 0 0 f f f t f i s 2 0 16 "25 142" _null_ _null_ _null_ _null_ _null_ "select pg_catalog.xpath_exists($1, $2, ''{}''::pg_catalog.text[])" _null_ _null_ _null_ )); -DESCR("test XML value against XPath expression"); -DATA(insert OID = 3051 ( xml_is_well_formed PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 16 "25" _null_ _null_ _null_ _null_ _null_ xml_is_well_formed _null_ _null_ _null_ )); -DESCR("determine if a string is well formed XML"); -DATA(insert OID = 3052 ( xml_is_well_formed_document PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 16 "25" _null_ _null_ _null_ _null_ _null_ xml_is_well_formed_document _null_ _null_ _null_ )); -DESCR("determine if a string is well formed XML document"); -DATA(insert OID = 3053 ( xml_is_well_formed_content PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 16 "25" _null_ _null_ _null_ _null_ _null_ xml_is_well_formed_content _null_ _null_ _null_ )); -DESCR("determine if a string is well formed XML content"); - -/* json */ -DATA(insert OID = 321 ( json_in PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 114 "2275" _null_ _null_ _null_ _null_ _null_ json_in _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 322 ( json_out PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2275 "114" _null_ _null_ _null_ _null_ _null_ json_out _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 323 ( json_recv PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 114 "2281" _null_ _null_ _null_ _null_ _null_ json_recv _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 324 ( json_send PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 17 "114" _null_ _null_ _null_ _null_ _null_ json_send _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 3153 ( array_to_json PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 114 "2277" _null_ _null_ _null_ _null_ _null_ array_to_json _null_ _null_ _null_ )); -DESCR("map array to json"); -DATA(insert OID = 3154 ( array_to_json PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 114 "2277 16" _null_ _null_ _null_ _null_ _null_ array_to_json_pretty _null_ _null_ _null_ )); -DESCR("map array to json with optional pretty printing"); -DATA(insert OID = 3155 ( row_to_json PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 114 "2249" _null_ _null_ _null_ _null_ _null_ row_to_json _null_ _null_ _null_ )); -DESCR("map row to json"); -DATA(insert OID = 3156 ( row_to_json PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 114 "2249 16" _null_ _null_ _null_ _null_ _null_ row_to_json_pretty _null_ _null_ _null_ )); -DESCR("map row to json with optional pretty printing"); -DATA(insert OID = 3173 ( json_agg_transfn PGNSP PGUID 12 1 0 0 0 f f f f f s s 2 0 2281 "2281 2283" _null_ _null_ _null_ _null_ _null_ json_agg_transfn _null_ _null_ _null_ )); -DESCR("json aggregate transition function"); -DATA(insert OID = 3174 ( json_agg_finalfn PGNSP PGUID 12 1 0 0 0 f f f f f i s 1 0 114 "2281" _null_ _null_ _null_ _null_ _null_ json_agg_finalfn _null_ _null_ _null_ )); -DESCR("json aggregate final function"); -DATA(insert OID = 3175 ( json_agg PGNSP PGUID 12 1 0 0 0 a f f f f s s 1 0 114 "2283" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("aggregate input into json"); -DATA(insert OID = 3180 ( json_object_agg_transfn PGNSP PGUID 12 1 0 0 0 f f f f f s s 3 0 2281 "2281 2276 2276" _null_ _null_ _null_ _null_ _null_ json_object_agg_transfn _null_ _null_ _null_ )); -DESCR("json object aggregate transition function"); -DATA(insert OID = 3196 ( json_object_agg_finalfn PGNSP PGUID 12 1 0 0 0 f f f f f i s 1 0 114 "2281" _null_ _null_ _null_ _null_ _null_ json_object_agg_finalfn _null_ _null_ _null_ )); -DESCR("json object aggregate final function"); -DATA(insert OID = 3197 ( json_object_agg PGNSP PGUID 12 1 0 0 0 a f f f f s s 2 0 114 "2276 2276" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("aggregate input into a json object"); -DATA(insert OID = 3198 ( json_build_array PGNSP PGUID 12 1 0 2276 0 f f f f f s s 1 0 114 "2276" "{2276}" "{v}" _null_ _null_ _null_ json_build_array _null_ _null_ _null_ )); -DESCR("build a json array from any inputs"); -DATA(insert OID = 3199 ( json_build_array PGNSP PGUID 12 1 0 0 0 f f f f f s s 0 0 114 "" _null_ _null_ _null_ _null_ _null_ json_build_array_noargs _null_ _null_ _null_ )); -DESCR("build an empty json array"); -DATA(insert OID = 3200 ( json_build_object PGNSP PGUID 12 1 0 2276 0 f f f f f s s 1 0 114 "2276" "{2276}" "{v}" _null_ _null_ _null_ json_build_object _null_ _null_ _null_ )); -DESCR("build a json object from pairwise key/value inputs"); -DATA(insert OID = 3201 ( json_build_object PGNSP PGUID 12 1 0 0 0 f f f f f s s 0 0 114 "" _null_ _null_ _null_ _null_ _null_ json_build_object_noargs _null_ _null_ _null_ )); -DESCR("build an empty json object"); -DATA(insert OID = 3202 ( json_object PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 114 "1009" _null_ _null_ _null_ _null_ _null_ json_object _null_ _null_ _null_ )); -DESCR("map text array of key value pairs to json object"); -DATA(insert OID = 3203 ( json_object PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 114 "1009 1009" _null_ _null_ _null_ _null_ _null_ json_object_two_arg _null_ _null_ _null_ )); -DESCR("map text arrays of keys and values to json object"); -DATA(insert OID = 3176 ( to_json PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 114 "2283" _null_ _null_ _null_ _null_ _null_ to_json _null_ _null_ _null_ )); -DESCR("map input to json"); -DATA(insert OID = 3261 ( json_strip_nulls PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 114 "114" _null_ _null_ _null_ _null_ _null_ json_strip_nulls _null_ _null_ _null_ )); -DESCR("remove object fields with null values from json"); - -DATA(insert OID = 3947 ( json_object_field PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 114 "114 25" _null_ _null_ "{from_json, field_name}" _null_ _null_ json_object_field _null_ _null_ _null_ )); -DATA(insert OID = 3948 ( json_object_field_text PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 25 "114 25" _null_ _null_ "{from_json, field_name}" _null_ _null_ json_object_field_text _null_ _null_ _null_ )); -DATA(insert OID = 3949 ( json_array_element PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 114 "114 23" _null_ _null_ "{from_json, element_index}" _null_ _null_ json_array_element _null_ _null_ _null_ )); -DATA(insert OID = 3950 ( json_array_element_text PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 25 "114 23" _null_ _null_ "{from_json, element_index}" _null_ _null_ json_array_element_text _null_ _null_ _null_ )); -DATA(insert OID = 3951 ( json_extract_path PGNSP PGUID 12 1 0 25 0 f f f t f i s 2 0 114 "114 1009" "{114,1009}" "{i,v}" "{from_json,path_elems}" _null_ _null_ json_extract_path _null_ _null_ _null_ )); -DESCR("get value from json with path elements"); -DATA(insert OID = 3953 ( json_extract_path_text PGNSP PGUID 12 1 0 25 0 f f f t f i s 2 0 25 "114 1009" "{114,1009}" "{i,v}" "{from_json,path_elems}" _null_ _null_ json_extract_path_text _null_ _null_ _null_ )); -DESCR("get value from json as text with path elements"); -DATA(insert OID = 3955 ( json_array_elements PGNSP PGUID 12 1 100 0 0 f f f t t i s 1 0 114 "114" "{114,114}" "{i,o}" "{from_json,value}" _null_ _null_ json_array_elements _null_ _null_ _null_ )); -DESCR("key value pairs of a json object"); -DATA(insert OID = 3969 ( json_array_elements_text PGNSP PGUID 12 1 100 0 0 f f f t t i s 1 0 25 "114" "{114,25}" "{i,o}" "{from_json,value}" _null_ _null_ json_array_elements_text _null_ _null_ _null_ )); -DESCR("elements of json array"); -DATA(insert OID = 3956 ( json_array_length PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "114" _null_ _null_ _null_ _null_ _null_ json_array_length _null_ _null_ _null_ )); -DESCR("length of json array"); -DATA(insert OID = 3957 ( json_object_keys PGNSP PGUID 12 1 100 0 0 f f f t t i s 1 0 25 "114" _null_ _null_ _null_ _null_ _null_ json_object_keys _null_ _null_ _null_ )); -DESCR("get json object keys"); -DATA(insert OID = 3958 ( json_each PGNSP PGUID 12 1 100 0 0 f f f t t i s 1 0 2249 "114" "{114,25,114}" "{i,o,o}" "{from_json,key,value}" _null_ _null_ json_each _null_ _null_ _null_ )); -DESCR("key value pairs of a json object"); -DATA(insert OID = 3959 ( json_each_text PGNSP PGUID 12 1 100 0 0 f f f t t i s 1 0 2249 "114" "{114,25,25}" "{i,o,o}" "{from_json,key,value}" _null_ _null_ json_each_text _null_ _null_ _null_ )); -DESCR("key value pairs of a json object"); -DATA(insert OID = 3960 ( json_populate_record PGNSP PGUID 12 1 0 0 0 f f f f f s s 3 0 2283 "2283 114 16" _null_ _null_ _null_ _null_ _null_ json_populate_record _null_ _null_ _null_ )); -DESCR("get record fields from a json object"); -DATA(insert OID = 3961 ( json_populate_recordset PGNSP PGUID 12 1 100 0 0 f f f f t s s 3 0 2283 "2283 114 16" _null_ _null_ _null_ _null_ _null_ json_populate_recordset _null_ _null_ _null_ )); -DESCR("get set of records with fields from a json array of objects"); -DATA(insert OID = 3204 ( json_to_record PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 2249 "114" _null_ _null_ _null_ _null_ _null_ json_to_record _null_ _null_ _null_ )); -DESCR("get record fields from a json object"); -DATA(insert OID = 3205 ( json_to_recordset PGNSP PGUID 12 1 100 0 0 f f f f t s s 1 0 2249 "114" _null_ _null_ _null_ _null_ _null_ json_to_recordset _null_ _null_ _null_ )); -DESCR("get set of records with fields from a json array of objects"); -DATA(insert OID = 3968 ( json_typeof PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 25 "114" _null_ _null_ _null_ _null_ _null_ json_typeof _null_ _null_ _null_ )); -DESCR("get the type of a json value"); - -/* uuid */ -DATA(insert OID = 2952 ( uuid_in PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2950 "2275" _null_ _null_ _null_ _null_ _null_ uuid_in _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2953 ( uuid_out PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2275 "2950" _null_ _null_ _null_ _null_ _null_ uuid_out _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2954 ( uuid_lt PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "2950 2950" _null_ _null_ _null_ _null_ _null_ uuid_lt _null_ _null_ _null_ )); -DATA(insert OID = 2955 ( uuid_le PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "2950 2950" _null_ _null_ _null_ _null_ _null_ uuid_le _null_ _null_ _null_ )); -DATA(insert OID = 2956 ( uuid_eq PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "2950 2950" _null_ _null_ _null_ _null_ _null_ uuid_eq _null_ _null_ _null_ )); -DATA(insert OID = 2957 ( uuid_ge PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "2950 2950" _null_ _null_ _null_ _null_ _null_ uuid_ge _null_ _null_ _null_ )); -DATA(insert OID = 2958 ( uuid_gt PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "2950 2950" _null_ _null_ _null_ _null_ _null_ uuid_gt _null_ _null_ _null_ )); -DATA(insert OID = 2959 ( uuid_ne PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "2950 2950" _null_ _null_ _null_ _null_ _null_ uuid_ne _null_ _null_ _null_ )); -DATA(insert OID = 2960 ( uuid_cmp PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "2950 2950" _null_ _null_ _null_ _null_ _null_ uuid_cmp _null_ _null_ _null_ )); -DESCR("less-equal-greater"); -DATA(insert OID = 3300 ( uuid_sortsupport PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2278 "2281" _null_ _null_ _null_ _null_ _null_ uuid_sortsupport _null_ _null_ _null_ )); -DESCR("sort support"); -DATA(insert OID = 2961 ( uuid_recv PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2950 "2281" _null_ _null_ _null_ _null_ _null_ uuid_recv _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2962 ( uuid_send PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 17 "2950" _null_ _null_ _null_ _null_ _null_ uuid_send _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2963 ( uuid_hash PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "2950" _null_ _null_ _null_ _null_ _null_ uuid_hash _null_ _null_ _null_ )); -DESCR("hash"); -DATA(insert OID = 3412 ( uuid_hash_extended PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 20 "2950 20" _null_ _null_ _null_ _null_ _null_ uuid_hash_extended _null_ _null_ _null_ )); -DESCR("hash"); - -/* pg_lsn */ -DATA(insert OID = 3229 ( pg_lsn_in PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 3220 "2275" _null_ _null_ _null_ _null_ _null_ pg_lsn_in _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 3230 ( pg_lsn_out PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2275 "3220" _null_ _null_ _null_ _null_ _null_ pg_lsn_out _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 3231 ( pg_lsn_lt PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "3220 3220" _null_ _null_ _null_ _null_ _null_ pg_lsn_lt _null_ _null_ _null_ )); -DATA(insert OID = 3232 ( pg_lsn_le PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "3220 3220" _null_ _null_ _null_ _null_ _null_ pg_lsn_le _null_ _null_ _null_ )); -DATA(insert OID = 3233 ( pg_lsn_eq PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "3220 3220" _null_ _null_ _null_ _null_ _null_ pg_lsn_eq _null_ _null_ _null_ )); -DATA(insert OID = 3234 ( pg_lsn_ge PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "3220 3220" _null_ _null_ _null_ _null_ _null_ pg_lsn_ge _null_ _null_ _null_ )); -DATA(insert OID = 3235 ( pg_lsn_gt PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "3220 3220" _null_ _null_ _null_ _null_ _null_ pg_lsn_gt _null_ _null_ _null_ )); -DATA(insert OID = 3236 ( pg_lsn_ne PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "3220 3220" _null_ _null_ _null_ _null_ _null_ pg_lsn_ne _null_ _null_ _null_ )); -DATA(insert OID = 3237 ( pg_lsn_mi PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1700 "3220 3220" _null_ _null_ _null_ _null_ _null_ pg_lsn_mi _null_ _null_ _null_ )); -DATA(insert OID = 3238 ( pg_lsn_recv PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 3220 "2281" _null_ _null_ _null_ _null_ _null_ pg_lsn_recv _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 3239 ( pg_lsn_send PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 17 "3220" _null_ _null_ _null_ _null_ _null_ pg_lsn_send _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 3251 ( pg_lsn_cmp PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "3220 3220" _null_ _null_ _null_ _null_ _null_ pg_lsn_cmp _null_ _null_ _null_ )); -DESCR("less-equal-greater"); -DATA(insert OID = 3252 ( pg_lsn_hash PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "3220" _null_ _null_ _null_ _null_ _null_ pg_lsn_hash _null_ _null_ _null_ )); -DESCR("hash"); -DATA(insert OID = 3413 ( pg_lsn_hash_extended PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 20 "3220 20" _null_ _null_ _null_ _null_ _null_ pg_lsn_hash_extended _null_ _null_ _null_ )); -DESCR("hash"); - -/* enum related procs */ -DATA(insert OID = 3504 ( anyenum_in PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 3500 "2275" _null_ _null_ _null_ _null_ _null_ anyenum_in _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 3505 ( anyenum_out PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 2275 "3500" _null_ _null_ _null_ _null_ _null_ anyenum_out _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 3506 ( enum_in PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 3500 "2275 26" _null_ _null_ _null_ _null_ _null_ enum_in _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 3507 ( enum_out PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 2275 "3500" _null_ _null_ _null_ _null_ _null_ enum_out _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 3508 ( enum_eq PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "3500 3500" _null_ _null_ _null_ _null_ _null_ enum_eq _null_ _null_ _null_ )); -DATA(insert OID = 3509 ( enum_ne PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "3500 3500" _null_ _null_ _null_ _null_ _null_ enum_ne _null_ _null_ _null_ )); -DATA(insert OID = 3510 ( enum_lt PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "3500 3500" _null_ _null_ _null_ _null_ _null_ enum_lt _null_ _null_ _null_ )); -DATA(insert OID = 3511 ( enum_gt PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "3500 3500" _null_ _null_ _null_ _null_ _null_ enum_gt _null_ _null_ _null_ )); -DATA(insert OID = 3512 ( enum_le PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "3500 3500" _null_ _null_ _null_ _null_ _null_ enum_le _null_ _null_ _null_ )); -DATA(insert OID = 3513 ( enum_ge PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "3500 3500" _null_ _null_ _null_ _null_ _null_ enum_ge _null_ _null_ _null_ )); -DATA(insert OID = 3514 ( enum_cmp PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "3500 3500" _null_ _null_ _null_ _null_ _null_ enum_cmp _null_ _null_ _null_ )); -DESCR("less-equal-greater"); -DATA(insert OID = 3515 ( hashenum PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "3500" _null_ _null_ _null_ _null_ _null_ hashenum _null_ _null_ _null_ )); -DESCR("hash"); -DATA(insert OID = 3414 ( hashenumextended PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 20 "3500 20" _null_ _null_ _null_ _null_ _null_ hashenumextended _null_ _null_ _null_ )); -DESCR("hash"); -DATA(insert OID = 3524 ( enum_smaller PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 3500 "3500 3500" _null_ _null_ _null_ _null_ _null_ enum_smaller _null_ _null_ _null_ )); -DESCR("smaller of two"); -DATA(insert OID = 3525 ( enum_larger PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 3500 "3500 3500" _null_ _null_ _null_ _null_ _null_ enum_larger _null_ _null_ _null_ )); -DESCR("larger of two"); -DATA(insert OID = 3526 ( max PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 3500 "3500" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("maximum value of all enum input values"); -DATA(insert OID = 3527 ( min PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 3500 "3500" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("minimum value of all enum input values"); -DATA(insert OID = 3528 ( enum_first PGNSP PGUID 12 1 0 0 0 f f f f f s s 1 0 3500 "3500" _null_ _null_ _null_ _null_ _null_ enum_first _null_ _null_ _null_ )); -DESCR("first value of the input enum type"); -DATA(insert OID = 3529 ( enum_last PGNSP PGUID 12 1 0 0 0 f f f f f s s 1 0 3500 "3500" _null_ _null_ _null_ _null_ _null_ enum_last _null_ _null_ _null_ )); -DESCR("last value of the input enum type"); -DATA(insert OID = 3530 ( enum_range PGNSP PGUID 12 1 0 0 0 f f f f f s s 2 0 2277 "3500 3500" _null_ _null_ _null_ _null_ _null_ enum_range_bounds _null_ _null_ _null_ )); -DESCR("range between the two given enum values, as an ordered array"); -DATA(insert OID = 3531 ( enum_range PGNSP PGUID 12 1 0 0 0 f f f f f s s 1 0 2277 "3500" _null_ _null_ _null_ _null_ _null_ enum_range_all _null_ _null_ _null_ )); -DESCR("range of the given enum type, as an ordered array"); -DATA(insert OID = 3532 ( enum_recv PGNSP PGUID 12 1 0 0 0 f f f t f s s 2 0 3500 "2281 26" _null_ _null_ _null_ _null_ _null_ enum_recv _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 3533 ( enum_send PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 17 "3500" _null_ _null_ _null_ _null_ _null_ enum_send _null_ _null_ _null_ )); -DESCR("I/O"); - -/* text search stuff */ -DATA(insert OID = 3610 ( tsvectorin PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 3614 "2275" _null_ _null_ _null_ _null_ _null_ tsvectorin _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 3639 ( tsvectorrecv PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 3614 "2281" _null_ _null_ _null_ _null_ _null_ tsvectorrecv _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 3611 ( tsvectorout PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2275 "3614" _null_ _null_ _null_ _null_ _null_ tsvectorout _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 3638 ( tsvectorsend PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 17 "3614" _null_ _null_ _null_ _null_ _null_ tsvectorsend _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 3612 ( tsqueryin PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 3615 "2275" _null_ _null_ _null_ _null_ _null_ tsqueryin _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 3641 ( tsqueryrecv PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 3615 "2281" _null_ _null_ _null_ _null_ _null_ tsqueryrecv _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 3613 ( tsqueryout PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2275 "3615" _null_ _null_ _null_ _null_ _null_ tsqueryout _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 3640 ( tsquerysend PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 17 "3615" _null_ _null_ _null_ _null_ _null_ tsquerysend _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 3646 ( gtsvectorin PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 3642 "2275" _null_ _null_ _null_ _null_ _null_ gtsvectorin _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 3647 ( gtsvectorout PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2275 "3642" _null_ _null_ _null_ _null_ _null_ gtsvectorout _null_ _null_ _null_ )); -DESCR("I/O"); - -DATA(insert OID = 3616 ( tsvector_lt PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "3614 3614" _null_ _null_ _null_ _null_ _null_ tsvector_lt _null_ _null_ _null_ )); -DATA(insert OID = 3617 ( tsvector_le PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "3614 3614" _null_ _null_ _null_ _null_ _null_ tsvector_le _null_ _null_ _null_ )); -DATA(insert OID = 3618 ( tsvector_eq PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "3614 3614" _null_ _null_ _null_ _null_ _null_ tsvector_eq _null_ _null_ _null_ )); -DATA(insert OID = 3619 ( tsvector_ne PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "3614 3614" _null_ _null_ _null_ _null_ _null_ tsvector_ne _null_ _null_ _null_ )); -DATA(insert OID = 3620 ( tsvector_ge PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "3614 3614" _null_ _null_ _null_ _null_ _null_ tsvector_ge _null_ _null_ _null_ )); -DATA(insert OID = 3621 ( tsvector_gt PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "3614 3614" _null_ _null_ _null_ _null_ _null_ tsvector_gt _null_ _null_ _null_ )); -DATA(insert OID = 3622 ( tsvector_cmp PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "3614 3614" _null_ _null_ _null_ _null_ _null_ tsvector_cmp _null_ _null_ _null_ )); -DESCR("less-equal-greater"); - -DATA(insert OID = 3711 ( length PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "3614" _null_ _null_ _null_ _null_ _null_ tsvector_length _null_ _null_ _null_ )); -DESCR("number of lexemes"); -DATA(insert OID = 3623 ( strip PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 3614 "3614" _null_ _null_ _null_ _null_ _null_ tsvector_strip _null_ _null_ _null_ )); -DESCR("strip position information"); -DATA(insert OID = 3624 ( setweight PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 3614 "3614 18" _null_ _null_ _null_ _null_ _null_ tsvector_setweight _null_ _null_ _null_ )); -DESCR("set given weight for whole tsvector"); -DATA(insert OID = 3320 ( setweight PGNSP PGUID 12 1 0 0 0 f f f t f i s 3 0 3614 "3614 18 1009" _null_ _null_ _null_ _null_ _null_ tsvector_setweight_by_filter _null_ _null_ _null_ )); -DESCR("set given weight for given lexemes"); -DATA(insert OID = 3625 ( tsvector_concat PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 3614 "3614 3614" _null_ _null_ _null_ _null_ _null_ tsvector_concat _null_ _null_ _null_ )); -DATA(insert OID = 3321 ( ts_delete PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 3614 "3614 25" _null_ _null_ _null_ _null_ _null_ tsvector_delete_str _null_ _null_ _null_ )); -DESCR("delete lexeme"); -DATA(insert OID = 3323 ( ts_delete PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 3614 "3614 1009" _null_ _null_ _null_ _null_ _null_ tsvector_delete_arr _null_ _null_ _null_ )); -DESCR("delete given lexemes"); -DATA(insert OID = 3322 ( unnest PGNSP PGUID 12 1 10 0 0 f f f t t i s 1 0 2249 "3614" "{3614,25,1005,1009}" "{i,o,o,o}" "{tsvector,lexeme,positions,weights}" _null_ _null_ tsvector_unnest _null_ _null_ _null_ )); -DESCR("expand tsvector to set of rows"); -DATA(insert OID = 3326 ( tsvector_to_array PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 1009 "3614" _null_ _null_ _null_ _null_ _null_ tsvector_to_array _null_ _null_ _null_ )); -DESCR("convert tsvector to array of lexemes"); -DATA(insert OID = 3327 ( array_to_tsvector PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 3614 "1009" _null_ _null_ _null_ _null_ _null_ array_to_tsvector _null_ _null_ _null_ )); -DESCR("build tsvector from array of lexemes"); -DATA(insert OID = 3319 ( ts_filter PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 3614 "3614 1002" _null_ _null_ _null_ _null_ _null_ tsvector_filter _null_ _null_ _null_ )); -DESCR("delete lexemes that do not have one of the given weights"); - -DATA(insert OID = 3634 ( ts_match_vq PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "3614 3615" _null_ _null_ _null_ _null_ _null_ ts_match_vq _null_ _null_ _null_ )); -DATA(insert OID = 3635 ( ts_match_qv PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "3615 3614" _null_ _null_ _null_ _null_ _null_ ts_match_qv _null_ _null_ _null_ )); -DATA(insert OID = 3760 ( ts_match_tt PGNSP PGUID 12 100 0 0 0 f f f t f s s 2 0 16 "25 25" _null_ _null_ _null_ _null_ _null_ ts_match_tt _null_ _null_ _null_ )); -DATA(insert OID = 3761 ( ts_match_tq PGNSP PGUID 12 100 0 0 0 f f f t f s s 2 0 16 "25 3615" _null_ _null_ _null_ _null_ _null_ ts_match_tq _null_ _null_ _null_ )); - -DATA(insert OID = 3648 ( gtsvector_compress PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2281 "2281" _null_ _null_ _null_ _null_ _null_ gtsvector_compress _null_ _null_ _null_ )); -DESCR("GiST tsvector support"); -DATA(insert OID = 3649 ( gtsvector_decompress PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2281 "2281" _null_ _null_ _null_ _null_ _null_ gtsvector_decompress _null_ _null_ _null_ )); -DESCR("GiST tsvector support"); -DATA(insert OID = 3650 ( gtsvector_picksplit PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 2281 "2281 2281" _null_ _null_ _null_ _null_ _null_ gtsvector_picksplit _null_ _null_ _null_ )); -DESCR("GiST tsvector support"); -DATA(insert OID = 3651 ( gtsvector_union PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 3642 "2281 2281" _null_ _null_ _null_ _null_ _null_ gtsvector_union _null_ _null_ _null_ )); -DESCR("GiST tsvector support"); -DATA(insert OID = 3652 ( gtsvector_same PGNSP PGUID 12 1 0 0 0 f f f t f i s 3 0 2281 "3642 3642 2281" _null_ _null_ _null_ _null_ _null_ gtsvector_same _null_ _null_ _null_ )); -DESCR("GiST tsvector support"); -DATA(insert OID = 3653 ( gtsvector_penalty PGNSP PGUID 12 1 0 0 0 f f f t f i s 3 0 2281 "2281 2281 2281" _null_ _null_ _null_ _null_ _null_ gtsvector_penalty _null_ _null_ _null_ )); -DESCR("GiST tsvector support"); -DATA(insert OID = 3654 ( gtsvector_consistent PGNSP PGUID 12 1 0 0 0 f f f t f i s 5 0 16 "2281 3614 21 26 2281" _null_ _null_ _null_ _null_ _null_ gtsvector_consistent _null_ _null_ _null_ )); -DESCR("GiST tsvector support"); -DATA(insert OID = 3790 ( gtsvector_consistent PGNSP PGUID 12 1 0 0 0 f f f t f i s 5 0 16 "2281 3642 23 26 2281" _null_ _null_ _null_ _null_ _null_ gtsvector_consistent_oldsig _null_ _null_ _null_ )); -DESCR("GiST tsvector support (obsolete)"); - -DATA(insert OID = 3656 ( gin_extract_tsvector PGNSP PGUID 12 1 0 0 0 f f f t f i s 3 0 2281 "3614 2281 2281" _null_ _null_ _null_ _null_ _null_ gin_extract_tsvector _null_ _null_ _null_ )); -DESCR("GIN tsvector support"); -DATA(insert OID = 3657 ( gin_extract_tsquery PGNSP PGUID 12 1 0 0 0 f f f t f i s 7 0 2281 "3614 2281 21 2281 2281 2281 2281" _null_ _null_ _null_ _null_ _null_ gin_extract_tsquery _null_ _null_ _null_ )); -DESCR("GIN tsvector support"); -DATA(insert OID = 3658 ( gin_tsquery_consistent PGNSP PGUID 12 1 0 0 0 f f f t f i s 8 0 16 "2281 21 3614 23 2281 2281 2281 2281" _null_ _null_ _null_ _null_ _null_ gin_tsquery_consistent _null_ _null_ _null_ )); -DESCR("GIN tsvector support"); -DATA(insert OID = 3921 ( gin_tsquery_triconsistent PGNSP PGUID 12 1 0 0 0 f f f t f i s 7 0 18 "2281 21 3614 23 2281 2281 2281" _null_ _null_ _null_ _null_ _null_ gin_tsquery_triconsistent _null_ _null_ _null_ )); -DESCR("GIN tsvector support"); -DATA(insert OID = 3724 ( gin_cmp_tslexeme PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "25 25" _null_ _null_ _null_ _null_ _null_ gin_cmp_tslexeme _null_ _null_ _null_ )); -DESCR("GIN tsvector support"); -DATA(insert OID = 2700 ( gin_cmp_prefix PGNSP PGUID 12 1 0 0 0 f f f t f i s 4 0 23 "25 25 21 2281" _null_ _null_ _null_ _null_ _null_ gin_cmp_prefix _null_ _null_ _null_ )); -DESCR("GIN tsvector support"); -DATA(insert OID = 3077 ( gin_extract_tsvector PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 2281 "3614 2281" _null_ _null_ _null_ _null_ _null_ gin_extract_tsvector_2args _null_ _null_ _null_ )); -DESCR("GIN tsvector support (obsolete)"); -DATA(insert OID = 3087 ( gin_extract_tsquery PGNSP PGUID 12 1 0 0 0 f f f t f i s 5 0 2281 "3615 2281 21 2281 2281" _null_ _null_ _null_ _null_ _null_ gin_extract_tsquery_5args _null_ _null_ _null_ )); -DESCR("GIN tsvector support (obsolete)"); -DATA(insert OID = 3088 ( gin_tsquery_consistent PGNSP PGUID 12 1 0 0 0 f f f t f i s 6 0 16 "2281 21 3615 23 2281 2281" _null_ _null_ _null_ _null_ _null_ gin_tsquery_consistent_6args _null_ _null_ _null_ )); -DESCR("GIN tsvector support (obsolete)"); -DATA(insert OID = 3791 ( gin_extract_tsquery PGNSP PGUID 12 1 0 0 0 f f f t f i s 7 0 2281 "3615 2281 21 2281 2281 2281 2281" _null_ _null_ _null_ _null_ _null_ gin_extract_tsquery_oldsig _null_ _null_ _null_ )); -DESCR("GIN tsvector support (obsolete)"); -DATA(insert OID = 3792 ( gin_tsquery_consistent PGNSP PGUID 12 1 0 0 0 f f f t f i s 8 0 16 "2281 21 3615 23 2281 2281 2281 2281" _null_ _null_ _null_ _null_ _null_ gin_tsquery_consistent_oldsig _null_ _null_ _null_ )); -DESCR("GIN tsvector support (obsolete)"); - -DATA(insert OID = 3789 ( gin_clean_pending_list PGNSP PGUID 12 1 0 0 0 f f f t f v u 1 0 20 "2205" _null_ _null_ _null_ _null_ _null_ gin_clean_pending_list _null_ _null_ _null_ )); -DESCR("clean up GIN pending list"); - -DATA(insert OID = 3662 ( tsquery_lt PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "3615 3615" _null_ _null_ _null_ _null_ _null_ tsquery_lt _null_ _null_ _null_ )); -DATA(insert OID = 3663 ( tsquery_le PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "3615 3615" _null_ _null_ _null_ _null_ _null_ tsquery_le _null_ _null_ _null_ )); -DATA(insert OID = 3664 ( tsquery_eq PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "3615 3615" _null_ _null_ _null_ _null_ _null_ tsquery_eq _null_ _null_ _null_ )); -DATA(insert OID = 3665 ( tsquery_ne PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "3615 3615" _null_ _null_ _null_ _null_ _null_ tsquery_ne _null_ _null_ _null_ )); -DATA(insert OID = 3666 ( tsquery_ge PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "3615 3615" _null_ _null_ _null_ _null_ _null_ tsquery_ge _null_ _null_ _null_ )); -DATA(insert OID = 3667 ( tsquery_gt PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "3615 3615" _null_ _null_ _null_ _null_ _null_ tsquery_gt _null_ _null_ _null_ )); -DATA(insert OID = 3668 ( tsquery_cmp PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "3615 3615" _null_ _null_ _null_ _null_ _null_ tsquery_cmp _null_ _null_ _null_ )); -DESCR("less-equal-greater"); - -DATA(insert OID = 3669 ( tsquery_and PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 3615 "3615 3615" _null_ _null_ _null_ _null_ _null_ tsquery_and _null_ _null_ _null_ )); -DATA(insert OID = 3670 ( tsquery_or PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 3615 "3615 3615" _null_ _null_ _null_ _null_ _null_ tsquery_or _null_ _null_ _null_ )); -DATA(insert OID = 5003 ( tsquery_phrase PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 3615 "3615 3615" _null_ _null_ _null_ _null_ _null_ tsquery_phrase _null_ _null_ _null_ )); -DATA(insert OID = 5004 ( tsquery_phrase PGNSP PGUID 12 1 0 0 0 f f f t f i s 3 0 3615 "3615 3615 23" _null_ _null_ _null_ _null_ _null_ tsquery_phrase_distance _null_ _null_ _null_ )); -DESCR("phrase-concatenate with distance"); -DATA(insert OID = 3671 ( tsquery_not PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 3615 "3615" _null_ _null_ _null_ _null_ _null_ tsquery_not _null_ _null_ _null_ )); - -DATA(insert OID = 3691 ( tsq_mcontains PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "3615 3615" _null_ _null_ _null_ _null_ _null_ tsq_mcontains _null_ _null_ _null_ )); -DATA(insert OID = 3692 ( tsq_mcontained PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "3615 3615" _null_ _null_ _null_ _null_ _null_ tsq_mcontained _null_ _null_ _null_ )); - -DATA(insert OID = 3672 ( numnode PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "3615" _null_ _null_ _null_ _null_ _null_ tsquery_numnode _null_ _null_ _null_ )); -DESCR("number of nodes"); -DATA(insert OID = 3673 ( querytree PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 25 "3615" _null_ _null_ _null_ _null_ _null_ tsquerytree _null_ _null_ _null_ )); -DESCR("show real useful query for GiST index"); - -DATA(insert OID = 3684 ( ts_rewrite PGNSP PGUID 12 1 0 0 0 f f f t f i s 3 0 3615 "3615 3615 3615" _null_ _null_ _null_ _null_ _null_ tsquery_rewrite _null_ _null_ _null_ )); -DESCR("rewrite tsquery"); -DATA(insert OID = 3685 ( ts_rewrite PGNSP PGUID 12 100 0 0 0 f f f t f v u 2 0 3615 "3615 25" _null_ _null_ _null_ _null_ _null_ tsquery_rewrite_query _null_ _null_ _null_ )); -DESCR("rewrite tsquery"); - -DATA(insert OID = 3695 ( gtsquery_compress PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2281 "2281" _null_ _null_ _null_ _null_ _null_ gtsquery_compress _null_ _null_ _null_ )); -DESCR("GiST tsquery support"); -DATA(insert OID = 3697 ( gtsquery_picksplit PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 2281 "2281 2281" _null_ _null_ _null_ _null_ _null_ gtsquery_picksplit _null_ _null_ _null_ )); -DESCR("GiST tsquery support"); -DATA(insert OID = 3698 ( gtsquery_union PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 20 "2281 2281" _null_ _null_ _null_ _null_ _null_ gtsquery_union _null_ _null_ _null_ )); -DESCR("GiST tsquery support"); -DATA(insert OID = 3699 ( gtsquery_same PGNSP PGUID 12 1 0 0 0 f f f t f i s 3 0 2281 "20 20 2281" _null_ _null_ _null_ _null_ _null_ gtsquery_same _null_ _null_ _null_ )); -DESCR("GiST tsquery support"); -DATA(insert OID = 3700 ( gtsquery_penalty PGNSP PGUID 12 1 0 0 0 f f f t f i s 3 0 2281 "2281 2281 2281" _null_ _null_ _null_ _null_ _null_ gtsquery_penalty _null_ _null_ _null_ )); -DESCR("GiST tsquery support"); -DATA(insert OID = 3701 ( gtsquery_consistent PGNSP PGUID 12 1 0 0 0 f f f t f i s 5 0 16 "2281 3615 21 26 2281" _null_ _null_ _null_ _null_ _null_ gtsquery_consistent _null_ _null_ _null_ )); -DESCR("GiST tsquery support"); -DATA(insert OID = 3793 ( gtsquery_consistent PGNSP PGUID 12 1 0 0 0 f f f t f i s 5 0 16 "2281 2281 23 26 2281" _null_ _null_ _null_ _null_ _null_ gtsquery_consistent_oldsig _null_ _null_ _null_ )); -DESCR("GiST tsquery support (obsolete)"); - -DATA(insert OID = 3686 ( tsmatchsel PGNSP PGUID 12 1 0 0 0 f f f t f s s 4 0 701 "2281 26 2281 23" _null_ _null_ _null_ _null_ _null_ tsmatchsel _null_ _null_ _null_ )); -DESCR("restriction selectivity of tsvector @@ tsquery"); -DATA(insert OID = 3687 ( tsmatchjoinsel PGNSP PGUID 12 1 0 0 0 f f f t f s s 5 0 701 "2281 26 2281 21 2281" _null_ _null_ _null_ _null_ _null_ tsmatchjoinsel _null_ _null_ _null_ )); -DESCR("join selectivity of tsvector @@ tsquery"); -DATA(insert OID = 3688 ( ts_typanalyze PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 16 "2281" _null_ _null_ _null_ _null_ _null_ ts_typanalyze _null_ _null_ _null_ )); -DESCR("tsvector typanalyze"); - -DATA(insert OID = 3689 ( ts_stat PGNSP PGUID 12 10 10000 0 0 f f f t t v u 1 0 2249 "25" "{25,25,23,23}" "{i,o,o,o}" "{query,word,ndoc,nentry}" _null_ _null_ ts_stat1 _null_ _null_ _null_ )); -DESCR("statistics of tsvector column"); -DATA(insert OID = 3690 ( ts_stat PGNSP PGUID 12 10 10000 0 0 f f f t t v u 2 0 2249 "25 25" "{25,25,25,23,23}" "{i,i,o,o,o}" "{query,weights,word,ndoc,nentry}" _null_ _null_ ts_stat2 _null_ _null_ _null_ )); -DESCR("statistics of tsvector column"); - -DATA(insert OID = 3703 ( ts_rank PGNSP PGUID 12 1 0 0 0 f f f t f i s 4 0 700 "1021 3614 3615 23" _null_ _null_ _null_ _null_ _null_ ts_rank_wttf _null_ _null_ _null_ )); -DESCR("relevance"); -DATA(insert OID = 3704 ( ts_rank PGNSP PGUID 12 1 0 0 0 f f f t f i s 3 0 700 "1021 3614 3615" _null_ _null_ _null_ _null_ _null_ ts_rank_wtt _null_ _null_ _null_ )); -DESCR("relevance"); -DATA(insert OID = 3705 ( ts_rank PGNSP PGUID 12 1 0 0 0 f f f t f i s 3 0 700 "3614 3615 23" _null_ _null_ _null_ _null_ _null_ ts_rank_ttf _null_ _null_ _null_ )); -DESCR("relevance"); -DATA(insert OID = 3706 ( ts_rank PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 700 "3614 3615" _null_ _null_ _null_ _null_ _null_ ts_rank_tt _null_ _null_ _null_ )); -DESCR("relevance"); -DATA(insert OID = 3707 ( ts_rank_cd PGNSP PGUID 12 1 0 0 0 f f f t f i s 4 0 700 "1021 3614 3615 23" _null_ _null_ _null_ _null_ _null_ ts_rankcd_wttf _null_ _null_ _null_ )); -DESCR("relevance"); -DATA(insert OID = 3708 ( ts_rank_cd PGNSP PGUID 12 1 0 0 0 f f f t f i s 3 0 700 "1021 3614 3615" _null_ _null_ _null_ _null_ _null_ ts_rankcd_wtt _null_ _null_ _null_ )); -DESCR("relevance"); -DATA(insert OID = 3709 ( ts_rank_cd PGNSP PGUID 12 1 0 0 0 f f f t f i s 3 0 700 "3614 3615 23" _null_ _null_ _null_ _null_ _null_ ts_rankcd_ttf _null_ _null_ _null_ )); -DESCR("relevance"); -DATA(insert OID = 3710 ( ts_rank_cd PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 700 "3614 3615" _null_ _null_ _null_ _null_ _null_ ts_rankcd_tt _null_ _null_ _null_ )); -DESCR("relevance"); - -DATA(insert OID = 3713 ( ts_token_type PGNSP PGUID 12 1 16 0 0 f f f t t i s 1 0 2249 "26" "{26,23,25,25}" "{i,o,o,o}" "{parser_oid,tokid,alias,description}" _null_ _null_ ts_token_type_byid _null_ _null_ _null_ )); -DESCR("get parser's token types"); -DATA(insert OID = 3714 ( ts_token_type PGNSP PGUID 12 1 16 0 0 f f f t t s s 1 0 2249 "25" "{25,23,25,25}" "{i,o,o,o}" "{parser_name,tokid,alias,description}" _null_ _null_ ts_token_type_byname _null_ _null_ _null_ )); -DESCR("get parser's token types"); -DATA(insert OID = 3715 ( ts_parse PGNSP PGUID 12 1 1000 0 0 f f f t t i s 2 0 2249 "26 25" "{26,25,23,25}" "{i,i,o,o}" "{parser_oid,txt,tokid,token}" _null_ _null_ ts_parse_byid _null_ _null_ _null_ )); -DESCR("parse text to tokens"); -DATA(insert OID = 3716 ( ts_parse PGNSP PGUID 12 1 1000 0 0 f f f t t s s 2 0 2249 "25 25" "{25,25,23,25}" "{i,i,o,o}" "{parser_name,txt,tokid,token}" _null_ _null_ ts_parse_byname _null_ _null_ _null_ )); -DESCR("parse text to tokens"); - -DATA(insert OID = 3717 ( prsd_start PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 2281 "2281 23" _null_ _null_ _null_ _null_ _null_ prsd_start _null_ _null_ _null_ )); -DESCR("(internal)"); -DATA(insert OID = 3718 ( prsd_nexttoken PGNSP PGUID 12 1 0 0 0 f f f t f i s 3 0 2281 "2281 2281 2281" _null_ _null_ _null_ _null_ _null_ prsd_nexttoken _null_ _null_ _null_ )); -DESCR("(internal)"); -DATA(insert OID = 3719 ( prsd_end PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2278 "2281" _null_ _null_ _null_ _null_ _null_ prsd_end _null_ _null_ _null_ )); -DESCR("(internal)"); -DATA(insert OID = 3720 ( prsd_headline PGNSP PGUID 12 1 0 0 0 f f f t f i s 3 0 2281 "2281 2281 3615" _null_ _null_ _null_ _null_ _null_ prsd_headline _null_ _null_ _null_ )); -DESCR("(internal)"); -DATA(insert OID = 3721 ( prsd_lextype PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2281 "2281" _null_ _null_ _null_ _null_ _null_ prsd_lextype _null_ _null_ _null_ )); -DESCR("(internal)"); - -DATA(insert OID = 3723 ( ts_lexize PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 1009 "3769 25" _null_ _null_ _null_ _null_ _null_ ts_lexize _null_ _null_ _null_ )); -DESCR("normalize one word by dictionary"); - -DATA(insert OID = 3725 ( dsimple_init PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2281 "2281" _null_ _null_ _null_ _null_ _null_ dsimple_init _null_ _null_ _null_ )); -DESCR("(internal)"); -DATA(insert OID = 3726 ( dsimple_lexize PGNSP PGUID 12 1 0 0 0 f f f t f i s 4 0 2281 "2281 2281 2281 2281" _null_ _null_ _null_ _null_ _null_ dsimple_lexize _null_ _null_ _null_ )); -DESCR("(internal)"); - -DATA(insert OID = 3728 ( dsynonym_init PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2281 "2281" _null_ _null_ _null_ _null_ _null_ dsynonym_init _null_ _null_ _null_ )); -DESCR("(internal)"); -DATA(insert OID = 3729 ( dsynonym_lexize PGNSP PGUID 12 1 0 0 0 f f f t f i s 4 0 2281 "2281 2281 2281 2281" _null_ _null_ _null_ _null_ _null_ dsynonym_lexize _null_ _null_ _null_ )); -DESCR("(internal)"); - -DATA(insert OID = 3731 ( dispell_init PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2281 "2281" _null_ _null_ _null_ _null_ _null_ dispell_init _null_ _null_ _null_ )); -DESCR("(internal)"); -DATA(insert OID = 3732 ( dispell_lexize PGNSP PGUID 12 1 0 0 0 f f f t f i s 4 0 2281 "2281 2281 2281 2281" _null_ _null_ _null_ _null_ _null_ dispell_lexize _null_ _null_ _null_ )); -DESCR("(internal)"); - -DATA(insert OID = 3740 ( thesaurus_init PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2281 "2281" _null_ _null_ _null_ _null_ _null_ thesaurus_init _null_ _null_ _null_ )); -DESCR("(internal)"); -DATA(insert OID = 3741 ( thesaurus_lexize PGNSP PGUID 12 1 0 0 0 f f f t f i s 4 0 2281 "2281 2281 2281 2281" _null_ _null_ _null_ _null_ _null_ thesaurus_lexize _null_ _null_ _null_ )); -DESCR("(internal)"); - -DATA(insert OID = 3743 ( ts_headline PGNSP PGUID 12 100 0 0 0 f f f t f i s 4 0 25 "3734 25 3615 25" _null_ _null_ _null_ _null_ _null_ ts_headline_byid_opt _null_ _null_ _null_ )); -DESCR("generate headline"); -DATA(insert OID = 3744 ( ts_headline PGNSP PGUID 12 100 0 0 0 f f f t f i s 3 0 25 "3734 25 3615" _null_ _null_ _null_ _null_ _null_ ts_headline_byid _null_ _null_ _null_ )); -DESCR("generate headline"); -DATA(insert OID = 3754 ( ts_headline PGNSP PGUID 12 100 0 0 0 f f f t f s s 3 0 25 "25 3615 25" _null_ _null_ _null_ _null_ _null_ ts_headline_opt _null_ _null_ _null_ )); -DESCR("generate headline"); -DATA(insert OID = 3755 ( ts_headline PGNSP PGUID 12 100 0 0 0 f f f t f s s 2 0 25 "25 3615" _null_ _null_ _null_ _null_ _null_ ts_headline _null_ _null_ _null_ )); -DESCR("generate headline"); - -DATA(insert OID = 4201 ( ts_headline PGNSP PGUID 12 100 0 0 0 f f f t f i s 4 0 3802 "3734 3802 3615 25" _null_ _null_ _null_ _null_ _null_ ts_headline_jsonb_byid_opt _null_ _null_ _null_ )); -DESCR("generate headline from jsonb"); -DATA(insert OID = 4202 ( ts_headline PGNSP PGUID 12 100 0 0 0 f f f t f i s 3 0 3802 "3734 3802 3615" _null_ _null_ _null_ _null_ _null_ ts_headline_jsonb_byid _null_ _null_ _null_ )); -DESCR("generate headline from jsonb"); -DATA(insert OID = 4203 ( ts_headline PGNSP PGUID 12 100 0 0 0 f f f t f s s 3 0 3802 "3802 3615 25" _null_ _null_ _null_ _null_ _null_ ts_headline_jsonb_opt _null_ _null_ _null_ )); -DESCR("generate headline from jsonb"); -DATA(insert OID = 4204 ( ts_headline PGNSP PGUID 12 100 0 0 0 f f f t f s s 2 0 3802 "3802 3615" _null_ _null_ _null_ _null_ _null_ ts_headline_jsonb _null_ _null_ _null_ )); -DESCR("generate headline from jsonb"); - -DATA(insert OID = 4205 ( ts_headline PGNSP PGUID 12 100 0 0 0 f f f t f i s 4 0 114 "3734 114 3615 25" _null_ _null_ _null_ _null_ _null_ ts_headline_json_byid_opt _null_ _null_ _null_ )); -DESCR("generate headline from json"); -DATA(insert OID = 4206 ( ts_headline PGNSP PGUID 12 100 0 0 0 f f f t f i s 3 0 114 "3734 114 3615" _null_ _null_ _null_ _null_ _null_ ts_headline_json_byid _null_ _null_ _null_ )); -DESCR("generate headline from json"); -DATA(insert OID = 4207 ( ts_headline PGNSP PGUID 12 100 0 0 0 f f f t f s s 3 0 114 "114 3615 25" _null_ _null_ _null_ _null_ _null_ ts_headline_json_opt _null_ _null_ _null_ )); -DESCR("generate headline from json"); -DATA(insert OID = 4208 ( ts_headline PGNSP PGUID 12 100 0 0 0 f f f t f s s 2 0 114 "114 3615" _null_ _null_ _null_ _null_ _null_ ts_headline_json _null_ _null_ _null_ )); -DESCR("generate headline from json"); - -DATA(insert OID = 3745 ( to_tsvector PGNSP PGUID 12 100 0 0 0 f f f t f i s 2 0 3614 "3734 25" _null_ _null_ _null_ _null_ _null_ to_tsvector_byid _null_ _null_ _null_ )); -DESCR("transform to tsvector"); -DATA(insert OID = 3746 ( to_tsquery PGNSP PGUID 12 100 0 0 0 f f f t f i s 2 0 3615 "3734 25" _null_ _null_ _null_ _null_ _null_ to_tsquery_byid _null_ _null_ _null_ )); -DESCR("make tsquery"); -DATA(insert OID = 3747 ( plainto_tsquery PGNSP PGUID 12 100 0 0 0 f f f t f i s 2 0 3615 "3734 25" _null_ _null_ _null_ _null_ _null_ plainto_tsquery_byid _null_ _null_ _null_ )); -DESCR("transform to tsquery"); -DATA(insert OID = 5006 ( phraseto_tsquery PGNSP PGUID 12 100 0 0 0 f f f t f i s 2 0 3615 "3734 25" _null_ _null_ _null_ _null_ _null_ phraseto_tsquery_byid _null_ _null_ _null_ )); -DESCR("transform to tsquery"); -DATA(insert OID = 8889 ( websearch_to_tsquery PGNSP PGUID 12 100 0 0 0 f f f t f i s 2 0 3615 "3734 25" _null_ _null_ _null_ _null_ _null_ websearch_to_tsquery_byid _null_ _null_ _null_ )); -DESCR("transform to tsquery"); -DATA(insert OID = 3749 ( to_tsvector PGNSP PGUID 12 100 0 0 0 f f f t f s s 1 0 3614 "25" _null_ _null_ _null_ _null_ _null_ to_tsvector _null_ _null_ _null_ )); -DESCR("transform to tsvector"); -DATA(insert OID = 3750 ( to_tsquery PGNSP PGUID 12 100 0 0 0 f f f t f s s 1 0 3615 "25" _null_ _null_ _null_ _null_ _null_ to_tsquery _null_ _null_ _null_ )); -DESCR("make tsquery"); -DATA(insert OID = 3751 ( plainto_tsquery PGNSP PGUID 12 100 0 0 0 f f f t f s s 1 0 3615 "25" _null_ _null_ _null_ _null_ _null_ plainto_tsquery _null_ _null_ _null_ )); -DESCR("transform to tsquery"); -DATA(insert OID = 5001 ( phraseto_tsquery PGNSP PGUID 12 100 0 0 0 f f f t f s s 1 0 3615 "25" _null_ _null_ _null_ _null_ _null_ phraseto_tsquery _null_ _null_ _null_ )); -DESCR("transform to tsquery"); -DATA(insert OID = 8890 ( websearch_to_tsquery PGNSP PGUID 12 100 0 0 0 f f f t f s s 1 0 3615 "25" _null_ _null_ _null_ _null_ _null_ websearch_to_tsquery _null_ _null_ _null_ )); -DESCR("transform to tsquery"); -DATA(insert OID = 4209 ( to_tsvector PGNSP PGUID 12 100 0 0 0 f f f t f s s 1 0 3614 "3802" _null_ _null_ _null_ _null_ _null_ jsonb_string_to_tsvector _null_ _null_ _null_ )); -DESCR("transform string values from jsonb to tsvector"); -DATA(insert OID = 4213 ( jsonb_to_tsvector PGNSP PGUID 12 100 0 0 0 f f f t f s s 2 0 3614 "3802 3802" _null_ _null_ _null_ _null_ _null_ jsonb_to_tsvector _null_ _null_ _null_ )); -DESCR("transform specified values from jsonb to tsvector"); -DATA(insert OID = 4210 ( to_tsvector PGNSP PGUID 12 100 0 0 0 f f f t f s s 1 0 3614 "114" _null_ _null_ _null_ _null_ _null_ json_string_to_tsvector _null_ _null_ _null_ )); -DESCR("transform string values from json to tsvector"); -DATA(insert OID = 4215 ( json_to_tsvector PGNSP PGUID 12 100 0 0 0 f f f t f s s 2 0 3614 "114 3802" _null_ _null_ _null_ _null_ _null_ json_to_tsvector _null_ _null_ _null_ )); -DESCR("transform specified values from json to tsvector"); -DATA(insert OID = 4211 ( to_tsvector PGNSP PGUID 12 100 0 0 0 f f f t f i s 2 0 3614 "3734 3802" _null_ _null_ _null_ _null_ _null_ jsonb_string_to_tsvector_byid _null_ _null_ _null_ )); -DESCR("transform string values from jsonb to tsvector"); -DATA(insert OID = 4214 ( jsonb_to_tsvector PGNSP PGUID 12 100 0 0 0 f f f t f i s 3 0 3614 "3734 3802 3802" _null_ _null_ _null_ _null_ _null_ jsonb_to_tsvector_byid _null_ _null_ _null_ )); -DESCR("transform specified values from jsonb to tsvector"); -DATA(insert OID = 4212 ( to_tsvector PGNSP PGUID 12 100 0 0 0 f f f t f i s 2 0 3614 "3734 114" _null_ _null_ _null_ _null_ _null_ json_string_to_tsvector_byid _null_ _null_ _null_ )); -DESCR("transform string values from json to tsvector"); -DATA(insert OID = 4216 ( json_to_tsvector PGNSP PGUID 12 100 0 0 0 f f f t f i s 3 0 3614 "3734 114 3802" _null_ _null_ _null_ _null_ _null_ json_to_tsvector_byid _null_ _null_ _null_ )); -DESCR("transform specified values from json to tsvector"); - -DATA(insert OID = 3752 ( tsvector_update_trigger PGNSP PGUID 12 1 0 0 0 f f f f f v s 0 0 2279 "" _null_ _null_ _null_ _null_ _null_ tsvector_update_trigger_byid _null_ _null_ _null_ )); -DESCR("trigger for automatic update of tsvector column"); -DATA(insert OID = 3753 ( tsvector_update_trigger_column PGNSP PGUID 12 1 0 0 0 f f f f f v s 0 0 2279 "" _null_ _null_ _null_ _null_ _null_ tsvector_update_trigger_bycolumn _null_ _null_ _null_ )); -DESCR("trigger for automatic update of tsvector column"); - -DATA(insert OID = 3759 ( get_current_ts_config PGNSP PGUID 12 1 0 0 0 f f f t f s s 0 0 3734 "" _null_ _null_ _null_ _null_ _null_ get_current_ts_config _null_ _null_ _null_ )); -DESCR("get current tsearch configuration"); - -DATA(insert OID = 3736 ( regconfigin PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 3734 "2275" _null_ _null_ _null_ _null_ _null_ regconfigin _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 3737 ( regconfigout PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 2275 "3734" _null_ _null_ _null_ _null_ _null_ regconfigout _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 3738 ( regconfigrecv PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 3734 "2281" _null_ _null_ _null_ _null_ _null_ regconfigrecv _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 3739 ( regconfigsend PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 17 "3734" _null_ _null_ _null_ _null_ _null_ regconfigsend _null_ _null_ _null_ )); -DESCR("I/O"); - -DATA(insert OID = 3771 ( regdictionaryin PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 3769 "2275" _null_ _null_ _null_ _null_ _null_ regdictionaryin _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 3772 ( regdictionaryout PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 2275 "3769" _null_ _null_ _null_ _null_ _null_ regdictionaryout _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 3773 ( regdictionaryrecv PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 3769 "2281" _null_ _null_ _null_ _null_ _null_ regdictionaryrecv _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 3774 ( regdictionarysend PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 17 "3769" _null_ _null_ _null_ _null_ _null_ regdictionarysend _null_ _null_ _null_ )); -DESCR("I/O"); - -/* jsonb */ -DATA(insert OID = 3806 ( jsonb_in PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 3802 "2275" _null_ _null_ _null_ _null_ _null_ jsonb_in _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 3805 ( jsonb_recv PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 3802 "2281" _null_ _null_ _null_ _null_ _null_ jsonb_recv _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 3804 ( jsonb_out PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2275 "3802" _null_ _null_ _null_ _null_ _null_ jsonb_out _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 3803 ( jsonb_send PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 17 "3802" _null_ _null_ _null_ _null_ _null_ jsonb_send _null_ _null_ _null_ )); -DESCR("I/O"); - -DATA(insert OID = 3263 ( jsonb_object PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 3802 "1009" _null_ _null_ _null_ _null_ _null_ jsonb_object _null_ _null_ _null_ )); -DESCR("map text array of key value pairs to jsonb object"); -DATA(insert OID = 3264 ( jsonb_object PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 3802 "1009 1009" _null_ _null_ _null_ _null_ _null_ jsonb_object_two_arg _null_ _null_ _null_ )); -DESCR("map text array of key value pairs to jsonb object"); -DATA(insert OID = 3787 ( to_jsonb PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 3802 "2283" _null_ _null_ _null_ _null_ _null_ to_jsonb _null_ _null_ _null_ )); -DESCR("map input to jsonb"); -DATA(insert OID = 3265 ( jsonb_agg_transfn PGNSP PGUID 12 1 0 0 0 f f f f f s s 2 0 2281 "2281 2283" _null_ _null_ _null_ _null_ _null_ jsonb_agg_transfn _null_ _null_ _null_ )); -DESCR("jsonb aggregate transition function"); -DATA(insert OID = 3266 ( jsonb_agg_finalfn PGNSP PGUID 12 1 0 0 0 f f f f f s s 1 0 3802 "2281" _null_ _null_ _null_ _null_ _null_ jsonb_agg_finalfn _null_ _null_ _null_ )); -DESCR("jsonb aggregate final function"); -DATA(insert OID = 3267 ( jsonb_agg PGNSP PGUID 12 1 0 0 0 a f f f f s s 1 0 3802 "2283" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("aggregate input into jsonb"); -DATA(insert OID = 3268 ( jsonb_object_agg_transfn PGNSP PGUID 12 1 0 0 0 f f f f f s s 3 0 2281 "2281 2276 2276" _null_ _null_ _null_ _null_ _null_ jsonb_object_agg_transfn _null_ _null_ _null_ )); -DESCR("jsonb object aggregate transition function"); -DATA(insert OID = 3269 ( jsonb_object_agg_finalfn PGNSP PGUID 12 1 0 0 0 f f f f f s s 1 0 3802 "2281" _null_ _null_ _null_ _null_ _null_ jsonb_object_agg_finalfn _null_ _null_ _null_ )); -DESCR("jsonb object aggregate final function"); -DATA(insert OID = 3270 ( jsonb_object_agg PGNSP PGUID 12 1 0 0 0 a f f f f i s 2 0 3802 "2276 2276" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("aggregate inputs into jsonb object"); -DATA(insert OID = 3271 ( jsonb_build_array PGNSP PGUID 12 1 0 2276 0 f f f f f s s 1 0 3802 "2276" "{2276}" "{v}" _null_ _null_ _null_ jsonb_build_array _null_ _null_ _null_ )); -DESCR("build a jsonb array from any inputs"); -DATA(insert OID = 3272 ( jsonb_build_array PGNSP PGUID 12 1 0 0 0 f f f f f s s 0 0 3802 "" _null_ _null_ _null_ _null_ _null_ jsonb_build_array_noargs _null_ _null_ _null_ )); -DESCR("build an empty jsonb array"); -DATA(insert OID = 3273 ( jsonb_build_object PGNSP PGUID 12 1 0 2276 0 f f f f f s s 1 0 3802 "2276" "{2276}" "{v}" _null_ _null_ _null_ jsonb_build_object _null_ _null_ _null_ )); -DESCR("build a jsonb object from pairwise key/value inputs"); -DATA(insert OID = 3274 ( jsonb_build_object PGNSP PGUID 12 1 0 0 0 f f f f f s s 0 0 3802 "" _null_ _null_ _null_ _null_ _null_ jsonb_build_object_noargs _null_ _null_ _null_ )); -DESCR("build an empty jsonb object"); -DATA(insert OID = 3262 ( jsonb_strip_nulls PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 3802 "3802" _null_ _null_ _null_ _null_ _null_ jsonb_strip_nulls _null_ _null_ _null_ )); -DESCR("remove object fields with null values from jsonb"); - -DATA(insert OID = 3478 ( jsonb_object_field PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 3802 "3802 25" _null_ _null_ "{from_json, field_name}" _null_ _null_ jsonb_object_field _null_ _null_ _null_ )); -DATA(insert OID = 3214 ( jsonb_object_field_text PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 25 "3802 25" _null_ _null_ "{from_json, field_name}" _null_ _null_ jsonb_object_field_text _null_ _null_ _null_ )); -DATA(insert OID = 3215 ( jsonb_array_element PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 3802 "3802 23" _null_ _null_ "{from_json, element_index}" _null_ _null_ jsonb_array_element _null_ _null_ _null_ )); -DATA(insert OID = 3216 ( jsonb_array_element_text PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 25 "3802 23" _null_ _null_ "{from_json, element_index}" _null_ _null_ jsonb_array_element_text _null_ _null_ _null_ )); -DATA(insert OID = 3217 ( jsonb_extract_path PGNSP PGUID 12 1 0 25 0 f f f t f i s 2 0 3802 "3802 1009" "{3802,1009}" "{i,v}" "{from_json,path_elems}" _null_ _null_ jsonb_extract_path _null_ _null_ _null_ )); -DESCR("get value from jsonb with path elements"); -DATA(insert OID = 3940 ( jsonb_extract_path_text PGNSP PGUID 12 1 0 25 0 f f f t f i s 2 0 25 "3802 1009" "{3802,1009}" "{i,v}" "{from_json,path_elems}" _null_ _null_ jsonb_extract_path_text _null_ _null_ _null_ )); -DESCR("get value from jsonb as text with path elements"); -DATA(insert OID = 3219 ( jsonb_array_elements PGNSP PGUID 12 1 100 0 0 f f f t t i s 1 0 3802 "3802" "{3802,3802}" "{i,o}" "{from_json,value}" _null_ _null_ jsonb_array_elements _null_ _null_ _null_ )); -DESCR("elements of a jsonb array"); -DATA(insert OID = 3465 ( jsonb_array_elements_text PGNSP PGUID 12 1 100 0 0 f f f t t i s 1 0 25 "3802" "{3802,25}" "{i,o}" "{from_json,value}" _null_ _null_ jsonb_array_elements_text _null_ _null_ _null_ )); -DESCR("elements of jsonb array"); -DATA(insert OID = 3207 ( jsonb_array_length PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "3802" _null_ _null_ _null_ _null_ _null_ jsonb_array_length _null_ _null_ _null_ )); -DESCR("length of jsonb array"); -DATA(insert OID = 3931 ( jsonb_object_keys PGNSP PGUID 12 1 100 0 0 f f f t t i s 1 0 25 "3802" _null_ _null_ _null_ _null_ _null_ jsonb_object_keys _null_ _null_ _null_ )); -DESCR("get jsonb object keys"); -DATA(insert OID = 3208 ( jsonb_each PGNSP PGUID 12 1 100 0 0 f f f t t i s 1 0 2249 "3802" "{3802,25,3802}" "{i,o,o}" "{from_json,key,value}" _null_ _null_ jsonb_each _null_ _null_ _null_ )); -DESCR("key value pairs of a jsonb object"); -DATA(insert OID = 3932 ( jsonb_each_text PGNSP PGUID 12 1 100 0 0 f f f t t i s 1 0 2249 "3802" "{3802,25,25}" "{i,o,o}" "{from_json,key,value}" _null_ _null_ jsonb_each_text _null_ _null_ _null_ )); -DESCR("key value pairs of a jsonb object"); -DATA(insert OID = 3209 ( jsonb_populate_record PGNSP PGUID 12 1 0 0 0 f f f f f s s 2 0 2283 "2283 3802" _null_ _null_ _null_ _null_ _null_ jsonb_populate_record _null_ _null_ _null_ )); -DESCR("get record fields from a jsonb object"); -DATA(insert OID = 3475 ( jsonb_populate_recordset PGNSP PGUID 12 1 100 0 0 f f f f t s s 2 0 2283 "2283 3802" _null_ _null_ _null_ _null_ _null_ jsonb_populate_recordset _null_ _null_ _null_ )); -DESCR("get set of records with fields from a jsonb array of objects"); -DATA(insert OID = 3490 ( jsonb_to_record PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 2249 "3802" _null_ _null_ _null_ _null_ _null_ jsonb_to_record _null_ _null_ _null_ )); -DESCR("get record fields from a jsonb object"); -DATA(insert OID = 3491 ( jsonb_to_recordset PGNSP PGUID 12 1 100 0 0 f f f f t s s 1 0 2249 "3802" _null_ _null_ _null_ _null_ _null_ jsonb_to_recordset _null_ _null_ _null_ )); -DESCR("get set of records with fields from a jsonb array of objects"); -DATA(insert OID = 3210 ( jsonb_typeof PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 25 "3802" _null_ _null_ _null_ _null_ _null_ jsonb_typeof _null_ _null_ _null_ )); -DESCR("get the type of a jsonb value"); -DATA(insert OID = 4038 ( jsonb_ne PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "3802 3802" _null_ _null_ _null_ _null_ _null_ jsonb_ne _null_ _null_ _null_ )); -DATA(insert OID = 4039 ( jsonb_lt PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "3802 3802" _null_ _null_ _null_ _null_ _null_ jsonb_lt _null_ _null_ _null_ )); -DATA(insert OID = 4040 ( jsonb_gt PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "3802 3802" _null_ _null_ _null_ _null_ _null_ jsonb_gt _null_ _null_ _null_ )); -DATA(insert OID = 4041 ( jsonb_le PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "3802 3802" _null_ _null_ _null_ _null_ _null_ jsonb_le _null_ _null_ _null_ )); -DATA(insert OID = 4042 ( jsonb_ge PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "3802 3802" _null_ _null_ _null_ _null_ _null_ jsonb_ge _null_ _null_ _null_ )); -DATA(insert OID = 4043 ( jsonb_eq PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "3802 3802" _null_ _null_ _null_ _null_ _null_ jsonb_eq _null_ _null_ _null_ )); -DATA(insert OID = 4044 ( jsonb_cmp PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "3802 3802" _null_ _null_ _null_ _null_ _null_ jsonb_cmp _null_ _null_ _null_ )); -DESCR("less-equal-greater"); -DATA(insert OID = 4045 ( jsonb_hash PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "3802" _null_ _null_ _null_ _null_ _null_ jsonb_hash _null_ _null_ _null_ )); -DESCR("hash"); -DATA(insert OID = 3416 ( jsonb_hash_extended PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 20 "3802 20" _null_ _null_ _null_ _null_ _null_ jsonb_hash_extended _null_ _null_ _null_ )); -DESCR("hash"); -DATA(insert OID = 4046 ( jsonb_contains PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "3802 3802" _null_ _null_ _null_ _null_ _null_ jsonb_contains _null_ _null_ _null_ )); -DATA(insert OID = 4047 ( jsonb_exists PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "3802 25" _null_ _null_ _null_ _null_ _null_ jsonb_exists _null_ _null_ _null_ )); -DATA(insert OID = 4048 ( jsonb_exists_any PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "3802 1009" _null_ _null_ _null_ _null_ _null_ jsonb_exists_any _null_ _null_ _null_ )); -DATA(insert OID = 4049 ( jsonb_exists_all PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "3802 1009" _null_ _null_ _null_ _null_ _null_ jsonb_exists_all _null_ _null_ _null_ )); -DATA(insert OID = 4050 ( jsonb_contained PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "3802 3802" _null_ _null_ _null_ _null_ _null_ jsonb_contained _null_ _null_ _null_ )); -DATA(insert OID = 3480 ( gin_compare_jsonb PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "25 25" _null_ _null_ _null_ _null_ _null_ gin_compare_jsonb _null_ _null_ _null_ )); -DESCR("GIN support"); -DATA(insert OID = 3482 ( gin_extract_jsonb PGNSP PGUID 12 1 0 0 0 f f f t f i s 3 0 2281 "3802 2281 2281" _null_ _null_ _null_ _null_ _null_ gin_extract_jsonb _null_ _null_ _null_ )); -DESCR("GIN support"); -DATA(insert OID = 3483 ( gin_extract_jsonb_query PGNSP PGUID 12 1 0 0 0 f f f t f i s 7 0 2281 "3802 2281 21 2281 2281 2281 2281" _null_ _null_ _null_ _null_ _null_ gin_extract_jsonb_query _null_ _null_ _null_ )); -DESCR("GIN support"); -DATA(insert OID = 3484 ( gin_consistent_jsonb PGNSP PGUID 12 1 0 0 0 f f f t f i s 8 0 16 "2281 21 3802 23 2281 2281 2281 2281" _null_ _null_ _null_ _null_ _null_ gin_consistent_jsonb _null_ _null_ _null_ )); -DESCR("GIN support"); -DATA(insert OID = 3488 ( gin_triconsistent_jsonb PGNSP PGUID 12 1 0 0 0 f f f t f i s 7 0 18 "2281 21 3802 23 2281 2281 2281" _null_ _null_ _null_ _null_ _null_ gin_triconsistent_jsonb _null_ _null_ _null_ )); -DESCR("GIN support"); -DATA(insert OID = 3485 ( gin_extract_jsonb_path PGNSP PGUID 12 1 0 0 0 f f f t f i s 3 0 2281 "3802 2281 2281" _null_ _null_ _null_ _null_ _null_ gin_extract_jsonb_path _null_ _null_ _null_ )); -DESCR("GIN support"); -DATA(insert OID = 3486 ( gin_extract_jsonb_query_path PGNSP PGUID 12 1 0 0 0 f f f t f i s 7 0 2281 "3802 2281 21 2281 2281 2281 2281" _null_ _null_ _null_ _null_ _null_ gin_extract_jsonb_query_path _null_ _null_ _null_ )); -DESCR("GIN support"); -DATA(insert OID = 3487 ( gin_consistent_jsonb_path PGNSP PGUID 12 1 0 0 0 f f f t f i s 8 0 16 "2281 21 3802 23 2281 2281 2281 2281" _null_ _null_ _null_ _null_ _null_ gin_consistent_jsonb_path _null_ _null_ _null_ )); -DESCR("GIN support"); -DATA(insert OID = 3489 ( gin_triconsistent_jsonb_path PGNSP PGUID 12 1 0 0 0 f f f t f i s 7 0 18 "2281 21 3802 23 2281 2281 2281" _null_ _null_ _null_ _null_ _null_ gin_triconsistent_jsonb_path _null_ _null_ _null_ )); -DESCR("GIN support"); -DATA(insert OID = 3301 ( jsonb_concat PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 3802 "3802 3802" _null_ _null_ _null_ _null_ _null_ jsonb_concat _null_ _null_ _null_ )); -DATA(insert OID = 3302 ( jsonb_delete PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 3802 "3802 25" _null_ _null_ _null_ _null_ _null_ jsonb_delete _null_ _null_ _null_ )); -DATA(insert OID = 3303 ( jsonb_delete PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 3802 "3802 23" _null_ _null_ _null_ _null_ _null_ jsonb_delete_idx _null_ _null_ _null_ )); -DATA(insert OID = 3343 ( jsonb_delete PGNSP PGUID 12 1 0 25 0 f f f t f i s 2 0 3802 "3802 1009" "{3802,1009}" "{i,v}" "{from_json,path_elems}" _null_ _null_ jsonb_delete_array _null_ _null_ _null_ )); -DATA(insert OID = 3304 ( jsonb_delete_path PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 3802 "3802 1009" _null_ _null_ _null_ _null_ _null_ jsonb_delete_path _null_ _null_ _null_ )); -DATA(insert OID = 3305 ( jsonb_set PGNSP PGUID 12 1 0 0 0 f f f t f i s 4 0 3802 "3802 1009 3802 16" _null_ _null_ _null_ _null_ _null_ jsonb_set _null_ _null_ _null_ )); -DESCR("Set part of a jsonb"); -DATA(insert OID = 3306 ( jsonb_pretty PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 25 "3802" _null_ _null_ _null_ _null_ _null_ jsonb_pretty _null_ _null_ _null_ )); -DESCR("Indented text from jsonb"); -DATA(insert OID = 3579 ( jsonb_insert PGNSP PGUID 12 1 0 0 0 f f f t f i s 4 0 3802 "3802 1009 3802 16" _null_ _null_ _null_ _null_ _null_ jsonb_insert _null_ _null_ _null_ )); -DESCR("Insert value into a jsonb"); -/* txid */ -DATA(insert OID = 2939 ( txid_snapshot_in PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2970 "2275" _null_ _null_ _null_ _null_ _null_ txid_snapshot_in _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2940 ( txid_snapshot_out PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2275 "2970" _null_ _null_ _null_ _null_ _null_ txid_snapshot_out _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2941 ( txid_snapshot_recv PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2970 "2281" _null_ _null_ _null_ _null_ _null_ txid_snapshot_recv _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2942 ( txid_snapshot_send PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 17 "2970" _null_ _null_ _null_ _null_ _null_ txid_snapshot_send _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 2943 ( txid_current PGNSP PGUID 12 1 0 0 0 f f f t f s u 0 0 20 "" _null_ _null_ _null_ _null_ _null_ txid_current _null_ _null_ _null_ )); -DESCR("get current transaction ID"); -DATA(insert OID = 3348 ( txid_current_if_assigned PGNSP PGUID 12 1 0 0 0 f f f t f s u 0 0 20 "" _null_ _null_ _null_ _null_ _null_ txid_current_if_assigned _null_ _null_ _null_ )); -DESCR("get current transaction ID"); -DATA(insert OID = 2944 ( txid_current_snapshot PGNSP PGUID 12 1 0 0 0 f f f t f s s 0 0 2970 "" _null_ _null_ _null_ _null_ _null_ txid_current_snapshot _null_ _null_ _null_ )); -DESCR("get current snapshot"); -DATA(insert OID = 2945 ( txid_snapshot_xmin PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 20 "2970" _null_ _null_ _null_ _null_ _null_ txid_snapshot_xmin _null_ _null_ _null_ )); -DESCR("get xmin of snapshot"); -DATA(insert OID = 2946 ( txid_snapshot_xmax PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 20 "2970" _null_ _null_ _null_ _null_ _null_ txid_snapshot_xmax _null_ _null_ _null_ )); -DESCR("get xmax of snapshot"); -DATA(insert OID = 2947 ( txid_snapshot_xip PGNSP PGUID 12 1 50 0 0 f f f t t i s 1 0 20 "2970" _null_ _null_ _null_ _null_ _null_ txid_snapshot_xip _null_ _null_ _null_ )); -DESCR("get set of in-progress txids in snapshot"); -DATA(insert OID = 2948 ( txid_visible_in_snapshot PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "20 2970" _null_ _null_ _null_ _null_ _null_ txid_visible_in_snapshot _null_ _null_ _null_ )); -DESCR("is txid visible in snapshot?"); -DATA(insert OID = 3360 ( txid_status PGNSP PGUID 12 1 0 0 0 f f f t f v s 1 0 25 "20" _null_ _null_ _null_ _null_ _null_ txid_status _null_ _null_ _null_ )); -DESCR("commit status of transaction"); - -/* record comparison using normal comparison rules */ -DATA(insert OID = 2981 ( record_eq PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "2249 2249" _null_ _null_ _null_ _null_ _null_ record_eq _null_ _null_ _null_ )); -DATA(insert OID = 2982 ( record_ne PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "2249 2249" _null_ _null_ _null_ _null_ _null_ record_ne _null_ _null_ _null_ )); -DATA(insert OID = 2983 ( record_lt PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "2249 2249" _null_ _null_ _null_ _null_ _null_ record_lt _null_ _null_ _null_ )); -DATA(insert OID = 2984 ( record_gt PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "2249 2249" _null_ _null_ _null_ _null_ _null_ record_gt _null_ _null_ _null_ )); -DATA(insert OID = 2985 ( record_le PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "2249 2249" _null_ _null_ _null_ _null_ _null_ record_le _null_ _null_ _null_ )); -DATA(insert OID = 2986 ( record_ge PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "2249 2249" _null_ _null_ _null_ _null_ _null_ record_ge _null_ _null_ _null_ )); -DATA(insert OID = 2987 ( btrecordcmp PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "2249 2249" _null_ _null_ _null_ _null_ _null_ btrecordcmp _null_ _null_ _null_ )); -DESCR("less-equal-greater"); - -/* record comparison using raw byte images */ -DATA(insert OID = 3181 ( record_image_eq PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "2249 2249" _null_ _null_ _null_ _null_ _null_ record_image_eq _null_ _null_ _null_ )); -DATA(insert OID = 3182 ( record_image_ne PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "2249 2249" _null_ _null_ _null_ _null_ _null_ record_image_ne _null_ _null_ _null_ )); -DATA(insert OID = 3183 ( record_image_lt PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "2249 2249" _null_ _null_ _null_ _null_ _null_ record_image_lt _null_ _null_ _null_ )); -DATA(insert OID = 3184 ( record_image_gt PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "2249 2249" _null_ _null_ _null_ _null_ _null_ record_image_gt _null_ _null_ _null_ )); -DATA(insert OID = 3185 ( record_image_le PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "2249 2249" _null_ _null_ _null_ _null_ _null_ record_image_le _null_ _null_ _null_ )); -DATA(insert OID = 3186 ( record_image_ge PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "2249 2249" _null_ _null_ _null_ _null_ _null_ record_image_ge _null_ _null_ _null_ )); -DATA(insert OID = 3187 ( btrecordimagecmp PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "2249 2249" _null_ _null_ _null_ _null_ _null_ btrecordimagecmp _null_ _null_ _null_ )); -DESCR("less-equal-greater based on byte images"); - -/* Extensions */ -DATA(insert OID = 3082 ( pg_available_extensions PGNSP PGUID 12 10 100 0 0 f f f t t s s 0 0 2249 "" "{19,25,25}" "{o,o,o}" "{name,default_version,comment}" _null_ _null_ pg_available_extensions _null_ _null_ _null_ )); -DESCR("list available extensions"); -DATA(insert OID = 3083 ( pg_available_extension_versions PGNSP PGUID 12 10 100 0 0 f f f t t s s 0 0 2249 "" "{19,25,16,16,19,1003,25}" "{o,o,o,o,o,o,o}" "{name,version,superuser,relocatable,schema,requires,comment}" _null_ _null_ pg_available_extension_versions _null_ _null_ _null_ )); -DESCR("list available extension versions"); -DATA(insert OID = 3084 ( pg_extension_update_paths PGNSP PGUID 12 10 100 0 0 f f f t t s s 1 0 2249 "19" "{19,25,25,25}" "{i,o,o,o}" "{name,source,target,path}" _null_ _null_ pg_extension_update_paths _null_ _null_ _null_ )); -DESCR("list an extension's version update paths"); -DATA(insert OID = 3086 ( pg_extension_config_dump PGNSP PGUID 12 1 0 0 0 f f f t f v u 2 0 2278 "2205 25" _null_ _null_ _null_ _null_ _null_ pg_extension_config_dump _null_ _null_ _null_ )); -DESCR("flag an extension's table contents to be emitted by pg_dump"); - -/* SQL-spec window functions */ -DATA(insert OID = 3100 ( row_number PGNSP PGUID 12 1 0 0 0 w f f f f i s 0 0 20 "" _null_ _null_ _null_ _null_ _null_ window_row_number _null_ _null_ _null_ )); -DESCR("row number within partition"); -DATA(insert OID = 3101 ( rank PGNSP PGUID 12 1 0 0 0 w f f f f i s 0 0 20 "" _null_ _null_ _null_ _null_ _null_ window_rank _null_ _null_ _null_ )); -DESCR("integer rank with gaps"); -DATA(insert OID = 3102 ( dense_rank PGNSP PGUID 12 1 0 0 0 w f f f f i s 0 0 20 "" _null_ _null_ _null_ _null_ _null_ window_dense_rank _null_ _null_ _null_ )); -DESCR("integer rank without gaps"); -DATA(insert OID = 3103 ( percent_rank PGNSP PGUID 12 1 0 0 0 w f f f f i s 0 0 701 "" _null_ _null_ _null_ _null_ _null_ window_percent_rank _null_ _null_ _null_ )); -DESCR("fractional rank within partition"); -DATA(insert OID = 3104 ( cume_dist PGNSP PGUID 12 1 0 0 0 w f f f f i s 0 0 701 "" _null_ _null_ _null_ _null_ _null_ window_cume_dist _null_ _null_ _null_ )); -DESCR("fractional row number within partition"); -DATA(insert OID = 3105 ( ntile PGNSP PGUID 12 1 0 0 0 w f f t f i s 1 0 23 "23" _null_ _null_ _null_ _null_ _null_ window_ntile _null_ _null_ _null_ )); -DESCR("split rows into N groups"); -DATA(insert OID = 3106 ( lag PGNSP PGUID 12 1 0 0 0 w f f t f i s 1 0 2283 "2283" _null_ _null_ _null_ _null_ _null_ window_lag _null_ _null_ _null_ )); -DESCR("fetch the preceding row value"); -DATA(insert OID = 3107 ( lag PGNSP PGUID 12 1 0 0 0 w f f t f i s 2 0 2283 "2283 23" _null_ _null_ _null_ _null_ _null_ window_lag_with_offset _null_ _null_ _null_ )); -DESCR("fetch the Nth preceding row value"); -DATA(insert OID = 3108 ( lag PGNSP PGUID 12 1 0 0 0 w f f t f i s 3 0 2283 "2283 23 2283" _null_ _null_ _null_ _null_ _null_ window_lag_with_offset_and_default _null_ _null_ _null_ )); -DESCR("fetch the Nth preceding row value with default"); -DATA(insert OID = 3109 ( lead PGNSP PGUID 12 1 0 0 0 w f f t f i s 1 0 2283 "2283" _null_ _null_ _null_ _null_ _null_ window_lead _null_ _null_ _null_ )); -DESCR("fetch the following row value"); -DATA(insert OID = 3110 ( lead PGNSP PGUID 12 1 0 0 0 w f f t f i s 2 0 2283 "2283 23" _null_ _null_ _null_ _null_ _null_ window_lead_with_offset _null_ _null_ _null_ )); -DESCR("fetch the Nth following row value"); -DATA(insert OID = 3111 ( lead PGNSP PGUID 12 1 0 0 0 w f f t f i s 3 0 2283 "2283 23 2283" _null_ _null_ _null_ _null_ _null_ window_lead_with_offset_and_default _null_ _null_ _null_ )); -DESCR("fetch the Nth following row value with default"); -DATA(insert OID = 3112 ( first_value PGNSP PGUID 12 1 0 0 0 w f f t f i s 1 0 2283 "2283" _null_ _null_ _null_ _null_ _null_ window_first_value _null_ _null_ _null_ )); -DESCR("fetch the first row value"); -DATA(insert OID = 3113 ( last_value PGNSP PGUID 12 1 0 0 0 w f f t f i s 1 0 2283 "2283" _null_ _null_ _null_ _null_ _null_ window_last_value _null_ _null_ _null_ )); -DESCR("fetch the last row value"); -DATA(insert OID = 3114 ( nth_value PGNSP PGUID 12 1 0 0 0 w f f t f i s 2 0 2283 "2283 23" _null_ _null_ _null_ _null_ _null_ window_nth_value _null_ _null_ _null_ )); -DESCR("fetch the Nth row value"); - -/* functions for range types */ -DATA(insert OID = 3832 ( anyrange_in PGNSP PGUID 12 1 0 0 0 f f f t f s s 3 0 3831 "2275 26 23" _null_ _null_ _null_ _null_ _null_ anyrange_in _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 3833 ( anyrange_out PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 2275 "3831" _null_ _null_ _null_ _null_ _null_ anyrange_out _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 3834 ( range_in PGNSP PGUID 12 1 0 0 0 f f f t f s s 3 0 3831 "2275 26 23" _null_ _null_ _null_ _null_ _null_ range_in _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 3835 ( range_out PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 2275 "3831" _null_ _null_ _null_ _null_ _null_ range_out _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 3836 ( range_recv PGNSP PGUID 12 1 0 0 0 f f f t f s s 3 0 3831 "2281 26 23" _null_ _null_ _null_ _null_ _null_ range_recv _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 3837 ( range_send PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 17 "3831" _null_ _null_ _null_ _null_ _null_ range_send _null_ _null_ _null_ )); -DESCR("I/O"); -DATA(insert OID = 3848 ( lower PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2283 "3831" _null_ _null_ _null_ _null_ _null_ range_lower _null_ _null_ _null_ )); -DESCR("lower bound of range"); -DATA(insert OID = 3849 ( upper PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 2283 "3831" _null_ _null_ _null_ _null_ _null_ range_upper _null_ _null_ _null_ )); -DESCR("upper bound of range"); -DATA(insert OID = 3850 ( isempty PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 16 "3831" _null_ _null_ _null_ _null_ _null_ range_empty _null_ _null_ _null_ )); -DESCR("is the range empty?"); -DATA(insert OID = 3851 ( lower_inc PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 16 "3831" _null_ _null_ _null_ _null_ _null_ range_lower_inc _null_ _null_ _null_ )); -DESCR("is the range's lower bound inclusive?"); -DATA(insert OID = 3852 ( upper_inc PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 16 "3831" _null_ _null_ _null_ _null_ _null_ range_upper_inc _null_ _null_ _null_ )); -DESCR("is the range's upper bound inclusive?"); -DATA(insert OID = 3853 ( lower_inf PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 16 "3831" _null_ _null_ _null_ _null_ _null_ range_lower_inf _null_ _null_ _null_ )); -DESCR("is the range's lower bound infinite?"); -DATA(insert OID = 3854 ( upper_inf PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 16 "3831" _null_ _null_ _null_ _null_ _null_ range_upper_inf _null_ _null_ _null_ )); -DESCR("is the range's upper bound infinite?"); -DATA(insert OID = 3855 ( range_eq PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "3831 3831" _null_ _null_ _null_ _null_ _null_ range_eq _null_ _null_ _null_ )); -DATA(insert OID = 3856 ( range_ne PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "3831 3831" _null_ _null_ _null_ _null_ _null_ range_ne _null_ _null_ _null_ )); -DATA(insert OID = 3857 ( range_overlaps PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "3831 3831" _null_ _null_ _null_ _null_ _null_ range_overlaps _null_ _null_ _null_ )); -DATA(insert OID = 3858 ( range_contains_elem PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "3831 2283" _null_ _null_ _null_ _null_ _null_ range_contains_elem _null_ _null_ _null_ )); -DATA(insert OID = 3859 ( range_contains PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "3831 3831" _null_ _null_ _null_ _null_ _null_ range_contains _null_ _null_ _null_ )); -DATA(insert OID = 3860 ( elem_contained_by_range PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "2283 3831" _null_ _null_ _null_ _null_ _null_ elem_contained_by_range _null_ _null_ _null_ )); -DATA(insert OID = 3861 ( range_contained_by PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "3831 3831" _null_ _null_ _null_ _null_ _null_ range_contained_by _null_ _null_ _null_ )); -DATA(insert OID = 3862 ( range_adjacent PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "3831 3831" _null_ _null_ _null_ _null_ _null_ range_adjacent _null_ _null_ _null_ )); -DATA(insert OID = 3863 ( range_before PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "3831 3831" _null_ _null_ _null_ _null_ _null_ range_before _null_ _null_ _null_ )); -DATA(insert OID = 3864 ( range_after PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "3831 3831" _null_ _null_ _null_ _null_ _null_ range_after _null_ _null_ _null_ )); -DATA(insert OID = 3865 ( range_overleft PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "3831 3831" _null_ _null_ _null_ _null_ _null_ range_overleft _null_ _null_ _null_ )); -DATA(insert OID = 3866 ( range_overright PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "3831 3831" _null_ _null_ _null_ _null_ _null_ range_overright _null_ _null_ _null_ )); -DATA(insert OID = 3867 ( range_union PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 3831 "3831 3831" _null_ _null_ _null_ _null_ _null_ range_union _null_ _null_ _null_ )); -DATA(insert OID = 4057 ( range_merge PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 3831 "3831 3831" _null_ _null_ _null_ _null_ _null_ range_merge _null_ _null_ _null_ )); -DESCR("the smallest range which includes both of the given ranges"); -DATA(insert OID = 3868 ( range_intersect PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 3831 "3831 3831" _null_ _null_ _null_ _null_ _null_ range_intersect _null_ _null_ _null_ )); -DATA(insert OID = 3869 ( range_minus PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 3831 "3831 3831" _null_ _null_ _null_ _null_ _null_ range_minus _null_ _null_ _null_ )); -DATA(insert OID = 3870 ( range_cmp PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 23 "3831 3831" _null_ _null_ _null_ _null_ _null_ range_cmp _null_ _null_ _null_ )); -DESCR("less-equal-greater"); -DATA(insert OID = 3871 ( range_lt PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "3831 3831" _null_ _null_ _null_ _null_ _null_ range_lt _null_ _null_ _null_ )); -DATA(insert OID = 3872 ( range_le PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "3831 3831" _null_ _null_ _null_ _null_ _null_ range_le _null_ _null_ _null_ )); -DATA(insert OID = 3873 ( range_ge PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "3831 3831" _null_ _null_ _null_ _null_ _null_ range_ge _null_ _null_ _null_ )); -DATA(insert OID = 3874 ( range_gt PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "3831 3831" _null_ _null_ _null_ _null_ _null_ range_gt _null_ _null_ _null_ )); -DATA(insert OID = 3875 ( range_gist_consistent PGNSP PGUID 12 1 0 0 0 f f f t f i s 5 0 16 "2281 3831 21 26 2281" _null_ _null_ _null_ _null_ _null_ range_gist_consistent _null_ _null_ _null_ )); -DESCR("GiST support"); -DATA(insert OID = 3876 ( range_gist_union PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 3831 "2281 2281" _null_ _null_ _null_ _null_ _null_ range_gist_union _null_ _null_ _null_ )); -DESCR("GiST support"); -DATA(insert OID = 3879 ( range_gist_penalty PGNSP PGUID 12 1 0 0 0 f f f t f i s 3 0 2281 "2281 2281 2281" _null_ _null_ _null_ _null_ _null_ range_gist_penalty _null_ _null_ _null_ )); -DESCR("GiST support"); -DATA(insert OID = 3880 ( range_gist_picksplit PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 2281 "2281 2281" _null_ _null_ _null_ _null_ _null_ range_gist_picksplit _null_ _null_ _null_ )); -DESCR("GiST support"); -DATA(insert OID = 3881 ( range_gist_same PGNSP PGUID 12 1 0 0 0 f f f t f i s 3 0 2281 "3831 3831 2281" _null_ _null_ _null_ _null_ _null_ range_gist_same _null_ _null_ _null_ )); -DESCR("GiST support"); -DATA(insert OID = 3902 ( hash_range PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 23 "3831" _null_ _null_ _null_ _null_ _null_ hash_range _null_ _null_ _null_ )); -DESCR("hash a range"); -DATA(insert OID = 3417 ( hash_range_extended PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 20 "3831 20" _null_ _null_ _null_ _null_ _null_ hash_range_extended _null_ _null_ _null_ )); -DESCR("hash a range"); -DATA(insert OID = 3916 ( range_typanalyze PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 16 "2281" _null_ _null_ _null_ _null_ _null_ range_typanalyze _null_ _null_ _null_ )); -DESCR("range typanalyze"); -DATA(insert OID = 3169 ( rangesel PGNSP PGUID 12 1 0 0 0 f f f t f s s 4 0 701 "2281 26 2281 23" _null_ _null_ _null_ _null_ _null_ rangesel _null_ _null_ _null_ )); -DESCR("restriction selectivity for range operators"); - -DATA(insert OID = 3914 ( int4range_canonical PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 3904 "3904" _null_ _null_ _null_ _null_ _null_ int4range_canonical _null_ _null_ _null_ )); -DESCR("convert an int4 range to canonical form"); -DATA(insert OID = 3928 ( int8range_canonical PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 3926 "3926" _null_ _null_ _null_ _null_ _null_ int8range_canonical _null_ _null_ _null_ )); -DESCR("convert an int8 range to canonical form"); -DATA(insert OID = 3915 ( daterange_canonical PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 3912 "3912" _null_ _null_ _null_ _null_ _null_ daterange_canonical _null_ _null_ _null_ )); -DESCR("convert a date range to canonical form"); -DATA(insert OID = 3922 ( int4range_subdiff PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 701 "23 23" _null_ _null_ _null_ _null_ _null_ int4range_subdiff _null_ _null_ _null_ )); -DESCR("float8 difference of two int4 values"); -DATA(insert OID = 3923 ( int8range_subdiff PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 701 "20 20" _null_ _null_ _null_ _null_ _null_ int8range_subdiff _null_ _null_ _null_ )); -DESCR("float8 difference of two int8 values"); -DATA(insert OID = 3924 ( numrange_subdiff PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 701 "1700 1700" _null_ _null_ _null_ _null_ _null_ numrange_subdiff _null_ _null_ _null_ )); -DESCR("float8 difference of two numeric values"); -DATA(insert OID = 3925 ( daterange_subdiff PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 701 "1082 1082" _null_ _null_ _null_ _null_ _null_ daterange_subdiff _null_ _null_ _null_ )); -DESCR("float8 difference of two date values"); -DATA(insert OID = 3929 ( tsrange_subdiff PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 701 "1114 1114" _null_ _null_ _null_ _null_ _null_ tsrange_subdiff _null_ _null_ _null_ )); -DESCR("float8 difference of two timestamp values"); -DATA(insert OID = 3930 ( tstzrange_subdiff PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 701 "1184 1184" _null_ _null_ _null_ _null_ _null_ tstzrange_subdiff _null_ _null_ _null_ )); -DESCR("float8 difference of two timestamp with time zone values"); - -DATA(insert OID = 3840 ( int4range PGNSP PGUID 12 1 0 0 0 f f f f f i s 2 0 3904 "23 23" _null_ _null_ _null_ _null_ _null_ range_constructor2 _null_ _null_ _null_ )); -DESCR("int4range constructor"); -DATA(insert OID = 3841 ( int4range PGNSP PGUID 12 1 0 0 0 f f f f f i s 3 0 3904 "23 23 25" _null_ _null_ _null_ _null_ _null_ range_constructor3 _null_ _null_ _null_ )); -DESCR("int4range constructor"); -DATA(insert OID = 3844 ( numrange PGNSP PGUID 12 1 0 0 0 f f f f f i s 2 0 3906 "1700 1700" _null_ _null_ _null_ _null_ _null_ range_constructor2 _null_ _null_ _null_ )); -DESCR("numrange constructor"); -DATA(insert OID = 3845 ( numrange PGNSP PGUID 12 1 0 0 0 f f f f f i s 3 0 3906 "1700 1700 25" _null_ _null_ _null_ _null_ _null_ range_constructor3 _null_ _null_ _null_ )); -DESCR("numrange constructor"); -DATA(insert OID = 3933 ( tsrange PGNSP PGUID 12 1 0 0 0 f f f f f i s 2 0 3908 "1114 1114" _null_ _null_ _null_ _null_ _null_ range_constructor2 _null_ _null_ _null_ )); -DESCR("tsrange constructor"); -DATA(insert OID = 3934 ( tsrange PGNSP PGUID 12 1 0 0 0 f f f f f i s 3 0 3908 "1114 1114 25" _null_ _null_ _null_ _null_ _null_ range_constructor3 _null_ _null_ _null_ )); -DESCR("tsrange constructor"); -DATA(insert OID = 3937 ( tstzrange PGNSP PGUID 12 1 0 0 0 f f f f f i s 2 0 3910 "1184 1184" _null_ _null_ _null_ _null_ _null_ range_constructor2 _null_ _null_ _null_ )); -DESCR("tstzrange constructor"); -DATA(insert OID = 3938 ( tstzrange PGNSP PGUID 12 1 0 0 0 f f f f f i s 3 0 3910 "1184 1184 25" _null_ _null_ _null_ _null_ _null_ range_constructor3 _null_ _null_ _null_ )); -DESCR("tstzrange constructor"); -DATA(insert OID = 3941 ( daterange PGNSP PGUID 12 1 0 0 0 f f f f f i s 2 0 3912 "1082 1082" _null_ _null_ _null_ _null_ _null_ range_constructor2 _null_ _null_ _null_ )); -DESCR("daterange constructor"); -DATA(insert OID = 3942 ( daterange PGNSP PGUID 12 1 0 0 0 f f f f f i s 3 0 3912 "1082 1082 25" _null_ _null_ _null_ _null_ _null_ range_constructor3 _null_ _null_ _null_ )); -DESCR("daterange constructor"); -DATA(insert OID = 3945 ( int8range PGNSP PGUID 12 1 0 0 0 f f f f f i s 2 0 3926 "20 20" _null_ _null_ _null_ _null_ _null_ range_constructor2 _null_ _null_ _null_ )); -DESCR("int8range constructor"); -DATA(insert OID = 3946 ( int8range PGNSP PGUID 12 1 0 0 0 f f f f f i s 3 0 3926 "20 20 25" _null_ _null_ _null_ _null_ _null_ range_constructor3 _null_ _null_ _null_ )); -DESCR("int8range constructor"); - -/* date, time, timestamp constructors */ -DATA(insert OID = 3846 ( make_date PGNSP PGUID 12 1 0 0 0 f f f t f i s 3 0 1082 "23 23 23" _null_ _null_ "{year,month,day}" _null_ _null_ make_date _null_ _null_ _null_ )); -DESCR("construct date"); -DATA(insert OID = 3847 ( make_time PGNSP PGUID 12 1 0 0 0 f f f t f i s 3 0 1083 "23 23 701" _null_ _null_ "{hour,min,sec}" _null_ _null_ make_time _null_ _null_ _null_ )); -DESCR("construct time"); -DATA(insert OID = 3461 ( make_timestamp PGNSP PGUID 12 1 0 0 0 f f f t f i s 6 0 1114 "23 23 23 23 23 701" _null_ _null_ "{year,month,mday,hour,min,sec}" _null_ _null_ make_timestamp _null_ _null_ _null_ )); -DESCR("construct timestamp"); -DATA(insert OID = 3462 ( make_timestamptz PGNSP PGUID 12 1 0 0 0 f f f t f s s 6 0 1184 "23 23 23 23 23 701" _null_ _null_ "{year,month,mday,hour,min,sec}" _null_ _null_ make_timestamptz _null_ _null_ _null_ )); -DESCR("construct timestamp with time zone"); -DATA(insert OID = 3463 ( make_timestamptz PGNSP PGUID 12 1 0 0 0 f f f t f s s 7 0 1184 "23 23 23 23 23 701 25" _null_ _null_ "{year,month,mday,hour,min,sec,timezone}" _null_ _null_ make_timestamptz_at_timezone _null_ _null_ _null_ )); -DESCR("construct timestamp with time zone"); -DATA(insert OID = 3464 ( make_interval PGNSP PGUID 12 1 0 0 0 f f f t f i s 7 0 1186 "23 23 23 23 23 23 701" _null_ _null_ "{years,months,weeks,days,hours,mins,secs}" _null_ _null_ make_interval _null_ _null_ _null_ )); -DESCR("construct interval"); - -/* spgist opclasses */ -DATA(insert OID = 4018 ( spg_quad_config PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 2278 "2281 2281" _null_ _null_ _null_ _null_ _null_ spg_quad_config _null_ _null_ _null_ )); -DESCR("SP-GiST support for quad tree over point"); -DATA(insert OID = 4019 ( spg_quad_choose PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 2278 "2281 2281" _null_ _null_ _null_ _null_ _null_ spg_quad_choose _null_ _null_ _null_ )); -DESCR("SP-GiST support for quad tree over point"); -DATA(insert OID = 4020 ( spg_quad_picksplit PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 2278 "2281 2281" _null_ _null_ _null_ _null_ _null_ spg_quad_picksplit _null_ _null_ _null_ )); -DESCR("SP-GiST support for quad tree over point"); -DATA(insert OID = 4021 ( spg_quad_inner_consistent PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 2278 "2281 2281" _null_ _null_ _null_ _null_ _null_ spg_quad_inner_consistent _null_ _null_ _null_ )); -DESCR("SP-GiST support for quad tree over point"); -DATA(insert OID = 4022 ( spg_quad_leaf_consistent PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "2281 2281" _null_ _null_ _null_ _null_ _null_ spg_quad_leaf_consistent _null_ _null_ _null_ )); -DESCR("SP-GiST support for quad tree and k-d tree over point"); - -DATA(insert OID = 4023 ( spg_kd_config PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 2278 "2281 2281" _null_ _null_ _null_ _null_ _null_ spg_kd_config _null_ _null_ _null_ )); -DESCR("SP-GiST support for k-d tree over point"); -DATA(insert OID = 4024 ( spg_kd_choose PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 2278 "2281 2281" _null_ _null_ _null_ _null_ _null_ spg_kd_choose _null_ _null_ _null_ )); -DESCR("SP-GiST support for k-d tree over point"); -DATA(insert OID = 4025 ( spg_kd_picksplit PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 2278 "2281 2281" _null_ _null_ _null_ _null_ _null_ spg_kd_picksplit _null_ _null_ _null_ )); -DESCR("SP-GiST support for k-d tree over point"); -DATA(insert OID = 4026 ( spg_kd_inner_consistent PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 2278 "2281 2281" _null_ _null_ _null_ _null_ _null_ spg_kd_inner_consistent _null_ _null_ _null_ )); -DESCR("SP-GiST support for k-d tree over point"); - -DATA(insert OID = 4027 ( spg_text_config PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 2278 "2281 2281" _null_ _null_ _null_ _null_ _null_ spg_text_config _null_ _null_ _null_ )); -DESCR("SP-GiST support for radix tree over text"); -DATA(insert OID = 4028 ( spg_text_choose PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 2278 "2281 2281" _null_ _null_ _null_ _null_ _null_ spg_text_choose _null_ _null_ _null_ )); -DESCR("SP-GiST support for radix tree over text"); -DATA(insert OID = 4029 ( spg_text_picksplit PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 2278 "2281 2281" _null_ _null_ _null_ _null_ _null_ spg_text_picksplit _null_ _null_ _null_ )); -DESCR("SP-GiST support for radix tree over text"); -DATA(insert OID = 4030 ( spg_text_inner_consistent PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 2278 "2281 2281" _null_ _null_ _null_ _null_ _null_ spg_text_inner_consistent _null_ _null_ _null_ )); -DESCR("SP-GiST support for radix tree over text"); -DATA(insert OID = 4031 ( spg_text_leaf_consistent PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "2281 2281" _null_ _null_ _null_ _null_ _null_ spg_text_leaf_consistent _null_ _null_ _null_ )); -DESCR("SP-GiST support for radix tree over text"); - -DATA(insert OID = 3469 ( spg_range_quad_config PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 2278 "2281 2281" _null_ _null_ _null_ _null_ _null_ spg_range_quad_config _null_ _null_ _null_ )); -DESCR("SP-GiST support for quad tree over range"); -DATA(insert OID = 3470 ( spg_range_quad_choose PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 2278 "2281 2281" _null_ _null_ _null_ _null_ _null_ spg_range_quad_choose _null_ _null_ _null_ )); -DESCR("SP-GiST support for quad tree over range"); -DATA(insert OID = 3471 ( spg_range_quad_picksplit PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 2278 "2281 2281" _null_ _null_ _null_ _null_ _null_ spg_range_quad_picksplit _null_ _null_ _null_ )); -DESCR("SP-GiST support for quad tree over range"); -DATA(insert OID = 3472 ( spg_range_quad_inner_consistent PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 2278 "2281 2281" _null_ _null_ _null_ _null_ _null_ spg_range_quad_inner_consistent _null_ _null_ _null_ )); -DESCR("SP-GiST support for quad tree over range"); -DATA(insert OID = 3473 ( spg_range_quad_leaf_consistent PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "2281 2281" _null_ _null_ _null_ _null_ _null_ spg_range_quad_leaf_consistent _null_ _null_ _null_ )); -DESCR("SP-GiST support for quad tree over range"); - -DATA(insert OID = 5012 ( spg_box_quad_config PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 2278 "2281 2281" _null_ _null_ _null_ _null_ _null_ spg_box_quad_config _null_ _null_ _null_ )); -DESCR("SP-GiST support for quad tree over box"); -DATA(insert OID = 5013 ( spg_box_quad_choose PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 2278 "2281 2281" _null_ _null_ _null_ _null_ _null_ spg_box_quad_choose _null_ _null_ _null_ )); -DESCR("SP-GiST support for quad tree over box"); -DATA(insert OID = 5014 ( spg_box_quad_picksplit PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 2278 "2281 2281" _null_ _null_ _null_ _null_ _null_ spg_box_quad_picksplit _null_ _null_ _null_ )); -DESCR("SP-GiST support for quad tree over box"); -DATA(insert OID = 5015 ( spg_box_quad_inner_consistent PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 2278 "2281 2281" _null_ _null_ _null_ _null_ _null_ spg_box_quad_inner_consistent _null_ _null_ _null_ )); -DESCR("SP-GiST support for quad tree over box"); -DATA(insert OID = 5016 ( spg_box_quad_leaf_consistent PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 16 "2281 2281" _null_ _null_ _null_ _null_ _null_ spg_box_quad_leaf_consistent _null_ _null_ _null_ )); -DESCR("SP-GiST support for quad tree over box"); - -DATA(insert OID = 5010 ( spg_bbox_quad_config PGNSP PGUID 12 1 0 0 0 f f f t f i s 2 0 2278 "2281 2281" _null_ _null_ _null_ _null_ _null_ spg_bbox_quad_config _null_ _null_ _null_ )); -DESCR("SP-GiST support for quad tree over 2-D types represented by their bounding boxes"); -DATA(insert OID = 5011 ( spg_poly_quad_compress PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 603 "604" _null_ _null_ _null_ _null_ _null_ spg_poly_quad_compress _null_ _null_ _null_ )); -DESCR("SP-GiST support for quad tree over polygons"); - -/* replication slots */ -DATA(insert OID = 3779 ( pg_create_physical_replication_slot PGNSP PGUID 12 1 0 0 0 f f f t f v u 3 0 2249 "19 16 16" "{19,16,16,19,3220}" "{i,i,i,o,o}" "{slot_name,immediately_reserve,temporary,slot_name,lsn}" _null_ _null_ pg_create_physical_replication_slot _null_ _null_ _null_ )); -DESCR("create a physical replication slot"); -DATA(insert OID = 3780 ( pg_drop_replication_slot PGNSP PGUID 12 1 0 0 0 f f f t f v u 1 0 2278 "19" _null_ _null_ _null_ _null_ _null_ pg_drop_replication_slot _null_ _null_ _null_ )); -DESCR("drop a replication slot"); -DATA(insert OID = 3781 ( pg_get_replication_slots PGNSP PGUID 12 1 10 0 0 f f f f t s s 0 0 2249 "" "{19,19,25,26,16,16,23,28,28,3220,3220}" "{o,o,o,o,o,o,o,o,o,o,o}" "{slot_name,plugin,slot_type,datoid,temporary,active,active_pid,xmin,catalog_xmin,restart_lsn,confirmed_flush_lsn}" _null_ _null_ pg_get_replication_slots _null_ _null_ _null_ )); -DESCR("information about replication slots currently in use"); -DATA(insert OID = 3786 ( pg_create_logical_replication_slot PGNSP PGUID 12 1 0 0 0 f f f t f v u 3 0 2249 "19 19 16" "{19,19,16,25,3220}" "{i,i,i,o,o}" "{slot_name,plugin,temporary,slot_name,lsn}" _null_ _null_ pg_create_logical_replication_slot _null_ _null_ _null_ )); -DESCR("set up a logical replication slot"); -DATA(insert OID = 3782 ( pg_logical_slot_get_changes PGNSP PGUID 12 1000 1000 25 0 f f f f t v u 4 0 2249 "19 3220 23 1009" "{19,3220,23,1009,3220,28,25}" "{i,i,i,v,o,o,o}" "{slot_name,upto_lsn,upto_nchanges,options,lsn,xid,data}" _null_ _null_ pg_logical_slot_get_changes _null_ _null_ _null_ )); -DESCR("get changes from replication slot"); -DATA(insert OID = 3783 ( pg_logical_slot_get_binary_changes PGNSP PGUID 12 1000 1000 25 0 f f f f t v u 4 0 2249 "19 3220 23 1009" "{19,3220,23,1009,3220,28,17}" "{i,i,i,v,o,o,o}" "{slot_name,upto_lsn,upto_nchanges,options,lsn,xid,data}" _null_ _null_ pg_logical_slot_get_binary_changes _null_ _null_ _null_ )); -DESCR("get binary changes from replication slot"); -DATA(insert OID = 3784 ( pg_logical_slot_peek_changes PGNSP PGUID 12 1000 1000 25 0 f f f f t v u 4 0 2249 "19 3220 23 1009" "{19,3220,23,1009,3220,28,25}" "{i,i,i,v,o,o,o}" "{slot_name,upto_lsn,upto_nchanges,options,lsn,xid,data}" _null_ _null_ pg_logical_slot_peek_changes _null_ _null_ _null_ )); -DESCR("peek at changes from replication slot"); -DATA(insert OID = 3785 ( pg_logical_slot_peek_binary_changes PGNSP PGUID 12 1000 1000 25 0 f f f f t v u 4 0 2249 "19 3220 23 1009" "{19,3220,23,1009,3220,28,17}" "{i,i,i,v,o,o,o}" "{slot_name,upto_lsn,upto_nchanges,options,lsn,xid,data}" _null_ _null_ pg_logical_slot_peek_binary_changes _null_ _null_ _null_ )); -DESCR("peek at binary changes from replication slot"); -DATA(insert OID = 3878 ( pg_replication_slot_advance PGNSP PGUID 12 1 0 0 0 f f f t f v u 2 0 2249 "19 3220" "{19,3220,19,3220}" "{i,i,o,o}" "{slot_name,upto_lsn,slot_name,end_lsn}" _null_ _null_ pg_replication_slot_advance _null_ _null_ _null_ )); -DESCR("advance logical replication slot"); -DATA(insert OID = 3577 ( pg_logical_emit_message PGNSP PGUID 12 1 0 0 0 f f f t f v u 3 0 3220 "16 25 25" _null_ _null_ _null_ _null_ _null_ pg_logical_emit_message_text _null_ _null_ _null_ )); -DESCR("emit a textual logical decoding message"); -DATA(insert OID = 3578 ( pg_logical_emit_message PGNSP PGUID 12 1 0 0 0 f f f t f v u 3 0 3220 "16 25 17" _null_ _null_ _null_ _null_ _null_ pg_logical_emit_message_bytea _null_ _null_ _null_ )); -DESCR("emit a binary logical decoding message"); - -/* event triggers */ -DATA(insert OID = 3566 ( pg_event_trigger_dropped_objects PGNSP PGUID 12 10 100 0 0 f f f t t s r 0 0 2249 "" "{26,26,23,16,16,16,25,25,25,25,1009,1009}" "{o,o,o,o,o,o,o,o,o,o,o,o}" "{classid, objid, objsubid, original, normal, is_temporary, object_type, schema_name, object_name, object_identity, address_names, address_args}" _null_ _null_ pg_event_trigger_dropped_objects _null_ _null_ _null_ )); -DESCR("list objects dropped by the current command"); -DATA(insert OID = 4566 ( pg_event_trigger_table_rewrite_oid PGNSP PGUID 12 1 0 0 0 f f f t f s r 0 0 26 "" "{26}" "{o}" "{oid}" _null_ _null_ pg_event_trigger_table_rewrite_oid _null_ _null_ _null_ )); -DESCR("return Oid of the table getting rewritten"); -DATA(insert OID = 4567 ( pg_event_trigger_table_rewrite_reason PGNSP PGUID 12 1 0 0 0 f f f t f s r 0 0 23 "" _null_ _null_ _null_ _null_ _null_ pg_event_trigger_table_rewrite_reason _null_ _null_ _null_ )); -DESCR("return reason code for table getting rewritten"); -DATA(insert OID = 4568 ( pg_event_trigger_ddl_commands PGNSP PGUID 12 10 100 0 0 f f f t t s r 0 0 2249 "" "{26,26,23,25,25,25,25,16,32}" "{o,o,o,o,o,o,o,o,o}" "{classid, objid, objsubid, command_tag, object_type, schema_name, object_identity, in_extension, command}" _null_ _null_ pg_event_trigger_ddl_commands _null_ _null_ _null_ )); -DESCR("list DDL actions being executed by the current command"); - -/* generic transition functions for ordered-set aggregates */ -DATA(insert OID = 3970 ( ordered_set_transition PGNSP PGUID 12 1 0 0 0 f f f f f i s 2 0 2281 "2281 2276" _null_ _null_ _null_ _null_ _null_ ordered_set_transition _null_ _null_ _null_ )); -DESCR("aggregate transition function"); -DATA(insert OID = 3971 ( ordered_set_transition_multi PGNSP PGUID 12 1 0 2276 0 f f f f f i s 2 0 2281 "2281 2276" "{2281,2276}" "{i,v}" _null_ _null_ _null_ ordered_set_transition_multi _null_ _null_ _null_ )); -DESCR("aggregate transition function"); - -/* inverse distribution aggregates (and their support functions) */ -DATA(insert OID = 3972 ( percentile_disc PGNSP PGUID 12 1 0 0 0 a f f f f i s 2 0 2283 "701 2283" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("discrete percentile"); -DATA(insert OID = 3973 ( percentile_disc_final PGNSP PGUID 12 1 0 0 0 f f f f f i s 3 0 2283 "2281 701 2283" _null_ _null_ _null_ _null_ _null_ percentile_disc_final _null_ _null_ _null_ )); -DESCR("aggregate final function"); -DATA(insert OID = 3974 ( percentile_cont PGNSP PGUID 12 1 0 0 0 a f f f f i s 2 0 701 "701 701" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("continuous distribution percentile"); -DATA(insert OID = 3975 ( percentile_cont_float8_final PGNSP PGUID 12 1 0 0 0 f f f f f i s 2 0 701 "2281 701" _null_ _null_ _null_ _null_ _null_ percentile_cont_float8_final _null_ _null_ _null_ )); -DESCR("aggregate final function"); -DATA(insert OID = 3976 ( percentile_cont PGNSP PGUID 12 1 0 0 0 a f f f f i s 2 0 1186 "701 1186" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("continuous distribution percentile"); -DATA(insert OID = 3977 ( percentile_cont_interval_final PGNSP PGUID 12 1 0 0 0 f f f f f i s 2 0 1186 "2281 701" _null_ _null_ _null_ _null_ _null_ percentile_cont_interval_final _null_ _null_ _null_ )); -DESCR("aggregate final function"); -DATA(insert OID = 3978 ( percentile_disc PGNSP PGUID 12 1 0 0 0 a f f f f i s 2 0 2277 "1022 2283" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("multiple discrete percentiles"); -DATA(insert OID = 3979 ( percentile_disc_multi_final PGNSP PGUID 12 1 0 0 0 f f f f f i s 3 0 2277 "2281 1022 2283" _null_ _null_ _null_ _null_ _null_ percentile_disc_multi_final _null_ _null_ _null_ )); -DESCR("aggregate final function"); -DATA(insert OID = 3980 ( percentile_cont PGNSP PGUID 12 1 0 0 0 a f f f f i s 2 0 1022 "1022 701" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("multiple continuous percentiles"); -DATA(insert OID = 3981 ( percentile_cont_float8_multi_final PGNSP PGUID 12 1 0 0 0 f f f f f i s 2 0 1022 "2281 1022" _null_ _null_ _null_ _null_ _null_ percentile_cont_float8_multi_final _null_ _null_ _null_ )); -DESCR("aggregate final function"); -DATA(insert OID = 3982 ( percentile_cont PGNSP PGUID 12 1 0 0 0 a f f f f i s 2 0 1187 "1022 1186" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("multiple continuous percentiles"); -DATA(insert OID = 3983 ( percentile_cont_interval_multi_final PGNSP PGUID 12 1 0 0 0 f f f f f i s 2 0 1187 "2281 1022" _null_ _null_ _null_ _null_ _null_ percentile_cont_interval_multi_final _null_ _null_ _null_ )); -DESCR("aggregate final function"); -DATA(insert OID = 3984 ( mode PGNSP PGUID 12 1 0 0 0 a f f f f i s 1 0 2283 "2283" _null_ _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("most common value"); -DATA(insert OID = 3985 ( mode_final PGNSP PGUID 12 1 0 0 0 f f f f f i s 2 0 2283 "2281 2283" _null_ _null_ _null_ _null_ _null_ mode_final _null_ _null_ _null_ )); -DESCR("aggregate final function"); - -/* hypothetical-set aggregates (and their support functions) */ -DATA(insert OID = 3986 ( rank PGNSP PGUID 12 1 0 2276 0 a f f f f i s 1 0 20 "2276" "{2276}" "{v}" _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("rank of hypothetical row"); -DATA(insert OID = 3987 ( rank_final PGNSP PGUID 12 1 0 2276 0 f f f f f i s 2 0 20 "2281 2276" "{2281,2276}" "{i,v}" _null_ _null_ _null_ hypothetical_rank_final _null_ _null_ _null_ )); -DESCR("aggregate final function"); -DATA(insert OID = 3988 ( percent_rank PGNSP PGUID 12 1 0 2276 0 a f f f f i s 1 0 701 "2276" "{2276}" "{v}" _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("fractional rank of hypothetical row"); -DATA(insert OID = 3989 ( percent_rank_final PGNSP PGUID 12 1 0 2276 0 f f f f f i s 2 0 701 "2281 2276" "{2281,2276}" "{i,v}" _null_ _null_ _null_ hypothetical_percent_rank_final _null_ _null_ _null_ )); -DESCR("aggregate final function"); -DATA(insert OID = 3990 ( cume_dist PGNSP PGUID 12 1 0 2276 0 a f f f f i s 1 0 701 "2276" "{2276}" "{v}" _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("cumulative distribution of hypothetical row"); -DATA(insert OID = 3991 ( cume_dist_final PGNSP PGUID 12 1 0 2276 0 f f f f f i s 2 0 701 "2281 2276" "{2281,2276}" "{i,v}" _null_ _null_ _null_ hypothetical_cume_dist_final _null_ _null_ _null_ )); -DESCR("aggregate final function"); -DATA(insert OID = 3992 ( dense_rank PGNSP PGUID 12 1 0 2276 0 a f f f f i s 1 0 20 "2276" "{2276}" "{v}" _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ )); -DESCR("rank of hypothetical row without gaps"); -DATA(insert OID = 3993 ( dense_rank_final PGNSP PGUID 12 1 0 2276 0 f f f f f i s 2 0 20 "2281 2276" "{2281,2276}" "{i,v}" _null_ _null_ _null_ hypothetical_dense_rank_final _null_ _null_ _null_ )); -DESCR("aggregate final function"); - -/* pg_upgrade support */ -DATA(insert OID = 3582 ( binary_upgrade_set_next_pg_type_oid PGNSP PGUID 12 1 0 0 0 f f f t f v r 1 0 2278 "26" _null_ _null_ _null_ _null_ _null_ binary_upgrade_set_next_pg_type_oid _null_ _null_ _null_ )); -DESCR("for use by pg_upgrade"); -DATA(insert OID = 3584 ( binary_upgrade_set_next_array_pg_type_oid PGNSP PGUID 12 1 0 0 0 f f f t f v r 1 0 2278 "26" _null_ _null_ _null_ _null_ _null_ binary_upgrade_set_next_array_pg_type_oid _null_ _null_ _null_ )); -DESCR("for use by pg_upgrade"); -DATA(insert OID = 3585 ( binary_upgrade_set_next_toast_pg_type_oid PGNSP PGUID 12 1 0 0 0 f f f t f v r 1 0 2278 "26" _null_ _null_ _null_ _null_ _null_ binary_upgrade_set_next_toast_pg_type_oid _null_ _null_ _null_ )); -DESCR("for use by pg_upgrade"); -DATA(insert OID = 3586 ( binary_upgrade_set_next_heap_pg_class_oid PGNSP PGUID 12 1 0 0 0 f f f t f v r 1 0 2278 "26" _null_ _null_ _null_ _null_ _null_ binary_upgrade_set_next_heap_pg_class_oid _null_ _null_ _null_ )); -DESCR("for use by pg_upgrade"); -DATA(insert OID = 3587 ( binary_upgrade_set_next_index_pg_class_oid PGNSP PGUID 12 1 0 0 0 f f f t f v r 1 0 2278 "26" _null_ _null_ _null_ _null_ _null_ binary_upgrade_set_next_index_pg_class_oid _null_ _null_ _null_ )); -DESCR("for use by pg_upgrade"); -DATA(insert OID = 3588 ( binary_upgrade_set_next_toast_pg_class_oid PGNSP PGUID 12 1 0 0 0 f f f t f v r 1 0 2278 "26" _null_ _null_ _null_ _null_ _null_ binary_upgrade_set_next_toast_pg_class_oid _null_ _null_ _null_ )); -DESCR("for use by pg_upgrade"); -DATA(insert OID = 3589 ( binary_upgrade_set_next_pg_enum_oid PGNSP PGUID 12 1 0 0 0 f f f t f v r 1 0 2278 "26" _null_ _null_ _null_ _null_ _null_ binary_upgrade_set_next_pg_enum_oid _null_ _null_ _null_ )); -DESCR("for use by pg_upgrade"); -DATA(insert OID = 3590 ( binary_upgrade_set_next_pg_authid_oid PGNSP PGUID 12 1 0 0 0 f f f t f v r 1 0 2278 "26" _null_ _null_ _null_ _null_ _null_ binary_upgrade_set_next_pg_authid_oid _null_ _null_ _null_ )); -DESCR("for use by pg_upgrade"); -DATA(insert OID = 3591 ( binary_upgrade_create_empty_extension PGNSP PGUID 12 1 0 0 0 f f f f f v u 7 0 2278 "25 25 16 25 1028 1009 1009" _null_ _null_ _null_ _null_ _null_ binary_upgrade_create_empty_extension _null_ _null_ _null_ )); -DESCR("for use by pg_upgrade"); -DATA(insert OID = 4083 ( binary_upgrade_set_record_init_privs PGNSP PGUID 12 1 0 0 0 f f f t f v r 1 0 2278 "16" _null_ _null_ _null_ _null_ _null_ binary_upgrade_set_record_init_privs _null_ _null_ _null_ )); -DESCR("for use by pg_upgrade"); - -/* replication/origin.h */ -DATA(insert OID = 6003 ( pg_replication_origin_create PGNSP PGUID 12 1 0 0 0 f f f t f v u 1 0 26 "25" _null_ _null_ _null_ _null_ _null_ pg_replication_origin_create _null_ _null_ _null_ )); -DESCR("create a replication origin"); - -DATA(insert OID = 6004 ( pg_replication_origin_drop PGNSP PGUID 12 1 0 0 0 f f f t f v u 1 0 2278 "25" _null_ _null_ _null_ _null_ _null_ pg_replication_origin_drop _null_ _null_ _null_ )); -DESCR("drop replication origin identified by its name"); - -DATA(insert OID = 6005 ( pg_replication_origin_oid PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 26 "25" _null_ _null_ _null_ _null_ _null_ pg_replication_origin_oid _null_ _null_ _null_ )); -DESCR("translate the replication origin's name to its id"); - -DATA(insert OID = 6006 ( pg_replication_origin_session_setup PGNSP PGUID 12 1 0 0 0 f f f t f v u 1 0 2278 "25" _null_ _null_ _null_ _null_ _null_ pg_replication_origin_session_setup _null_ _null_ _null_ )); -DESCR("configure session to maintain replication progress tracking for the passed in origin"); - -DATA(insert OID = 6007 ( pg_replication_origin_session_reset PGNSP PGUID 12 1 0 0 0 f f f t f v u 0 0 2278 "" _null_ _null_ _null_ _null_ _null_ pg_replication_origin_session_reset _null_ _null_ _null_ )); -DESCR("teardown configured replication progress tracking"); - -DATA(insert OID = 6008 ( pg_replication_origin_session_is_setup PGNSP PGUID 12 1 0 0 0 f f f t f v r 0 0 16 "" _null_ _null_ _null_ _null_ _null_ pg_replication_origin_session_is_setup _null_ _null_ _null_ )); -DESCR("is a replication origin configured in this session"); - -DATA(insert OID = 6009 ( pg_replication_origin_session_progress PGNSP PGUID 12 1 0 0 0 f f f t f v u 1 0 3220 "16" _null_ _null_ _null_ _null_ _null_ pg_replication_origin_session_progress _null_ _null_ _null_ )); -DESCR("get the replication progress of the current session"); - -DATA(insert OID = 6010 ( pg_replication_origin_xact_setup PGNSP PGUID 12 1 0 0 0 f f f t f v r 2 0 2278 "3220 1184" _null_ _null_ _null_ _null_ _null_ pg_replication_origin_xact_setup _null_ _null_ _null_ )); -DESCR("setup the transaction's origin lsn and timestamp"); - -DATA(insert OID = 6011 ( pg_replication_origin_xact_reset PGNSP PGUID 12 1 0 0 0 f f f t f v r 0 0 2278 "" _null_ _null_ _null_ _null_ _null_ pg_replication_origin_xact_reset _null_ _null_ _null_ )); -DESCR("reset the transaction's origin lsn and timestamp"); - -DATA(insert OID = 6012 ( pg_replication_origin_advance PGNSP PGUID 12 1 0 0 0 f f f t f v u 2 0 2278 "25 3220" _null_ _null_ _null_ _null_ _null_ pg_replication_origin_advance _null_ _null_ _null_ )); -DESCR("advance replication identifier to specific location"); - -DATA(insert OID = 6013 ( pg_replication_origin_progress PGNSP PGUID 12 1 0 0 0 f f f t f v u 2 0 3220 "25 16" _null_ _null_ _null_ _null_ _null_ pg_replication_origin_progress _null_ _null_ _null_ )); -DESCR("get an individual replication origin's replication progress"); - -DATA(insert OID = 6014 ( pg_show_replication_origin_status PGNSP PGUID 12 1 100 0 0 f f f f t v r 0 0 2249 "" "{26,25,3220,3220}" "{o,o,o,o}" "{local_id, external_id, remote_lsn, local_lsn}" _null_ _null_ pg_show_replication_origin_status _null_ _null_ _null_ )); -DESCR("get progress for all replication origins"); - -/* publications */ -DATA(insert OID = 6119 ( pg_get_publication_tables PGNSP PGUID 12 1 1000 0 0 f f f t t s s 1 0 26 "25" "{25,26}" "{i,o}" "{pubname,relid}" _null_ _null_ pg_get_publication_tables _null_ _null_ _null_ )); -DESCR("get OIDs of tables in a publication"); -DATA(insert OID = 6121 ( pg_relation_is_publishable PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 16 "2205" _null_ _null_ _null_ _null_ _null_ pg_relation_is_publishable _null_ _null_ _null_ )); -DESCR("returns whether a relation can be part of a publication"); - -/* rls */ -DATA(insert OID = 3298 ( row_security_active PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 16 "26" _null_ _null_ _null_ _null_ _null_ row_security_active _null_ _null_ _null_ )); -DESCR("row security for current context active on table by table oid"); -DATA(insert OID = 3299 ( row_security_active PGNSP PGUID 12 1 0 0 0 f f f t f s s 1 0 16 "25" _null_ _null_ _null_ _null_ _null_ row_security_active_name _null_ _null_ _null_ )); -DESCR("row security for current context active on table by table name"); - -/* pg_config */ -DATA(insert OID = 3400 ( pg_config PGNSP PGUID 12 1 23 0 0 f f f t t i r 0 0 2249 "" "{25,25}" "{o,o}" "{name,setting}" _null_ _null_ pg_config _null_ _null_ _null_ )); -DESCR("pg_config binary as a function"); - -/* pg_controldata related functions */ -DATA(insert OID = 3441 ( pg_control_system PGNSP PGUID 12 1 0 0 0 f f f t f v s 0 0 2249 "" "{23,23,20,1184}" "{o,o,o,o}" "{pg_control_version,catalog_version_no,system_identifier,pg_control_last_modified}" _null_ _null_ pg_control_system _null_ _null_ _null_ )); -DESCR("pg_controldata general state information as a function"); - -DATA(insert OID = 3442 ( pg_control_checkpoint PGNSP PGUID 12 1 0 0 0 f f f t f v s 0 0 2249 "" "{3220,3220,25,23,23,16,25,26,28,28,28,26,28,28,26,28,28,1184}" "{o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o}" "{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}" _null_ _null_ pg_control_checkpoint _null_ _null_ _null_ )); -DESCR("pg_controldata checkpoint state information as a function"); - -DATA(insert OID = 3443 ( pg_control_recovery PGNSP PGUID 12 1 0 0 0 f f f t f v s 0 0 2249 "" "{3220,23,3220,3220,16}" "{o,o,o,o,o}" "{min_recovery_end_lsn,min_recovery_end_timeline,backup_start_lsn,backup_end_lsn,end_of_backup_record_required}" _null_ _null_ pg_control_recovery _null_ _null_ _null_ )); -DESCR("pg_controldata recovery state information as a function"); - -DATA(insert OID = 3444 ( pg_control_init PGNSP PGUID 12 1 0 0 0 f f f t f v s 0 0 2249 "" "{23,23,23,23,23,23,23,23,23,16,16,23}" "{o,o,o,o,o,o,o,o,o,o,o,o}" "{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}" _null_ _null_ pg_control_init _null_ _null_ _null_ )); -DESCR("pg_controldata init state information as a function"); - -DATA(insert OID = 3996 ( pg_disable_data_checksums PGNSP PGUID 12 1 0 0 0 f f f t f v s 0 0 2278 "" _null_ _null_ _null_ _null_ _null_ disable_data_checksums _null_ _null_ _null_ )); -DESCR("disable data checksums"); -DATA(insert OID = 3998 ( pg_enable_data_checksums PGNSP PGUID 12 1 0 0 0 f f f t f v s 2 0 2278 "23 23" _null_ _null_ "{cost_delay,cost_limit}" _null_ _null_ enable_data_checksums _null_ _null_ _null_ )); -DESCR("enable data checksums"); - -/* collation management functions */ -DATA(insert OID = 3445 ( pg_import_system_collations PGNSP PGUID 12 100 0 0 0 f f f t f v u 1 0 23 "4089" _null_ _null_ _null_ _null_ _null_ pg_import_system_collations _null_ _null_ _null_ )); -DESCR("import collations from operating system"); - -DATA(insert OID = 3448 ( pg_collation_actual_version PGNSP PGUID 12 100 0 0 0 f f f t f v s 1 0 25 "26" _null_ _null_ _null_ _null_ _null_ pg_collation_actual_version _null_ _null_ _null_ )); -DESCR("get actual version of collation from operating system"); - -/* system management/monitoring related functions */ -DATA(insert OID = 3353 ( pg_ls_logdir PGNSP PGUID 12 10 20 0 0 f f f t t v s 0 0 2249 "" "{25,20,1184}" "{o,o,o}" "{name,size,modification}" _null_ _null_ pg_ls_logdir _null_ _null_ _null_ )); -DESCR("list files in the log directory"); -DATA(insert OID = 3354 ( pg_ls_waldir PGNSP PGUID 12 10 20 0 0 f f f t t v s 0 0 2249 "" "{25,20,1184}" "{o,o,o}" "{name,size,modification}" _null_ _null_ pg_ls_waldir _null_ _null_ _null_ )); -DESCR("list of files in the WAL directory"); - -/* hash partitioning constraint function */ -DATA(insert OID = 5028 ( satisfies_hash_partition PGNSP PGUID 12 1 0 2276 0 f f f f f i s 4 0 16 "26 23 23 2276" _null_ "{i,i,i,v}" _null_ _null_ _null_ satisfies_hash_partition _null_ _null_ _null_ )); -DESCR("hash partition CHECK constraint"); +#ifdef EXPOSE_TO_CLIENT_CODE /* * Symbolic values for prokind column @@ -5657,4 +170,6 @@ DESCR("hash partition CHECK constraint"); #define PROARGMODE_VARIADIC 'v' #define PROARGMODE_TABLE 't' +#endif /* EXPOSE_TO_CLIENT_CODE */ + #endif /* PG_PROC_H */ diff --git a/src/include/catalog/pg_publication.h b/src/include/catalog/pg_publication.h index b643c489cd..9652d34528 100644 --- a/src/include/catalog/pg_publication.h +++ b/src/include/catalog/pg_publication.h @@ -9,8 +9,8 @@ * src/include/catalog/pg_publication.h * * NOTES - * the genbki.pl script reads this file and generates .bki - * information from the DATA() statements. + * The Catalog.pm module reads this file and derives schema + * information. * *------------------------------------------------------------------------- */ @@ -18,17 +18,15 @@ #define PG_PUBLICATION_H #include "catalog/genbki.h" +#include "catalog/pg_publication_d.h" #include "catalog/objectaddress.h" /* ---------------- * pg_publication definition. cpp turns this into * typedef struct FormData_pg_publication - * * ---------------- */ -#define PublicationRelationId 6104 - -CATALOG(pg_publication,6104) +CATALOG(pg_publication,6104,PublicationRelationId) { NameData pubname; /* name of the publication */ @@ -61,20 +59,6 @@ CATALOG(pg_publication,6104) */ typedef FormData_pg_publication *Form_pg_publication; -/* ---------------- - * compiler constants for pg_publication - * ---------------- - */ - -#define Natts_pg_publication 7 -#define Anum_pg_publication_pubname 1 -#define Anum_pg_publication_pubowner 2 -#define Anum_pg_publication_puballtables 3 -#define Anum_pg_publication_pubinsert 4 -#define Anum_pg_publication_pubupdate 5 -#define Anum_pg_publication_pubdelete 6 -#define Anum_pg_publication_pubtruncate 7 - typedef struct PublicationActions { bool pubinsert; diff --git a/src/include/catalog/pg_publication_rel.h b/src/include/catalog/pg_publication_rel.h index 033b600cee..2208e424f4 100644 --- a/src/include/catalog/pg_publication_rel.h +++ b/src/include/catalog/pg_publication_rel.h @@ -9,8 +9,8 @@ * src/include/catalog/pg_publication_rel.h * * NOTES - * the genbki.pl script reads this file and generates .bki - * information from the DATA() statements. + * The Catalog.pm module reads this file and derives schema + * information. * *------------------------------------------------------------------------- */ @@ -18,16 +18,14 @@ #define PG_PUBLICATION_REL_H #include "catalog/genbki.h" +#include "catalog/pg_publication_rel_d.h" /* ---------------- * pg_publication_rel definition. cpp turns this into * typedef struct FormData_pg_publication_rel - * * ---------------- */ -#define PublicationRelRelationId 6106 - -CATALOG(pg_publication_rel,6106) +CATALOG(pg_publication_rel,6106,PublicationRelRelationId) { Oid prpubid; /* Oid of the publication */ Oid prrelid; /* Oid of the relation */ @@ -40,13 +38,4 @@ CATALOG(pg_publication_rel,6106) */ typedef FormData_pg_publication_rel *Form_pg_publication_rel; -/* ---------------- - * compiler constants for pg_publication_rel - * ---------------- - */ - -#define Natts_pg_publication_rel 2 -#define Anum_pg_publication_rel_prpubid 1 -#define Anum_pg_publication_rel_prrelid 2 - #endif /* PG_PUBLICATION_REL_H */ diff --git a/src/include/catalog/pg_range.dat b/src/include/catalog/pg_range.dat new file mode 100644 index 0000000000..4781ea9d36 --- /dev/null +++ b/src/include/catalog/pg_range.dat @@ -0,0 +1,31 @@ +#---------------------------------------------------------------------- +# +# pg_range.dat +# Initial contents of the pg_range system relation. +# +# Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group +# Portions Copyright (c) 1994, Regents of the University of California +# +# src/include/catalog/pg_range.dat +# +#---------------------------------------------------------------------- + +[ + +{ rngtypid => 'int4range', rngsubtype => 'int4', rngsubopc => 'btree/int4_ops', + rngcanonical => 'int4range_canonical', rngsubdiff => 'int4range_subdiff' }, +{ rngtypid => 'numrange', rngsubtype => 'numeric', + rngsubopc => 'btree/numeric_ops', rngcanonical => '-', + rngsubdiff => 'numrange_subdiff' }, +{ rngtypid => 'tsrange', rngsubtype => 'timestamp', + rngsubopc => 'btree/timestamp_ops', rngcanonical => '-', + rngsubdiff => 'tsrange_subdiff' }, +{ rngtypid => 'tstzrange', rngsubtype => 'timestamptz', + rngsubopc => 'btree/timestamptz_ops', rngcanonical => '-', + rngsubdiff => 'tstzrange_subdiff' }, +{ rngtypid => 'daterange', rngsubtype => 'date', rngsubopc => 'btree/date_ops', + rngcanonical => 'daterange_canonical', rngsubdiff => 'daterange_subdiff' }, +{ rngtypid => 'int8range', rngsubtype => 'int8', rngsubopc => 'btree/int8_ops', + rngcanonical => 'int8range_canonical', rngsubdiff => 'int8range_subdiff' }, + +] diff --git a/src/include/catalog/pg_range.h b/src/include/catalog/pg_range.h index 00d02d1712..d8e16ccee7 100644 --- a/src/include/catalog/pg_range.h +++ b/src/include/catalog/pg_range.h @@ -2,7 +2,6 @@ * * pg_range.h * definition of the system "range" relation (pg_range) - * along with the relation's initial contents. * * * Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group @@ -11,11 +10,8 @@ * src/include/catalog/pg_range.h * * NOTES - * the genbki.pl script reads this file and generates .bki - * information from the DATA() statements. - * - * XXX do NOT break up DATA() statements into multiple lines! - * the scripts are not as smart as you might think... + * The Catalog.pm module reads this file and derives schema + * information. * *------------------------------------------------------------------------- */ @@ -23,22 +19,32 @@ #define PG_RANGE_H #include "catalog/genbki.h" +#include "catalog/pg_range_d.h" /* ---------------- * pg_range definition. cpp turns this into * typedef struct FormData_pg_range * ---------------- */ -#define RangeRelationId 3541 - -CATALOG(pg_range,3541) BKI_WITHOUT_OIDS +CATALOG(pg_range,3541,RangeRelationId) BKI_WITHOUT_OIDS { - Oid rngtypid; /* OID of owning range type */ - Oid rngsubtype; /* OID of range's element type (subtype) */ - Oid rngcollation; /* collation for this range type, or 0 */ - Oid rngsubopc; /* subtype's btree opclass */ - regproc rngcanonical; /* canonicalize range, or 0 */ - regproc rngsubdiff; /* subtype difference as a float8, or 0 */ + /* OID of owning range type */ + Oid rngtypid BKI_LOOKUP(pg_type); + + /* OID of range's element type (subtype) */ + Oid rngsubtype BKI_LOOKUP(pg_type); + + /* collation for this range type, or 0 */ + Oid rngcollation BKI_DEFAULT(0); + + /* subtype's btree opclass */ + Oid rngsubopc BKI_LOOKUP(pg_opclass); + + /* canonicalize range, or 0 */ + regproc rngcanonical BKI_LOOKUP(pg_proc); + + /* subtype difference as a float8, or 0 */ + regproc rngsubdiff BKI_LOOKUP(pg_proc); } FormData_pg_range; /* ---------------- @@ -48,31 +54,6 @@ CATALOG(pg_range,3541) BKI_WITHOUT_OIDS */ typedef FormData_pg_range *Form_pg_range; -/* ---------------- - * compiler constants for pg_range - * ---------------- - */ -#define Natts_pg_range 6 -#define Anum_pg_range_rngtypid 1 -#define Anum_pg_range_rngsubtype 2 -#define Anum_pg_range_rngcollation 3 -#define Anum_pg_range_rngsubopc 4 -#define Anum_pg_range_rngcanonical 5 -#define Anum_pg_range_rngsubdiff 6 - - -/* ---------------- - * initial contents of pg_range - * ---------------- - */ -DATA(insert ( 3904 23 0 1978 int4range_canonical int4range_subdiff)); -DATA(insert ( 3906 1700 0 3125 - numrange_subdiff)); -DATA(insert ( 3908 1114 0 3128 - tsrange_subdiff)); -DATA(insert ( 3910 1184 0 3127 - tstzrange_subdiff)); -DATA(insert ( 3912 1082 0 3122 daterange_canonical daterange_subdiff)); -DATA(insert ( 3926 20 0 3124 int8range_canonical int8range_subdiff)); - - /* * prototypes for functions in pg_range.c */ diff --git a/src/include/catalog/pg_replication_origin.h b/src/include/catalog/pg_replication_origin.h index 9656179ad4..1adc3f729a 100644 --- a/src/include/catalog/pg_replication_origin.h +++ b/src/include/catalog/pg_replication_origin.h @@ -9,8 +9,8 @@ * src/include/catalog/pg_replication_origin.h * * NOTES - * the genbki.pl script reads this file and generates .bki - * information from the DATA() statements. + * The Catalog.pm module reads this file and derives schema + * information. * *------------------------------------------------------------------------- */ @@ -18,6 +18,7 @@ #define PG_REPLICATION_ORIGIN_H #include "catalog/genbki.h" +#include "catalog/pg_replication_origin_d.h" #include "access/xlogdefs.h" /* ---------------- @@ -25,9 +26,7 @@ * typedef struct FormData_pg_replication_origin * ---------------- */ -#define ReplicationOriginRelationId 6000 - -CATALOG(pg_replication_origin,6000) BKI_SHARED_RELATION BKI_WITHOUT_OIDS +CATALOG(pg_replication_origin,6000,ReplicationOriginRelationId) BKI_SHARED_RELATION BKI_WITHOUT_OIDS { /* * Locally known id that get included into WAL. @@ -54,17 +53,4 @@ CATALOG(pg_replication_origin,6000) BKI_SHARED_RELATION BKI_WITHOUT_OIDS typedef FormData_pg_replication_origin *Form_pg_replication_origin; -/* ---------------- - * compiler constants for pg_replication_origin - * ---------------- - */ -#define Natts_pg_replication_origin 2 -#define Anum_pg_replication_origin_roident 1 -#define Anum_pg_replication_origin_roname 2 - -/* ---------------- - * pg_replication_origin has no initial contents - * ---------------- - */ - #endif /* PG_REPLICATION_ORIGIN_H */ diff --git a/src/include/catalog/pg_rewrite.h b/src/include/catalog/pg_rewrite.h index 81f2b19a74..77125867b3 100644 --- a/src/include/catalog/pg_rewrite.h +++ b/src/include/catalog/pg_rewrite.h @@ -2,7 +2,6 @@ * * pg_rewrite.h * definition of the system "rewrite-rule" relation (pg_rewrite) - * along with the relation's initial contents. * * As of Postgres 7.3, the primary key for this table is * --- ie, rule names are only unique among the rules of a given table. @@ -14,8 +13,8 @@ * src/include/catalog/pg_rewrite.h * * NOTES - * the genbki.pl script reads this file and generates .bki - * information from the DATA() statements. + * The Catalog.pm module reads this file and derives schema + * information. * *------------------------------------------------------------------------- */ @@ -23,15 +22,14 @@ #define PG_REWRITE_H #include "catalog/genbki.h" +#include "catalog/pg_rewrite_d.h" /* ---------------- * pg_rewrite definition. cpp turns this into * typedef struct FormData_pg_rewrite * ---------------- */ -#define RewriteRelationId 2618 - -CATALOG(pg_rewrite,2618) +CATALOG(pg_rewrite,2618,RewriteRelationId) { NameData rulename; Oid ev_class; @@ -52,17 +50,4 @@ CATALOG(pg_rewrite,2618) */ typedef FormData_pg_rewrite *Form_pg_rewrite; -/* ---------------- - * compiler constants for pg_rewrite - * ---------------- - */ -#define Natts_pg_rewrite 7 -#define Anum_pg_rewrite_rulename 1 -#define Anum_pg_rewrite_ev_class 2 -#define Anum_pg_rewrite_ev_type 3 -#define Anum_pg_rewrite_ev_enabled 4 -#define Anum_pg_rewrite_is_instead 5 -#define Anum_pg_rewrite_ev_qual 6 -#define Anum_pg_rewrite_ev_action 7 - #endif /* PG_REWRITE_H */ diff --git a/src/include/catalog/pg_seclabel.h b/src/include/catalog/pg_seclabel.h index 70dc01ebfc..48d454897c 100644 --- a/src/include/catalog/pg_seclabel.h +++ b/src/include/catalog/pg_seclabel.h @@ -12,15 +12,14 @@ #define PG_SECLABEL_H #include "catalog/genbki.h" +#include "catalog/pg_seclabel_d.h" /* ---------------- * pg_seclabel definition. cpp turns this into * typedef struct FormData_pg_seclabel * ---------------- */ -#define SecLabelRelationId 3596 - -CATALOG(pg_seclabel,3596) BKI_WITHOUT_OIDS +CATALOG(pg_seclabel,3596,SecLabelRelationId) BKI_WITHOUT_OIDS { Oid objoid; /* OID of the object itself */ Oid classoid; /* OID of table containing the object */ @@ -32,15 +31,4 @@ CATALOG(pg_seclabel,3596) BKI_WITHOUT_OIDS #endif } FormData_pg_seclabel; -/* ---------------- - * compiler constants for pg_seclabel - * ---------------- - */ -#define Natts_pg_seclabel 5 -#define Anum_pg_seclabel_objoid 1 -#define Anum_pg_seclabel_classoid 2 -#define Anum_pg_seclabel_objsubid 3 -#define Anum_pg_seclabel_provider 4 -#define Anum_pg_seclabel_label 5 - #endif /* PG_SECLABEL_H */ diff --git a/src/include/catalog/pg_sequence.h b/src/include/catalog/pg_sequence.h index a78417eaeb..a13b05e800 100644 --- a/src/include/catalog/pg_sequence.h +++ b/src/include/catalog/pg_sequence.h @@ -12,10 +12,9 @@ #define PG_SEQUENCE_H #include "catalog/genbki.h" +#include "catalog/pg_sequence_d.h" -#define SequenceRelationId 2224 - -CATALOG(pg_sequence,2224) BKI_WITHOUT_OIDS +CATALOG(pg_sequence,2224,SequenceRelationId) BKI_WITHOUT_OIDS { Oid seqrelid; Oid seqtypid; @@ -27,16 +26,11 @@ CATALOG(pg_sequence,2224) BKI_WITHOUT_OIDS bool seqcycle; } FormData_pg_sequence; +/* ---------------- + * Form_pg_sequence corresponds to a pointer to a tuple with + * the format of pg_sequence relation. + * ---------------- + */ typedef FormData_pg_sequence *Form_pg_sequence; -#define Natts_pg_sequence 8 -#define Anum_pg_sequence_seqrelid 1 -#define Anum_pg_sequence_seqtypid 2 -#define Anum_pg_sequence_seqstart 3 -#define Anum_pg_sequence_seqincrement 4 -#define Anum_pg_sequence_seqmax 5 -#define Anum_pg_sequence_seqmin 6 -#define Anum_pg_sequence_seqcache 7 -#define Anum_pg_sequence_seqcycle 8 - #endif /* PG_SEQUENCE_H */ diff --git a/src/include/catalog/pg_shdepend.h b/src/include/catalog/pg_shdepend.h index ae40377e4e..0f8508cf26 100644 --- a/src/include/catalog/pg_shdepend.h +++ b/src/include/catalog/pg_shdepend.h @@ -2,8 +2,15 @@ * * pg_shdepend.h * definition of the system "shared dependency" relation (pg_shdepend) - * along with the relation's initial contents. * + * pg_shdepend has no preloaded contents, so there is no pg_shdepend.dat + * file; system-defined dependencies are loaded into it during a late stage + * of the initdb process. + * + * NOTE: we do not represent all possible dependency pairs in pg_shdepend; + * for example, there's not much value in creating an explicit dependency + * from a relation to its database. Currently, only dependencies on roles + * are explicitly stored in pg_shdepend. * * Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California @@ -11,8 +18,8 @@ * src/include/catalog/pg_shdepend.h * * NOTES - * the genbki.pl script reads this file and generates .bki - * information from the DATA() statements. + * The Catalog.pm module reads this file and derives schema + * information. * *------------------------------------------------------------------------- */ @@ -20,15 +27,14 @@ #define PG_SHDEPEND_H #include "catalog/genbki.h" +#include "catalog/pg_shdepend_d.h" /* ---------------- * pg_shdepend definition. cpp turns this into * typedef struct FormData_pg_shdepend * ---------------- */ -#define SharedDependRelationId 1214 - -CATALOG(pg_shdepend,1214) BKI_SHARED_RELATION BKI_WITHOUT_OIDS +CATALOG(pg_shdepend,1214,SharedDependRelationId) BKI_SHARED_RELATION BKI_WITHOUT_OIDS { /* * Identification of the dependent (referencing) object. @@ -63,28 +69,4 @@ CATALOG(pg_shdepend,1214) BKI_SHARED_RELATION BKI_WITHOUT_OIDS */ typedef FormData_pg_shdepend *Form_pg_shdepend; -/* ---------------- - * compiler constants for pg_shdepend - * ---------------- - */ -#define Natts_pg_shdepend 7 -#define Anum_pg_shdepend_dbid 1 -#define Anum_pg_shdepend_classid 2 -#define Anum_pg_shdepend_objid 3 -#define Anum_pg_shdepend_objsubid 4 -#define Anum_pg_shdepend_refclassid 5 -#define Anum_pg_shdepend_refobjid 6 -#define Anum_pg_shdepend_deptype 7 - - -/* - * pg_shdepend has no preloaded contents; system-defined dependencies are - * loaded into it during a late stage of the initdb process. - * - * NOTE: we do not represent all possible dependency pairs in pg_shdepend; - * for example, there's not much value in creating an explicit dependency - * from a relation to its database. Currently, only dependencies on roles - * are explicitly stored in pg_shdepend. - */ - #endif /* PG_SHDEPEND_H */ diff --git a/src/include/catalog/pg_shdescription.h b/src/include/catalog/pg_shdescription.h index d4ec616f3b..00fd0e0e54 100644 --- a/src/include/catalog/pg_shdescription.h +++ b/src/include/catalog/pg_shdescription.h @@ -4,6 +4,10 @@ * definition of the system "shared description" relation * (pg_shdescription) * + * Because the contents of this table are taken from the *.dat files + * of other catalogs, there is no pg_shdescription.dat file. The initial + * contents are assembled by genbki.pl and loaded during initdb. + * * NOTE: an object is identified by the OID of the row that primarily * defines the object, plus the OID of the table that that row appears in. * For example, a database is identified by the OID of its pg_database row @@ -18,11 +22,8 @@ * src/include/catalog/pg_shdescription.h * * NOTES - * the genbki.pl script reads this file and generates .bki - * information from the DATA() statements. - * - * XXX do NOT break up DATA() statements into multiple lines! - * the scripts are not as smart as you might think... + * The Catalog.pm module reads this file and derives schema + * information. * *------------------------------------------------------------------------- */ @@ -30,15 +31,14 @@ #define PG_SHDESCRIPTION_H #include "catalog/genbki.h" +#include "catalog/pg_shdescription_d.h" /* ---------------- * pg_shdescription definition. cpp turns this into * typedef struct FormData_pg_shdescription * ---------------- */ -#define SharedDescriptionRelationId 2396 - -CATALOG(pg_shdescription,2396) BKI_SHARED_RELATION BKI_WITHOUT_OIDS +CATALOG(pg_shdescription,2396,SharedDescriptionRelationId) BKI_SHARED_RELATION BKI_WITHOUT_OIDS { Oid objoid; /* OID of object itself */ Oid classoid; /* OID of table containing object */ @@ -55,24 +55,4 @@ CATALOG(pg_shdescription,2396) BKI_SHARED_RELATION BKI_WITHOUT_OIDS */ typedef FormData_pg_shdescription * Form_pg_shdescription; -/* ---------------- - * compiler constants for pg_shdescription - * ---------------- - */ -#define Natts_pg_shdescription 3 -#define Anum_pg_shdescription_objoid 1 -#define Anum_pg_shdescription_classoid 2 -#define Anum_pg_shdescription_description 3 - -/* ---------------- - * initial contents of pg_shdescription - * ---------------- - */ - -/* - * Because the contents of this table are taken from the other *.h files, - * there is no initialization here. The initial contents are extracted - * by genbki.pl and loaded during initdb. - */ - #endif /* PG_SHDESCRIPTION_H */ diff --git a/src/include/catalog/pg_shseclabel.h b/src/include/catalog/pg_shseclabel.h index 57b854c217..22ecf98168 100644 --- a/src/include/catalog/pg_shseclabel.h +++ b/src/include/catalog/pg_shseclabel.h @@ -1,7 +1,7 @@ /* ------------------------------------------------------------------------- * * pg_shseclabel.h - * definition of the system "security label" relation (pg_shseclabel) + * definition of the system "shared security label" relation (pg_shseclabel) * * Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California @@ -12,16 +12,14 @@ #define PG_SHSECLABEL_H #include "catalog/genbki.h" +#include "catalog/pg_shseclabel_d.h" /* ---------------- * pg_shseclabel definition. cpp turns this into * typedef struct FormData_pg_shseclabel * ---------------- */ -#define SharedSecLabelRelationId 3592 -#define SharedSecLabelRelation_Rowtype_Id 4066 - -CATALOG(pg_shseclabel,3592) BKI_SHARED_RELATION BKI_ROWTYPE_OID(4066) BKI_WITHOUT_OIDS BKI_SCHEMA_MACRO +CATALOG(pg_shseclabel,3592,SharedSecLabelRelationId) BKI_SHARED_RELATION BKI_ROWTYPE_OID(4066,SharedSecLabelRelation_Rowtype_Id) BKI_WITHOUT_OIDS BKI_SCHEMA_MACRO { Oid objoid; /* OID of the shared object itself */ Oid classoid; /* OID of table containing the shared object */ @@ -34,14 +32,4 @@ CATALOG(pg_shseclabel,3592) BKI_SHARED_RELATION BKI_ROWTYPE_OID(4066) BKI_WITHOU typedef FormData_pg_shseclabel * Form_pg_shseclabel; -/* ---------------- - * compiler constants for pg_shseclabel - * ---------------- - */ -#define Natts_pg_shseclabel 4 -#define Anum_pg_shseclabel_objoid 1 -#define Anum_pg_shseclabel_classoid 2 -#define Anum_pg_shseclabel_provider 3 -#define Anum_pg_shseclabel_label 4 - #endif /* PG_SHSECLABEL_H */ diff --git a/src/include/catalog/pg_statistic.h b/src/include/catalog/pg_statistic.h index a5c85feffe..d654d3db26 100644 --- a/src/include/catalog/pg_statistic.h +++ b/src/include/catalog/pg_statistic.h @@ -2,7 +2,6 @@ * * pg_statistic.h * definition of the system "statistic" relation (pg_statistic) - * along with the relation's initial contents. * * * Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group @@ -11,8 +10,8 @@ * src/include/catalog/pg_statistic.h * * NOTES - * the genbki.pl script reads this file and generates .bki - * information from the DATA() statements. + * The Catalog.pm module reads this file and derives schema + * information. * *------------------------------------------------------------------------- */ @@ -20,15 +19,14 @@ #define PG_STATISTIC_H #include "catalog/genbki.h" +#include "catalog/pg_statistic_d.h" /* ---------------- * pg_statistic definition. cpp turns this into * typedef struct FormData_pg_statistic * ---------------- */ -#define StatisticRelationId 2619 - -CATALOG(pg_statistic,2619) BKI_WITHOUT_OIDS +CATALOG(pg_statistic,2619,StatisticRelationId) BKI_WITHOUT_OIDS { /* These fields form the unique key for the entry: */ Oid starelid; /* relation containing attribute */ @@ -128,37 +126,7 @@ CATALOG(pg_statistic,2619) BKI_WITHOUT_OIDS */ typedef FormData_pg_statistic *Form_pg_statistic; -/* ---------------- - * compiler constants for pg_statistic - * ---------------- - */ -#define Natts_pg_statistic 26 -#define Anum_pg_statistic_starelid 1 -#define Anum_pg_statistic_staattnum 2 -#define Anum_pg_statistic_stainherit 3 -#define Anum_pg_statistic_stanullfrac 4 -#define Anum_pg_statistic_stawidth 5 -#define Anum_pg_statistic_stadistinct 6 -#define Anum_pg_statistic_stakind1 7 -#define Anum_pg_statistic_stakind2 8 -#define Anum_pg_statistic_stakind3 9 -#define Anum_pg_statistic_stakind4 10 -#define Anum_pg_statistic_stakind5 11 -#define Anum_pg_statistic_staop1 12 -#define Anum_pg_statistic_staop2 13 -#define Anum_pg_statistic_staop3 14 -#define Anum_pg_statistic_staop4 15 -#define Anum_pg_statistic_staop5 16 -#define Anum_pg_statistic_stanumbers1 17 -#define Anum_pg_statistic_stanumbers2 18 -#define Anum_pg_statistic_stanumbers3 19 -#define Anum_pg_statistic_stanumbers4 20 -#define Anum_pg_statistic_stanumbers5 21 -#define Anum_pg_statistic_stavalues1 22 -#define Anum_pg_statistic_stavalues2 23 -#define Anum_pg_statistic_stavalues3 24 -#define Anum_pg_statistic_stavalues4 25 -#define Anum_pg_statistic_stavalues5 26 +#ifdef EXPOSE_TO_CLIENT_CODE /* * Several statistical slot "kinds" are defined by core PostgreSQL, as @@ -289,4 +257,6 @@ typedef FormData_pg_statistic *Form_pg_statistic; */ #define STATISTIC_KIND_BOUNDS_HISTOGRAM 7 +#endif /* EXPOSE_TO_CLIENT_CODE */ + #endif /* PG_STATISTIC_H */ diff --git a/src/include/catalog/pg_statistic_ext.h b/src/include/catalog/pg_statistic_ext.h index 2f5ef78c6c..9ccfce7c72 100644 --- a/src/include/catalog/pg_statistic_ext.h +++ b/src/include/catalog/pg_statistic_ext.h @@ -2,7 +2,6 @@ * * pg_statistic_ext.h * definition of the system "extended statistic" relation (pg_statistic_ext) - * along with the relation's initial contents. * * * Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group @@ -11,8 +10,8 @@ * src/include/catalog/pg_statistic_ext.h * * NOTES - * the genbki.pl script reads this file and generates .bki - * information from the DATA() statements. + * The Catalog.pm module reads this file and derives schema + * information. * *------------------------------------------------------------------------- */ @@ -20,15 +19,14 @@ #define PG_STATISTIC_EXT_H #include "catalog/genbki.h" +#include "catalog/pg_statistic_ext_d.h" /* ---------------- * pg_statistic_ext definition. cpp turns this into * typedef struct FormData_pg_statistic_ext * ---------------- */ -#define StatisticExtRelationId 3381 - -CATALOG(pg_statistic_ext,3381) +CATALOG(pg_statistic_ext,3381,StatisticExtRelationId) { Oid stxrelid; /* relation containing attributes */ @@ -60,21 +58,11 @@ CATALOG(pg_statistic_ext,3381) */ typedef FormData_pg_statistic_ext *Form_pg_statistic_ext; -/* ---------------- - * compiler constants for pg_statistic_ext - * ---------------- - */ -#define Natts_pg_statistic_ext 8 -#define Anum_pg_statistic_ext_stxrelid 1 -#define Anum_pg_statistic_ext_stxname 2 -#define Anum_pg_statistic_ext_stxnamespace 3 -#define Anum_pg_statistic_ext_stxowner 4 -#define Anum_pg_statistic_ext_stxkeys 5 -#define Anum_pg_statistic_ext_stxkind 6 -#define Anum_pg_statistic_ext_stxndistinct 7 -#define Anum_pg_statistic_ext_stxdependencies 8 +#ifdef EXPOSE_TO_CLIENT_CODE #define STATS_EXT_NDISTINCT 'd' #define STATS_EXT_DEPENDENCIES 'f' +#endif /* EXPOSE_TO_CLIENT_CODE */ + #endif /* PG_STATISTIC_EXT_H */ diff --git a/src/include/catalog/pg_subscription.h b/src/include/catalog/pg_subscription.h index 46d0b48232..93b249fc1d 100644 --- a/src/include/catalog/pg_subscription.h +++ b/src/include/catalog/pg_subscription.h @@ -12,6 +12,7 @@ #define PG_SUBSCRIPTION_H #include "catalog/genbki.h" +#include "catalog/pg_subscription_d.h" #include "nodes/pg_list.h" /* ---------------- @@ -19,8 +20,6 @@ * typedef struct FormData_pg_subscription * ---------------- */ -#define SubscriptionRelationId 6100 -#define SubscriptionRelation_Rowtype_Id 6101 /* * Technically, the subscriptions live inside the database, so a shared catalog @@ -30,7 +29,7 @@ * * NOTE: When adding a column, also update system_views.sql. */ -CATALOG(pg_subscription,6100) BKI_SHARED_RELATION BKI_ROWTYPE_OID(6101) BKI_SCHEMA_MACRO +CATALOG(pg_subscription,6100,SubscriptionRelationId) BKI_SHARED_RELATION BKI_ROWTYPE_OID(6101,SubscriptionRelation_Rowtype_Id) BKI_SCHEMA_MACRO { Oid subdbid; /* Database the subscription is in. */ NameData subname; /* Name of the subscription */ @@ -57,21 +56,6 @@ CATALOG(pg_subscription,6100) BKI_SHARED_RELATION BKI_ROWTYPE_OID(6101) BKI_SCHE typedef FormData_pg_subscription *Form_pg_subscription; -/* ---------------- - * compiler constants for pg_subscription - * ---------------- - */ -#define Natts_pg_subscription 8 -#define Anum_pg_subscription_subdbid 1 -#define Anum_pg_subscription_subname 2 -#define Anum_pg_subscription_subowner 3 -#define Anum_pg_subscription_subenabled 4 -#define Anum_pg_subscription_subconninfo 5 -#define Anum_pg_subscription_subslotname 6 -#define Anum_pg_subscription_subsynccommit 7 -#define Anum_pg_subscription_subpublications 8 - - typedef struct Subscription { Oid oid; /* Oid of the subscription */ diff --git a/src/include/catalog/pg_subscription_rel.h b/src/include/catalog/pg_subscription_rel.h index 5cf268f181..0543c0eee6 100644 --- a/src/include/catalog/pg_subscription_rel.h +++ b/src/include/catalog/pg_subscription_rel.h @@ -12,8 +12,9 @@ #ifndef PG_SUBSCRIPTION_REL_H #define PG_SUBSCRIPTION_REL_H -#include "access/xlogdefs.h" #include "catalog/genbki.h" +#include "catalog/pg_subscription_rel_d.h" +#include "access/xlogdefs.h" #include "nodes/pg_list.h" /* ---------------- @@ -21,9 +22,7 @@ * typedef struct FormData_pg_subscription_rel * ---------------- */ -#define SubscriptionRelRelationId 6102 - -CATALOG(pg_subscription_rel,6102) BKI_WITHOUT_OIDS +CATALOG(pg_subscription_rel,6102,SubscriptionRelRelationId) BKI_WITHOUT_OIDS { Oid srsubid; /* Oid of subscription */ Oid srrelid; /* Oid of relation */ @@ -34,15 +33,7 @@ CATALOG(pg_subscription_rel,6102) BKI_WITHOUT_OIDS typedef FormData_pg_subscription_rel *Form_pg_subscription_rel; -/* ---------------- - * compiler constants for pg_subscription_rel - * ---------------- - */ -#define Natts_pg_subscription_rel 4 -#define Anum_pg_subscription_rel_srsubid 1 -#define Anum_pg_subscription_rel_srrelid 2 -#define Anum_pg_subscription_rel_srsubstate 3 -#define Anum_pg_subscription_rel_srsublsn 4 +#ifdef EXPOSE_TO_CLIENT_CODE /* ---------------- * substate constants @@ -60,6 +51,8 @@ typedef FormData_pg_subscription_rel *Form_pg_subscription_rel; #define SUBREL_STATE_SYNCWAIT 'w' /* waiting for sync */ #define SUBREL_STATE_CATCHUP 'c' /* catching up with apply */ +#endif /* EXPOSE_TO_CLIENT_CODE */ + typedef struct SubscriptionRelState { Oid relid; diff --git a/src/include/catalog/pg_tablespace.dat b/src/include/catalog/pg_tablespace.dat new file mode 100644 index 0000000000..b623a2d39c --- /dev/null +++ b/src/include/catalog/pg_tablespace.dat @@ -0,0 +1,22 @@ +#---------------------------------------------------------------------- +# +# pg_tablespace.dat +# Initial contents of the pg_tablespace system relation. +# +# Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group +# Portions Copyright (c) 1994, Regents of the University of California +# +# src/include/catalog/pg_tablespace.dat +# +#---------------------------------------------------------------------- + +[ + +{ oid => '1663', oid_symbol => 'DEFAULTTABLESPACE_OID', + spcname => 'pg_default', spcowner => 'PGUID', spcacl => '_null_', + spcoptions => '_null_' }, +{ oid => '1664', oid_symbol => 'GLOBALTABLESPACE_OID', + spcname => 'pg_global', spcowner => 'PGUID', spcacl => '_null_', + spcoptions => '_null_' }, + +] diff --git a/src/include/catalog/pg_tablespace.h b/src/include/catalog/pg_tablespace.h index 360fc4c0cc..4782e78e6b 100644 --- a/src/include/catalog/pg_tablespace.h +++ b/src/include/catalog/pg_tablespace.h @@ -2,7 +2,6 @@ * * pg_tablespace.h * definition of the system "tablespace" relation (pg_tablespace) - * along with the relation's initial contents. * * * Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group @@ -11,8 +10,8 @@ * src/include/catalog/pg_tablespace.h * * NOTES - * the genbki.pl script reads this file and generates .bki - * information from the DATA() statements. + * The Catalog.pm module reads this file and derives schema + * information. * *------------------------------------------------------------------------- */ @@ -20,15 +19,14 @@ #define PG_TABLESPACE_H #include "catalog/genbki.h" +#include "catalog/pg_tablespace_d.h" /* ---------------- * pg_tablespace definition. cpp turns this into * typedef struct FormData_pg_tablespace * ---------------- */ -#define TableSpaceRelationId 1213 - -CATALOG(pg_tablespace,1213) BKI_SHARED_RELATION +CATALOG(pg_tablespace,1213,TableSpaceRelationId) BKI_SHARED_RELATION { NameData spcname; /* tablespace name */ Oid spcowner; /* owner of tablespace */ @@ -46,20 +44,4 @@ CATALOG(pg_tablespace,1213) BKI_SHARED_RELATION */ typedef FormData_pg_tablespace *Form_pg_tablespace; -/* ---------------- - * compiler constants for pg_tablespace - * ---------------- - */ - -#define Natts_pg_tablespace 4 -#define Anum_pg_tablespace_spcname 1 -#define Anum_pg_tablespace_spcowner 2 -#define Anum_pg_tablespace_spcacl 3 -#define Anum_pg_tablespace_spcoptions 4 - -DATA(insert OID = 1663 ( pg_default PGUID _null_ _null_ )); -#define DEFAULTTABLESPACE_OID 1663 -DATA(insert OID = 1664 ( pg_global PGUID _null_ _null_ )); -#define GLOBALTABLESPACE_OID 1664 - #endif /* PG_TABLESPACE_H */ diff --git a/src/include/catalog/pg_transform.h b/src/include/catalog/pg_transform.h index d4fc4649d5..6059b897c6 100644 --- a/src/include/catalog/pg_transform.h +++ b/src/include/catalog/pg_transform.h @@ -1,14 +1,17 @@ /*------------------------------------------------------------------------- * * pg_transform.h + * definition of the system "transform" relation (pg_transform) * - * Copyright (c) 2012-2018, PostgreSQL Global Development Group + * + * Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group + * Portions Copyright (c) 1994, Regents of the University of California * * src/include/catalog/pg_transform.h * * NOTES - * the genbki.pl script reads this file and generates .bki - * information from the DATA() statements. + * The Catalog.pm module reads this file and derives schema + * information. * *------------------------------------------------------------------------- */ @@ -16,15 +19,14 @@ #define PG_TRANSFORM_H #include "catalog/genbki.h" +#include "catalog/pg_transform_d.h" /* ---------------- * pg_transform definition. cpp turns this into * typedef struct FormData_pg_transform * ---------------- */ -#define TransformRelationId 3576 - -CATALOG(pg_transform,3576) +CATALOG(pg_transform,3576,TransformRelationId) { Oid trftype; Oid trflang; @@ -32,16 +34,11 @@ CATALOG(pg_transform,3576) regproc trftosql; } FormData_pg_transform; -typedef FormData_pg_transform *Form_pg_transform; - /* ---------------- - * compiler constants for pg_transform + * Form_pg_transform corresponds to a pointer to a tuple with + * the format of pg_transform relation. * ---------------- */ -#define Natts_pg_transform 4 -#define Anum_pg_transform_trftype 1 -#define Anum_pg_transform_trflang 2 -#define Anum_pg_transform_trffromsql 3 -#define Anum_pg_transform_trftosql 4 +typedef FormData_pg_transform *Form_pg_transform; #endif /* PG_TRANSFORM_H */ diff --git a/src/include/catalog/pg_trigger.h b/src/include/catalog/pg_trigger.h index c80a3aa54d..9955e62d3a 100644 --- a/src/include/catalog/pg_trigger.h +++ b/src/include/catalog/pg_trigger.h @@ -2,7 +2,6 @@ * * pg_trigger.h * definition of the system "trigger" relation (pg_trigger) - * along with the relation's initial contents. * * * Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group @@ -11,8 +10,8 @@ * src/include/catalog/pg_trigger.h * * NOTES - * the genbki.pl script reads this file and generates .bki - * information from the DATA() statements. + * The Catalog.pm module reads this file and derives schema + * information. * *------------------------------------------------------------------------- */ @@ -20,6 +19,7 @@ #define PG_TRIGGER_H #include "catalog/genbki.h" +#include "catalog/pg_trigger_d.h" /* ---------------- * pg_trigger definition. cpp turns this into @@ -31,9 +31,7 @@ * to be associated with a deferrable constraint. * ---------------- */ -#define TriggerRelationId 2620 - -CATALOG(pg_trigger,2620) +CATALOG(pg_trigger,2620,TriggerRelationId) { Oid tgrelid; /* relation trigger is attached to */ NameData tgname; /* trigger's name */ @@ -71,28 +69,7 @@ CATALOG(pg_trigger,2620) */ typedef FormData_pg_trigger *Form_pg_trigger; -/* ---------------- - * compiler constants for pg_trigger - * ---------------- - */ -#define Natts_pg_trigger 17 -#define Anum_pg_trigger_tgrelid 1 -#define Anum_pg_trigger_tgname 2 -#define Anum_pg_trigger_tgfoid 3 -#define Anum_pg_trigger_tgtype 4 -#define Anum_pg_trigger_tgenabled 5 -#define Anum_pg_trigger_tgisinternal 6 -#define Anum_pg_trigger_tgconstrrelid 7 -#define Anum_pg_trigger_tgconstrindid 8 -#define Anum_pg_trigger_tgconstraint 9 -#define Anum_pg_trigger_tgdeferrable 10 -#define Anum_pg_trigger_tginitdeferred 11 -#define Anum_pg_trigger_tgnargs 12 -#define Anum_pg_trigger_tgattr 13 -#define Anum_pg_trigger_tgargs 14 -#define Anum_pg_trigger_tgqual 15 -#define Anum_pg_trigger_tgoldtable 16 -#define Anum_pg_trigger_tgnewtable 17 +#ifdef EXPOSE_TO_CLIENT_CODE /* Bits within tgtype */ #define TRIGGER_TYPE_ROW (1 << 0) @@ -153,4 +130,6 @@ typedef FormData_pg_trigger *Form_pg_trigger; #define TRIGGER_USES_TRANSITION_TABLE(namepointer) \ ((namepointer) != (char *) NULL) +#endif /* EXPOSE_TO_CLIENT_CODE */ + #endif /* PG_TRIGGER_H */ diff --git a/src/include/catalog/pg_ts_config.dat b/src/include/catalog/pg_ts_config.dat new file mode 100644 index 0000000000..b57db6787d --- /dev/null +++ b/src/include/catalog/pg_ts_config.dat @@ -0,0 +1,19 @@ +#---------------------------------------------------------------------- +# +# pg_ts_config.dat +# Initial contents of the pg_ts_config system relation. +# +# Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group +# Portions Copyright (c) 1994, Regents of the University of California +# +# src/include/catalog/pg_ts_config.dat +# +#---------------------------------------------------------------------- + +[ + +{ oid => '3748', descr => 'simple configuration', + cfgname => 'simple', cfgnamespace => 'PGNSP', cfgowner => 'PGUID', + cfgparser => '3722' }, + +] diff --git a/src/include/catalog/pg_ts_config.h b/src/include/catalog/pg_ts_config.h index 26d0843f90..d344bb76de 100644 --- a/src/include/catalog/pg_ts_config.h +++ b/src/include/catalog/pg_ts_config.h @@ -10,11 +10,8 @@ * src/include/catalog/pg_ts_config.h * * NOTES - * the genbki.pl script reads this file and generates .bki - * information from the DATA() statements. - * - * XXX do NOT break up DATA() statements into multiple lines! - * the scripts are not as smart as you might think... + * The Catalog.pm module reads this file and derives schema + * information. * *------------------------------------------------------------------------- */ @@ -22,15 +19,14 @@ #define PG_TS_CONFIG_H #include "catalog/genbki.h" +#include "catalog/pg_ts_config_d.h" /* ---------------- * pg_ts_config definition. cpp turns this into * typedef struct FormData_pg_ts_config * ---------------- */ -#define TSConfigRelationId 3602 - -CATALOG(pg_ts_config,3602) +CATALOG(pg_ts_config,3602,TSConfigRelationId) { NameData cfgname; /* name of configuration */ Oid cfgnamespace; /* name space */ @@ -40,21 +36,4 @@ CATALOG(pg_ts_config,3602) typedef FormData_pg_ts_config *Form_pg_ts_config; -/* ---------------- - * compiler constants for pg_ts_config - * ---------------- - */ -#define Natts_pg_ts_config 4 -#define Anum_pg_ts_config_cfgname 1 -#define Anum_pg_ts_config_cfgnamespace 2 -#define Anum_pg_ts_config_cfgowner 3 -#define Anum_pg_ts_config_cfgparser 4 - -/* ---------------- - * initial contents of pg_ts_config - * ---------------- - */ -DATA(insert OID = 3748 ( simple PGNSP PGUID 3722 )); -DESCR("simple configuration"); - #endif /* PG_TS_CONFIG_H */ diff --git a/src/include/catalog/pg_ts_config_map.dat b/src/include/catalog/pg_ts_config_map.dat new file mode 100644 index 0000000000..090a1ca1e9 --- /dev/null +++ b/src/include/catalog/pg_ts_config_map.dat @@ -0,0 +1,35 @@ +#---------------------------------------------------------------------- +# +# pg_ts_config_map.dat +# Initial contents of the pg_ts_config_map system relation. +# +# Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group +# Portions Copyright (c) 1994, Regents of the University of California +# +# src/include/catalog/pg_ts_config_map.dat +# +#---------------------------------------------------------------------- + +[ + +{ mapcfg => '3748', maptokentype => '1', mapseqno => '1', mapdict => '3765' }, +{ mapcfg => '3748', maptokentype => '2', mapseqno => '1', mapdict => '3765' }, +{ mapcfg => '3748', maptokentype => '3', mapseqno => '1', mapdict => '3765' }, +{ mapcfg => '3748', maptokentype => '4', mapseqno => '1', mapdict => '3765' }, +{ mapcfg => '3748', maptokentype => '5', mapseqno => '1', mapdict => '3765' }, +{ mapcfg => '3748', maptokentype => '6', mapseqno => '1', mapdict => '3765' }, +{ mapcfg => '3748', maptokentype => '7', mapseqno => '1', mapdict => '3765' }, +{ mapcfg => '3748', maptokentype => '8', mapseqno => '1', mapdict => '3765' }, +{ mapcfg => '3748', maptokentype => '9', mapseqno => '1', mapdict => '3765' }, +{ mapcfg => '3748', maptokentype => '10', mapseqno => '1', mapdict => '3765' }, +{ mapcfg => '3748', maptokentype => '11', mapseqno => '1', mapdict => '3765' }, +{ mapcfg => '3748', maptokentype => '15', mapseqno => '1', mapdict => '3765' }, +{ mapcfg => '3748', maptokentype => '16', mapseqno => '1', mapdict => '3765' }, +{ mapcfg => '3748', maptokentype => '17', mapseqno => '1', mapdict => '3765' }, +{ mapcfg => '3748', maptokentype => '18', mapseqno => '1', mapdict => '3765' }, +{ mapcfg => '3748', maptokentype => '19', mapseqno => '1', mapdict => '3765' }, +{ mapcfg => '3748', maptokentype => '20', mapseqno => '1', mapdict => '3765' }, +{ mapcfg => '3748', maptokentype => '21', mapseqno => '1', mapdict => '3765' }, +{ mapcfg => '3748', maptokentype => '22', mapseqno => '1', mapdict => '3765' }, + +] diff --git a/src/include/catalog/pg_ts_config_map.h b/src/include/catalog/pg_ts_config_map.h index a3d9e3f21f..21200215c4 100644 --- a/src/include/catalog/pg_ts_config_map.h +++ b/src/include/catalog/pg_ts_config_map.h @@ -10,11 +10,8 @@ * src/include/catalog/pg_ts_config_map.h * * NOTES - * the genbki.pl script reads this file and generates .bki - * information from the DATA() statements. - * - * XXX do NOT break up DATA() statements into multiple lines! - * the scripts are not as smart as you might think... + * The Catalog.pm module reads this file and derives schema + * information. * *------------------------------------------------------------------------- */ @@ -22,15 +19,14 @@ #define PG_TS_CONFIG_MAP_H #include "catalog/genbki.h" +#include "catalog/pg_ts_config_map_d.h" /* ---------------- * pg_ts_config_map definition. cpp turns this into * typedef struct FormData_pg_ts_config_map * ---------------- */ -#define TSConfigMapRelationId 3603 - -CATALOG(pg_ts_config_map,3603) BKI_WITHOUT_OIDS +CATALOG(pg_ts_config_map,3603,TSConfigMapRelationId) BKI_WITHOUT_OIDS { Oid mapcfg; /* OID of configuration owning this entry */ int32 maptokentype; /* token type from parser */ @@ -40,39 +36,4 @@ CATALOG(pg_ts_config_map,3603) BKI_WITHOUT_OIDS typedef FormData_pg_ts_config_map *Form_pg_ts_config_map; -/* ---------------- - * compiler constants for pg_ts_config_map - * ---------------- - */ -#define Natts_pg_ts_config_map 4 -#define Anum_pg_ts_config_map_mapcfg 1 -#define Anum_pg_ts_config_map_maptokentype 2 -#define Anum_pg_ts_config_map_mapseqno 3 -#define Anum_pg_ts_config_map_mapdict 4 - -/* ---------------- - * initial contents of pg_ts_config_map - * ---------------- - */ - -DATA(insert ( 3748 1 1 3765 )); -DATA(insert ( 3748 2 1 3765 )); -DATA(insert ( 3748 3 1 3765 )); -DATA(insert ( 3748 4 1 3765 )); -DATA(insert ( 3748 5 1 3765 )); -DATA(insert ( 3748 6 1 3765 )); -DATA(insert ( 3748 7 1 3765 )); -DATA(insert ( 3748 8 1 3765 )); -DATA(insert ( 3748 9 1 3765 )); -DATA(insert ( 3748 10 1 3765 )); -DATA(insert ( 3748 11 1 3765 )); -DATA(insert ( 3748 15 1 3765 )); -DATA(insert ( 3748 16 1 3765 )); -DATA(insert ( 3748 17 1 3765 )); -DATA(insert ( 3748 18 1 3765 )); -DATA(insert ( 3748 19 1 3765 )); -DATA(insert ( 3748 20 1 3765 )); -DATA(insert ( 3748 21 1 3765 )); -DATA(insert ( 3748 22 1 3765 )); - #endif /* PG_TS_CONFIG_MAP_H */ diff --git a/src/include/catalog/pg_ts_dict.dat b/src/include/catalog/pg_ts_dict.dat new file mode 100644 index 0000000000..6852303604 --- /dev/null +++ b/src/include/catalog/pg_ts_dict.dat @@ -0,0 +1,20 @@ +#---------------------------------------------------------------------- +# +# pg_ts_dict.dat +# Initial contents of the pg_ts_dict system relation. +# +# Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group +# Portions Copyright (c) 1994, Regents of the University of California +# +# src/include/catalog/pg_ts_dict.dat +# +#---------------------------------------------------------------------- + +[ + +{ oid => '3765', + descr => 'simple dictionary: just lower case and check for stopword', + dictname => 'simple', dictnamespace => 'PGNSP', dictowner => 'PGUID', + dicttemplate => '3727', dictinitoption => '_null_' }, + +] diff --git a/src/include/catalog/pg_ts_dict.h b/src/include/catalog/pg_ts_dict.h index 1e9d10cbd4..1e285adcec 100644 --- a/src/include/catalog/pg_ts_dict.h +++ b/src/include/catalog/pg_ts_dict.h @@ -10,11 +10,8 @@ * src/include/catalog/pg_ts_dict.h * * NOTES - * the genbki.pl script reads this file and generates .bki - * information from the DATA() statements. - * - * XXX do NOT break up DATA() statements into multiple lines! - * the scripts are not as smart as you might think... + * The Catalog.pm module reads this file and derives schema + * information. * *------------------------------------------------------------------------- */ @@ -22,15 +19,14 @@ #define PG_TS_DICT_H #include "catalog/genbki.h" +#include "catalog/pg_ts_dict_d.h" /* ---------------- * pg_ts_dict definition. cpp turns this into * typedef struct FormData_pg_ts_dict * ---------------- */ -#define TSDictionaryRelationId 3600 - -CATALOG(pg_ts_dict,3600) +CATALOG(pg_ts_dict,3600,TSDictionaryRelationId) { NameData dictname; /* dictionary name */ Oid dictnamespace; /* name space */ @@ -44,23 +40,4 @@ CATALOG(pg_ts_dict,3600) typedef FormData_pg_ts_dict *Form_pg_ts_dict; -/* ---------------- - * compiler constants for pg_ts_dict - * ---------------- - */ -#define Natts_pg_ts_dict 5 -#define Anum_pg_ts_dict_dictname 1 -#define Anum_pg_ts_dict_dictnamespace 2 -#define Anum_pg_ts_dict_dictowner 3 -#define Anum_pg_ts_dict_dicttemplate 4 -#define Anum_pg_ts_dict_dictinitoption 5 - -/* ---------------- - * initial contents of pg_ts_dict - * ---------------- - */ - -DATA(insert OID = 3765 ( simple PGNSP PGUID 3727 _null_)); -DESCR("simple dictionary: just lower case and check for stopword"); - #endif /* PG_TS_DICT_H */ diff --git a/src/include/catalog/pg_ts_parser.dat b/src/include/catalog/pg_ts_parser.dat new file mode 100644 index 0000000000..8c50770596 --- /dev/null +++ b/src/include/catalog/pg_ts_parser.dat @@ -0,0 +1,20 @@ +#---------------------------------------------------------------------- +# +# pg_ts_parser.dat +# Initial contents of the pg_ts_parser system relation. +# +# Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group +# Portions Copyright (c) 1994, Regents of the University of California +# +# src/include/catalog/pg_ts_parser.dat +# +#---------------------------------------------------------------------- + +[ + +{ oid => '3722', descr => 'default word parser', + prsname => 'default', prsstart => 'prsd_start', prstoken => 'prsd_nexttoken', + prsend => 'prsd_end', prsheadline => 'prsd_headline', + prslextype => 'prsd_lextype' }, + +] diff --git a/src/include/catalog/pg_ts_parser.h b/src/include/catalog/pg_ts_parser.h index 7199916d36..ccaf40bbb4 100644 --- a/src/include/catalog/pg_ts_parser.h +++ b/src/include/catalog/pg_ts_parser.h @@ -10,11 +10,8 @@ * src/include/catalog/pg_ts_parser.h * * NOTES - * the genbki.pl script reads this file and generates .bki - * information from the DATA() statements. - * - * XXX do NOT break up DATA() statements into multiple lines! - * the scripts are not as smart as you might think... + * The Catalog.pm module reads this file and derives schema + * information. * *------------------------------------------------------------------------- */ @@ -22,46 +19,37 @@ #define PG_TS_PARSER_H #include "catalog/genbki.h" +#include "catalog/pg_ts_parser_d.h" /* ---------------- * pg_ts_parser definition. cpp turns this into * typedef struct FormData_pg_ts_parser * ---------------- */ -#define TSParserRelationId 3601 - -CATALOG(pg_ts_parser,3601) +CATALOG(pg_ts_parser,3601,TSParserRelationId) { - NameData prsname; /* parser's name */ - Oid prsnamespace; /* name space */ - regproc prsstart; /* init parsing session */ - regproc prstoken; /* return next token */ - regproc prsend; /* finalize parsing session */ - regproc prsheadline; /* return data for headline creation */ - regproc prslextype; /* return descriptions of lexeme's types */ + /* parser's name */ + NameData prsname; + + /* name space */ + Oid prsnamespace BKI_DEFAULT(PGNSP); + + /* init parsing session */ + regproc prsstart BKI_LOOKUP(pg_proc); + + /* return next token */ + regproc prstoken BKI_LOOKUP(pg_proc); + + /* finalize parsing session */ + regproc prsend BKI_LOOKUP(pg_proc); + + /* return data for headline creation */ + regproc prsheadline BKI_LOOKUP(pg_proc); + + /* return descriptions of lexeme's types */ + regproc prslextype BKI_LOOKUP(pg_proc); } FormData_pg_ts_parser; typedef FormData_pg_ts_parser *Form_pg_ts_parser; -/* ---------------- - * compiler constants for pg_ts_parser - * ---------------- - */ -#define Natts_pg_ts_parser 7 -#define Anum_pg_ts_parser_prsname 1 -#define Anum_pg_ts_parser_prsnamespace 2 -#define Anum_pg_ts_parser_prsstart 3 -#define Anum_pg_ts_parser_prstoken 4 -#define Anum_pg_ts_parser_prsend 5 -#define Anum_pg_ts_parser_prsheadline 6 -#define Anum_pg_ts_parser_prslextype 7 - -/* ---------------- - * initial contents of pg_ts_parser - * ---------------- - */ - -DATA(insert OID = 3722 ( default PGNSP prsd_start prsd_nexttoken prsd_end prsd_headline prsd_lextype )); -DESCR("default word parser"); - #endif /* PG_TS_PARSER_H */ diff --git a/src/include/catalog/pg_ts_template.dat b/src/include/catalog/pg_ts_template.dat new file mode 100644 index 0000000000..1322c39022 --- /dev/null +++ b/src/include/catalog/pg_ts_template.dat @@ -0,0 +1,30 @@ +#---------------------------------------------------------------------- +# +# pg_ts_template.dat +# Initial contents of the pg_ts_template system relation. +# +# Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group +# Portions Copyright (c) 1994, Regents of the University of California +# +# src/include/catalog/pg_ts_template.dat +# +#---------------------------------------------------------------------- + +[ + +{ oid => '3727', + descr => 'simple dictionary: just lower case and check for stopword', + tmplname => 'simple', tmplinit => 'dsimple_init', + tmpllexize => 'dsimple_lexize' }, +{ oid => '3730', descr => 'synonym dictionary: replace word by its synonym', + tmplname => 'synonym', tmplinit => 'dsynonym_init', + tmpllexize => 'dsynonym_lexize' }, +{ oid => '3733', descr => 'ispell dictionary', + tmplname => 'ispell', tmplinit => 'dispell_init', + tmpllexize => 'dispell_lexize' }, +{ oid => '3742', + descr => 'thesaurus dictionary: phrase by phrase substitution', + tmplname => 'thesaurus', tmplinit => 'thesaurus_init', + tmpllexize => 'thesaurus_lexize' }, + +] diff --git a/src/include/catalog/pg_ts_template.h b/src/include/catalog/pg_ts_template.h index a23c04e936..5e66e02bef 100644 --- a/src/include/catalog/pg_ts_template.h +++ b/src/include/catalog/pg_ts_template.h @@ -10,11 +10,8 @@ * src/include/catalog/pg_ts_template.h * * NOTES - * the genbki.pl script reads this file and generates .bki - * information from the DATA() statements. - * - * XXX do NOT break up DATA() statements into multiple lines! - * the scripts are not as smart as you might think... + * The Catalog.pm module reads this file and derives schema + * information. * *------------------------------------------------------------------------- */ @@ -22,46 +19,28 @@ #define PG_TS_TEMPLATE_H #include "catalog/genbki.h" +#include "catalog/pg_ts_template_d.h" /* ---------------- * pg_ts_template definition. cpp turns this into * typedef struct FormData_pg_ts_template * ---------------- */ -#define TSTemplateRelationId 3764 - -CATALOG(pg_ts_template,3764) +CATALOG(pg_ts_template,3764,TSTemplateRelationId) { - NameData tmplname; /* template name */ - Oid tmplnamespace; /* name space */ - regproc tmplinit; /* initialization method of dict (may be 0) */ - regproc tmpllexize; /* base method of dictionary */ + /* template name */ + NameData tmplname; + + /* name space */ + Oid tmplnamespace BKI_DEFAULT(PGNSP); + + /* initialization method of dict (may be 0) */ + regproc tmplinit BKI_LOOKUP(pg_proc); + + /* base method of dictionary */ + regproc tmpllexize BKI_LOOKUP(pg_proc); } FormData_pg_ts_template; typedef FormData_pg_ts_template *Form_pg_ts_template; -/* ---------------- - * compiler constants for pg_ts_template - * ---------------- - */ -#define Natts_pg_ts_template 4 -#define Anum_pg_ts_template_tmplname 1 -#define Anum_pg_ts_template_tmplnamespace 2 -#define Anum_pg_ts_template_tmplinit 3 -#define Anum_pg_ts_template_tmpllexize 4 - -/* ---------------- - * initial contents of pg_ts_template - * ---------------- - */ - -DATA(insert OID = 3727 ( simple PGNSP dsimple_init dsimple_lexize )); -DESCR("simple dictionary: just lower case and check for stopword"); -DATA(insert OID = 3730 ( synonym PGNSP dsynonym_init dsynonym_lexize )); -DESCR("synonym dictionary: replace word by its synonym"); -DATA(insert OID = 3733 ( ispell PGNSP dispell_init dispell_lexize )); -DESCR("ispell dictionary"); -DATA(insert OID = 3742 ( thesaurus PGNSP thesaurus_init thesaurus_lexize )); -DESCR("thesaurus dictionary: phrase by phrase substitution"); - #endif /* PG_TS_TEMPLATE_H */ diff --git a/src/include/catalog/pg_type.dat b/src/include/catalog/pg_type.dat new file mode 100644 index 0000000000..3c2c813756 --- /dev/null +++ b/src/include/catalog/pg_type.dat @@ -0,0 +1,942 @@ +#---------------------------------------------------------------------- +# +# pg_type.dat +# Initial contents of the pg_type system relation. +# +# Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group +# Portions Copyright (c) 1994, Regents of the University of California +# +# src/include/catalog/pg_type.dat +# +#---------------------------------------------------------------------- + +[ + +# For types used in the system catalogs, make sure the values here match +# TypInfo[] in bootstrap.c. + +# OID symbol macro names for pg_type OIDs are generated by genbki.pl +# according to the following rule, so you don't need to specify them +# here: +# foo_bar -> FOO_BAROID +# _foo_bar -> FOO_BARARRAYOID +# +# The only oid_symbol entries in this file are for names that don't match +# this rule, and are grandfathered in. + +# Once upon a time these entries were ordered by OID. Lately it's often +# been the custom to insert new entries adjacent to related older entries. +# Try to do one or the other though, don't just insert entries at random. + +# OIDS 1 - 99 + +{ oid => '16', descr => 'boolean, \'true\'/\'false\'', + typname => 'bool', typlen => '1', typbyval => 't', typcategory => 'B', + typispreferred => 't', typarray => '_bool', 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 => '_bytea', 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 => '_char', 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 => 'char', typarray => '_name', + 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 => '_int8', 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 => '_int2', 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 => 'int2', typarray => '_int2vector', 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 => '_int4', typinput => 'int4in', typoutput => 'int4out', + typreceive => 'int4recv', typsend => 'int4send', typalign => 'i' }, +{ oid => '24', descr => 'registered procedure', + typname => 'regproc', typlen => '4', typbyval => 't', typcategory => 'N', + typarray => '_regproc', 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 => '_text', 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 => '_oid', 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 => '_tid', typinput => 'tidin', typoutput => 'tidout', + typreceive => 'tidrecv', typsend => 'tidsend', typalign => 's' }, +{ oid => '28', descr => 'transaction id', + typname => 'xid', typlen => '4', typbyval => 't', typcategory => 'U', + typarray => '_xid', 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 => '_cid', 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 => 'oid', typarray => '_oidvector', typinput => 'oidvectorin', + typoutput => 'oidvectorout', typreceive => 'oidvectorrecv', + typsend => 'oidvectorsend', typalign => 'i' }, + +# hand-built rowtype entries for bootstrapped catalogs +# NB: OIDs assigned here must match the BKI_ROWTYPE_OID declarations +{ oid => '71', + typname => 'pg_type', typlen => '-1', typbyval => 'f', typtype => 'c', + typcategory => 'C', typrelid => '1247', typinput => 'record_in', + typoutput => 'record_out', typreceive => 'record_recv', + typsend => 'record_send', typalign => 'd', typstorage => 'x' }, +{ oid => '75', + typname => 'pg_attribute', typlen => '-1', typbyval => 'f', typtype => 'c', + typcategory => 'C', typrelid => '1249', typinput => 'record_in', + typoutput => 'record_out', typreceive => 'record_recv', + typsend => 'record_send', typalign => 'd', typstorage => 'x' }, +{ oid => '81', + typname => 'pg_proc', typlen => '-1', typbyval => 'f', typtype => 'c', + typcategory => 'C', typrelid => '1255', typinput => 'record_in', + typoutput => 'record_out', typreceive => 'record_recv', + typsend => 'record_send', typalign => 'd', typstorage => 'x' }, +{ oid => '83', + typname => 'pg_class', typlen => '-1', typbyval => 'f', typtype => 'c', + typcategory => 'C', typrelid => '1259', 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 => '_json', typinput => 'json_in', typoutput => 'json_out', + typreceive => 'json_recv', typsend => 'json_send', typalign => 'i', + typstorage => 'x' }, +{ oid => '142', descr => 'XML content', + typname => 'xml', typlen => '-1', typbyval => 'f', typcategory => 'U', + typarray => '_xml', typinput => 'xml_in', typoutput => 'xml_out', + typreceive => 'xml_recv', typsend => 'xml_send', typalign => 'i', + typstorage => 'x' }, +{ oid => '143', + typname => '_xml', typlen => '-1', typbyval => 'f', typcategory => 'A', + typelem => 'xml', 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 => 'json', typinput => 'array_in', typoutput => 'array_out', + typreceive => 'array_recv', typsend => 'array_send', + typanalyze => 'array_typanalyze', typalign => 'i', typstorage => 'x' }, +{ oid => '194', oid_symbol => 'PGNODETREEOID', + descr => 'string representing an internal node tree', + typname => 'pg_node_tree', typlen => '-1', typbyval => 'f', + typcategory => 'S', 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', oid_symbol => 'PGNDISTINCTOID', + descr => 'multivariate ndistinct coefficients', + typname => 'pg_ndistinct', typlen => '-1', typbyval => 'f', + typcategory => 'S', typinput => 'pg_ndistinct_in', + typoutput => 'pg_ndistinct_out', typreceive => 'pg_ndistinct_recv', + typsend => 'pg_ndistinct_send', typalign => 'i', typstorage => 'x', + typcollation => '100' }, +{ oid => '3402', oid_symbol => 'PGDEPENDENCIESOID', + descr => 'multivariate dependencies', + typname => 'pg_dependencies', typlen => '-1', typbyval => 'f', + typcategory => 'S', typinput => 'pg_dependencies_in', + typoutput => 'pg_dependencies_out', typreceive => 'pg_dependencies_recv', + typsend => 'pg_dependencies_send', typalign => 'i', typstorage => 'x', + typcollation => '100' }, +{ oid => '32', oid_symbol => 'PGDDLCOMMANDOID', + descr => 'internal type for passing CollectedCommand', + typname => 'pg_ddl_command', typlen => 'SIZEOF_POINTER', typbyval => 't', + typtype => 'p', typcategory => 'P', typinput => 'pg_ddl_command_in', + typoutput => 'pg_ddl_command_out', typreceive => 'pg_ddl_command_recv', + typsend => 'pg_ddl_command_send', typalign => 'ALIGNOF_POINTER' }, + +# OIDS 200 - 299 + +{ oid => '210', descr => 'storage manager', + typname => 'smgr', typlen => '2', typbyval => 't', typcategory => 'U', + typinput => 'smgrin', typoutput => 'smgrout', typreceive => '-', + typsend => '-', typalign => 's' }, + +# OIDS 600 - 699 + +{ oid => '600', descr => 'geometric point \'(x, y)\'', + typname => 'point', typlen => '16', typbyval => 'f', typcategory => 'G', + typelem => 'float8', typarray => '_point', typinput => 'point_in', + typoutput => 'point_out', typreceive => 'point_recv', typsend => 'point_send', + typalign => 'd' }, +{ oid => '601', descr => 'geometric line segment \'(pt1,pt2)\'', + typname => 'lseg', typlen => '32', typbyval => 'f', typcategory => 'G', + typelem => 'point', typarray => '_lseg', typinput => 'lseg_in', + typoutput => 'lseg_out', typreceive => 'lseg_recv', typsend => 'lseg_send', + typalign => 'd' }, +{ oid => '602', descr => 'geometric path \'(pt1,...)\'', + typname => 'path', typlen => '-1', typbyval => 'f', typcategory => 'G', + typarray => '_path', typinput => 'path_in', typoutput => 'path_out', + typreceive => 'path_recv', typsend => 'path_send', typalign => 'd', + typstorage => 'x' }, +{ oid => '603', descr => 'geometric box \'(lower left,upper right)\'', + typname => 'box', typlen => '32', typbyval => 'f', typcategory => 'G', + typdelim => '\073', typelem => 'point', typarray => '_box', + 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 => '_polygon', 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 => 'float8', typarray => '_line', typinput => 'line_in', + typoutput => 'line_out', typreceive => 'line_recv', typsend => 'line_send', + typalign => 'd' }, +{ oid => '629', + typname => '_line', typlen => '-1', typbyval => 'f', typcategory => 'A', + typelem => 'line', typinput => 'array_in', typoutput => 'array_out', + typreceive => 'array_recv', typsend => 'array_send', + typanalyze => 'array_typanalyze', typalign => 'd', typstorage => 'x' }, + +# OIDS 700 - 799 + +{ oid => '700', + descr => 'single-precision floating point number, 4-byte storage', + typname => 'float4', typlen => '4', typbyval => 'FLOAT4PASSBYVAL', + typcategory => 'N', typarray => '_float4', typinput => 'float4in', + typoutput => 'float4out', typreceive => 'float4recv', typsend => 'float4send', + typalign => 'i' }, +{ oid => '701', + descr => 'double-precision floating point number, 8-byte storage', + typname => 'float8', typlen => '8', typbyval => 'FLOAT8PASSBYVAL', + typcategory => 'N', typispreferred => 't', typarray => '_float8', + typinput => 'float8in', typoutput => 'float8out', typreceive => 'float8recv', + typsend => 'float8send', typalign => 'd' }, +{ oid => '702', + descr => 'absolute, limited-range date and time (Unix system time)', + typname => 'abstime', typlen => '4', typbyval => 't', typcategory => 'D', + typarray => '_abstime', typinput => 'abstimein', typoutput => 'abstimeout', + typreceive => 'abstimerecv', typsend => 'abstimesend', typalign => 'i' }, +{ oid => '703', + descr => 'relative, limited-range time interval (Unix delta time)', + typname => 'reltime', typlen => '4', typbyval => 't', typcategory => 'T', + typarray => '_reltime', typinput => 'reltimein', typoutput => 'reltimeout', + typreceive => 'reltimerecv', typsend => 'reltimesend', typalign => 'i' }, +{ oid => '704', descr => '(abstime,abstime), time interval', + typname => 'tinterval', typlen => '12', typbyval => 'f', typcategory => 'T', + typarray => '_tinterval', typinput => 'tintervalin', + typoutput => 'tintervalout', typreceive => 'tintervalrecv', + typsend => 'tintervalsend', typalign => 'i' }, +{ oid => '705', + typname => 'unknown', typlen => '-2', typbyval => 'f', typtype => 'p', + typcategory => 'X', 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 => '_circle', typinput => 'circle_in', typoutput => 'circle_out', + typreceive => 'circle_recv', typsend => 'circle_send', typalign => 'd' }, +{ oid => '719', + typname => '_circle', typlen => '-1', typbyval => 'f', typcategory => 'A', + typelem => 'circle', typinput => 'array_in', typoutput => 'array_out', + typreceive => 'array_recv', typsend => 'array_send', + typanalyze => 'array_typanalyze', typalign => 'd', typstorage => 'x' }, +{ oid => '790', oid_symbol => 'CASHOID', + descr => 'monetary amounts, $d,ddd.cc', + typname => 'money', typlen => '8', typbyval => 'FLOAT8PASSBYVAL', + typcategory => 'N', typarray => '_money', typinput => 'cash_in', + typoutput => 'cash_out', typreceive => 'cash_recv', typsend => 'cash_send', + typalign => 'd' }, +{ oid => '791', + typname => '_money', typlen => '-1', typbyval => 'f', typcategory => 'A', + typelem => 'money', typinput => 'array_in', typoutput => 'array_out', + typreceive => 'array_recv', typsend => 'array_send', + typanalyze => 'array_typanalyze', typalign => 'd', typstorage => 'x' }, + +# OIDS 800 - 899 + +{ oid => '829', descr => 'XX:XX:XX:XX:XX:XX, MAC address', + typname => 'macaddr', typlen => '6', typbyval => 'f', typcategory => 'U', + typarray => '_macaddr', typinput => 'macaddr_in', typoutput => 'macaddr_out', + typreceive => 'macaddr_recv', typsend => 'macaddr_send', typalign => 'i' }, +{ oid => '869', descr => 'IP address/netmask, host address, netmask optional', + typname => 'inet', typlen => '-1', typbyval => 'f', typcategory => 'I', + typispreferred => 't', typarray => '_inet', typinput => 'inet_in', + typoutput => 'inet_out', typreceive => 'inet_recv', typsend => 'inet_send', + typalign => 'i', typstorage => 'm' }, +{ oid => '650', descr => 'network IP address/netmask, network address', + typname => 'cidr', typlen => '-1', typbyval => 'f', typcategory => 'I', + typarray => '_cidr', typinput => 'cidr_in', typoutput => 'cidr_out', + typreceive => 'cidr_recv', typsend => 'cidr_send', typalign => 'i', + typstorage => 'm' }, +{ oid => '774', descr => 'XX:XX:XX:XX:XX:XX:XX:XX, MAC address', + typname => 'macaddr8', typlen => '8', typbyval => 'f', typcategory => 'U', + typarray => '_macaddr8', typinput => 'macaddr8_in', + typoutput => 'macaddr8_out', typreceive => 'macaddr8_recv', + typsend => 'macaddr8_send', typalign => 'i' }, + +# OIDS 1000 - 1099 + +{ oid => '1000', + typname => '_bool', typlen => '-1', typbyval => 'f', typcategory => 'A', + typelem => 'bool', typinput => 'array_in', typoutput => 'array_out', + typreceive => 'array_recv', typsend => 'array_send', + typanalyze => 'array_typanalyze', typalign => 'i', typstorage => 'x' }, +{ oid => '1001', + typname => '_bytea', typlen => '-1', typbyval => 'f', typcategory => 'A', + typelem => 'bytea', typinput => 'array_in', typoutput => 'array_out', + typreceive => 'array_recv', typsend => 'array_send', + typanalyze => 'array_typanalyze', typalign => 'i', typstorage => 'x' }, +{ oid => '1002', + typname => '_char', typlen => '-1', typbyval => 'f', typcategory => 'A', + typelem => 'char', typinput => 'array_in', typoutput => 'array_out', + typreceive => 'array_recv', typsend => 'array_send', + typanalyze => 'array_typanalyze', typalign => 'i', typstorage => 'x' }, +{ oid => '1003', + typname => '_name', typlen => '-1', typbyval => 'f', typcategory => 'A', + typelem => 'name', typinput => 'array_in', typoutput => 'array_out', + typreceive => 'array_recv', typsend => 'array_send', + typanalyze => 'array_typanalyze', typalign => 'i', typstorage => 'x' }, +{ oid => '1005', + typname => '_int2', typlen => '-1', typbyval => 'f', typcategory => 'A', + typelem => 'int2', typinput => 'array_in', typoutput => 'array_out', + typreceive => 'array_recv', typsend => 'array_send', + typanalyze => 'array_typanalyze', typalign => 'i', typstorage => 'x' }, +{ oid => '1006', + typname => '_int2vector', typlen => '-1', typbyval => 'f', typcategory => 'A', + typelem => 'int2vector', typinput => 'array_in', typoutput => 'array_out', + typreceive => 'array_recv', typsend => 'array_send', + typanalyze => 'array_typanalyze', typalign => 'i', typstorage => 'x' }, +{ oid => '1007', + typname => '_int4', typlen => '-1', typbyval => 'f', typcategory => 'A', + typelem => 'int4', typinput => 'array_in', typoutput => 'array_out', + typreceive => 'array_recv', typsend => 'array_send', + typanalyze => 'array_typanalyze', typalign => 'i', typstorage => 'x' }, +{ oid => '1008', + typname => '_regproc', typlen => '-1', typbyval => 'f', typcategory => 'A', + typelem => 'regproc', typinput => 'array_in', typoutput => 'array_out', + typreceive => 'array_recv', typsend => 'array_send', + typanalyze => 'array_typanalyze', typalign => 'i', typstorage => 'x' }, +{ oid => '1009', + typname => '_text', typlen => '-1', typbyval => 'f', typcategory => 'A', + typelem => 'text', typinput => 'array_in', typoutput => 'array_out', + typreceive => 'array_recv', typsend => 'array_send', + typanalyze => 'array_typanalyze', typalign => 'i', typstorage => 'x', + typcollation => '100' }, +{ oid => '1028', + typname => '_oid', typlen => '-1', typbyval => 'f', typcategory => 'A', + typelem => 'oid', typinput => 'array_in', typoutput => 'array_out', + typreceive => 'array_recv', typsend => 'array_send', + typanalyze => 'array_typanalyze', typalign => 'i', typstorage => 'x' }, +{ oid => '1010', + typname => '_tid', typlen => '-1', typbyval => 'f', typcategory => 'A', + typelem => 'tid', typinput => 'array_in', typoutput => 'array_out', + typreceive => 'array_recv', typsend => 'array_send', + typanalyze => 'array_typanalyze', typalign => 'i', typstorage => 'x' }, +{ oid => '1011', + typname => '_xid', typlen => '-1', typbyval => 'f', typcategory => 'A', + typelem => 'xid', typinput => 'array_in', typoutput => 'array_out', + typreceive => 'array_recv', typsend => 'array_send', + typanalyze => 'array_typanalyze', typalign => 'i', typstorage => 'x' }, +{ oid => '1012', + typname => '_cid', typlen => '-1', typbyval => 'f', typcategory => 'A', + typelem => 'cid', typinput => 'array_in', typoutput => 'array_out', + typreceive => 'array_recv', typsend => 'array_send', + typanalyze => 'array_typanalyze', typalign => 'i', typstorage => 'x' }, +{ oid => '1013', + typname => '_oidvector', typlen => '-1', typbyval => 'f', typcategory => 'A', + typelem => 'oidvector', typinput => 'array_in', typoutput => 'array_out', + typreceive => 'array_recv', typsend => 'array_send', + typanalyze => 'array_typanalyze', typalign => 'i', typstorage => 'x' }, +{ oid => '1014', + typname => '_bpchar', typlen => '-1', typbyval => 'f', typcategory => 'A', + typelem => 'bpchar', typinput => 'array_in', typoutput => 'array_out', + typreceive => 'array_recv', typsend => 'array_send', + typmodin => 'bpchartypmodin', typmodout => 'bpchartypmodout', + typanalyze => 'array_typanalyze', typalign => 'i', typstorage => 'x', + typcollation => '100' }, +{ oid => '1015', + typname => '_varchar', typlen => '-1', typbyval => 'f', typcategory => 'A', + typelem => 'varchar', typinput => 'array_in', typoutput => 'array_out', + typreceive => 'array_recv', typsend => 'array_send', + typmodin => 'varchartypmodin', typmodout => 'varchartypmodout', + typanalyze => 'array_typanalyze', typalign => 'i', typstorage => 'x', + typcollation => '100' }, +{ oid => '1016', + typname => '_int8', typlen => '-1', typbyval => 'f', typcategory => 'A', + typelem => 'int8', typinput => 'array_in', typoutput => 'array_out', + typreceive => 'array_recv', typsend => 'array_send', + typanalyze => 'array_typanalyze', typalign => 'd', typstorage => 'x' }, +{ oid => '1017', + typname => '_point', typlen => '-1', typbyval => 'f', typcategory => 'A', + typelem => 'point', typinput => 'array_in', typoutput => 'array_out', + typreceive => 'array_recv', typsend => 'array_send', + typanalyze => 'array_typanalyze', typalign => 'd', typstorage => 'x' }, +{ oid => '1018', + typname => '_lseg', typlen => '-1', typbyval => 'f', typcategory => 'A', + typelem => 'lseg', typinput => 'array_in', typoutput => 'array_out', + typreceive => 'array_recv', typsend => 'array_send', + typanalyze => 'array_typanalyze', typalign => 'd', typstorage => 'x' }, +{ oid => '1019', + typname => '_path', typlen => '-1', typbyval => 'f', typcategory => 'A', + typelem => 'path', typinput => 'array_in', typoutput => 'array_out', + typreceive => 'array_recv', typsend => 'array_send', + typanalyze => 'array_typanalyze', typalign => 'd', typstorage => 'x' }, +{ oid => '1020', + typname => '_box', typlen => '-1', typbyval => 'f', typcategory => 'A', + typdelim => '\073', typelem => 'box', typinput => 'array_in', + typoutput => 'array_out', typreceive => 'array_recv', typsend => 'array_send', + typanalyze => 'array_typanalyze', typalign => 'd', typstorage => 'x' }, +{ oid => '1021', + typname => '_float4', typlen => '-1', typbyval => 'f', typcategory => 'A', + typelem => 'float4', typinput => 'array_in', typoutput => 'array_out', + typreceive => 'array_recv', typsend => 'array_send', + typanalyze => 'array_typanalyze', typalign => 'i', typstorage => 'x' }, +{ oid => '1022', + typname => '_float8', typlen => '-1', typbyval => 'f', typcategory => 'A', + typelem => 'float8', typinput => 'array_in', typoutput => 'array_out', + typreceive => 'array_recv', typsend => 'array_send', + typanalyze => 'array_typanalyze', typalign => 'd', typstorage => 'x' }, +{ oid => '1023', + typname => '_abstime', typlen => '-1', typbyval => 'f', typcategory => 'A', + typelem => 'abstime', typinput => 'array_in', typoutput => 'array_out', + typreceive => 'array_recv', typsend => 'array_send', + typanalyze => 'array_typanalyze', typalign => 'i', typstorage => 'x' }, +{ oid => '1024', + typname => '_reltime', typlen => '-1', typbyval => 'f', typcategory => 'A', + typelem => 'reltime', typinput => 'array_in', typoutput => 'array_out', + typreceive => 'array_recv', typsend => 'array_send', + typanalyze => 'array_typanalyze', typalign => 'i', typstorage => 'x' }, +{ oid => '1025', + typname => '_tinterval', typlen => '-1', typbyval => 'f', typcategory => 'A', + typelem => 'tinterval', typinput => 'array_in', typoutput => 'array_out', + typreceive => 'array_recv', typsend => 'array_send', + typanalyze => 'array_typanalyze', typalign => 'i', typstorage => 'x' }, +{ oid => '1027', + typname => '_polygon', typlen => '-1', typbyval => 'f', typcategory => 'A', + typelem => 'polygon', typinput => 'array_in', typoutput => 'array_out', + typreceive => 'array_recv', typsend => 'array_send', + typanalyze => 'array_typanalyze', typalign => 'd', typstorage => 'x' }, +{ oid => '1033', descr => 'access control list', + typname => 'aclitem', typlen => '12', typbyval => 'f', typcategory => 'U', + typarray => '_aclitem', typinput => 'aclitemin', typoutput => 'aclitemout', + typreceive => '-', typsend => '-', typalign => 'i' }, +{ oid => '1034', + typname => '_aclitem', typlen => '-1', typbyval => 'f', typcategory => 'A', + typelem => 'aclitem', typinput => 'array_in', typoutput => 'array_out', + typreceive => 'array_recv', typsend => 'array_send', + typanalyze => 'array_typanalyze', typalign => 'i', typstorage => 'x' }, +{ oid => '1040', + typname => '_macaddr', typlen => '-1', typbyval => 'f', typcategory => 'A', + typelem => 'macaddr', typinput => 'array_in', typoutput => 'array_out', + typreceive => 'array_recv', typsend => 'array_send', + typanalyze => 'array_typanalyze', typalign => 'i', typstorage => 'x' }, +{ oid => '775', + typname => '_macaddr8', typlen => '-1', typbyval => 'f', typcategory => 'A', + typelem => 'macaddr8', typinput => 'array_in', typoutput => 'array_out', + typreceive => 'array_recv', typsend => 'array_send', + typanalyze => 'array_typanalyze', typalign => 'i', typstorage => 'x' }, +{ oid => '1041', + typname => '_inet', typlen => '-1', typbyval => 'f', typcategory => 'A', + typelem => 'inet', typinput => 'array_in', typoutput => 'array_out', + typreceive => 'array_recv', typsend => 'array_send', + typanalyze => 'array_typanalyze', typalign => 'i', typstorage => 'x' }, +{ oid => '651', + typname => '_cidr', typlen => '-1', typbyval => 'f', typcategory => 'A', + typelem => 'cidr', typinput => 'array_in', typoutput => 'array_out', + typreceive => 'array_recv', typsend => 'array_send', + typanalyze => 'array_typanalyze', typalign => 'i', typstorage => 'x' }, +{ oid => '1263', + typname => '_cstring', typlen => '-1', typbyval => 'f', typcategory => 'A', + typelem => 'cstring', typinput => 'array_in', typoutput => 'array_out', + typreceive => 'array_recv', typsend => 'array_send', + typanalyze => 'array_typanalyze', typalign => 'i', typstorage => 'x' }, +{ oid => '1042', + descr => 'char(length), blank-padded string, fixed storage length', + typname => 'bpchar', typlen => '-1', typbyval => 'f', typcategory => 'S', + typarray => '_bpchar', typinput => 'bpcharin', typoutput => 'bpcharout', + typreceive => 'bpcharrecv', typsend => 'bpcharsend', + typmodin => 'bpchartypmodin', typmodout => 'bpchartypmodout', typalign => 'i', + typstorage => 'x', typcollation => '100' }, +{ oid => '1043', + descr => 'varchar(length), non-blank-padded string, variable storage length', + typname => 'varchar', typlen => '-1', typbyval => 'f', typcategory => 'S', + typarray => '_varchar', typinput => 'varcharin', typoutput => 'varcharout', + typreceive => 'varcharrecv', typsend => 'varcharsend', + typmodin => 'varchartypmodin', typmodout => 'varchartypmodout', + typalign => 'i', typstorage => 'x', typcollation => '100' }, +{ oid => '1082', descr => 'date', + typname => 'date', typlen => '4', typbyval => 't', typcategory => 'D', + typarray => '_date', typinput => 'date_in', typoutput => 'date_out', + typreceive => 'date_recv', typsend => 'date_send', typalign => 'i' }, +{ oid => '1083', descr => 'time of day', + typname => 'time', typlen => '8', typbyval => 'FLOAT8PASSBYVAL', + typcategory => 'D', typarray => '_time', 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 => '_timestamp', typinput => 'timestamp_in', + typoutput => 'timestamp_out', typreceive => 'timestamp_recv', + typsend => 'timestamp_send', typmodin => 'timestamptypmodin', + typmodout => 'timestamptypmodout', typalign => 'd' }, +{ oid => '1115', + typname => '_timestamp', typlen => '-1', typbyval => 'f', typcategory => 'A', + typelem => 'timestamp', typinput => 'array_in', typoutput => 'array_out', + typreceive => 'array_recv', typsend => 'array_send', + typmodin => 'timestamptypmodin', typmodout => 'timestamptypmodout', + typanalyze => 'array_typanalyze', typalign => 'd', typstorage => 'x' }, +{ oid => '1182', + typname => '_date', typlen => '-1', typbyval => 'f', typcategory => 'A', + typelem => 'date', typinput => 'array_in', typoutput => 'array_out', + typreceive => 'array_recv', typsend => 'array_send', + typanalyze => 'array_typanalyze', typalign => 'i', typstorage => 'x' }, +{ oid => '1183', + typname => '_time', typlen => '-1', typbyval => 'f', typcategory => 'A', + typelem => 'time', typinput => 'array_in', typoutput => 'array_out', + typreceive => 'array_recv', typsend => 'array_send', + typmodin => 'timetypmodin', typmodout => 'timetypmodout', + typanalyze => 'array_typanalyze', typalign => 'd', typstorage => 'x' }, +{ oid => '1184', descr => 'date and time with time zone', + typname => 'timestamptz', typlen => '8', typbyval => 'FLOAT8PASSBYVAL', + typcategory => 'D', typispreferred => 't', typarray => '_timestamptz', + typinput => 'timestamptz_in', typoutput => 'timestamptz_out', + typreceive => 'timestamptz_recv', typsend => 'timestamptz_send', + typmodin => 'timestamptztypmodin', typmodout => 'timestamptztypmodout', + typalign => 'd' }, +{ oid => '1185', + typname => '_timestamptz', typlen => '-1', typbyval => 'f', + typcategory => 'A', typelem => 'timestamptz', typinput => 'array_in', + typoutput => 'array_out', typreceive => 'array_recv', typsend => 'array_send', + typmodin => 'timestamptztypmodin', typmodout => 'timestamptztypmodout', + typanalyze => 'array_typanalyze', typalign => 'd', typstorage => 'x' }, +{ oid => '1186', descr => '@ , time interval', + typname => 'interval', typlen => '16', typbyval => 'f', typcategory => 'T', + typispreferred => 't', typarray => '_interval', typinput => 'interval_in', + typoutput => 'interval_out', typreceive => 'interval_recv', + typsend => 'interval_send', typmodin => 'intervaltypmodin', + typmodout => 'intervaltypmodout', typalign => 'd' }, +{ oid => '1187', + typname => '_interval', typlen => '-1', typbyval => 'f', typcategory => 'A', + typelem => 'interval', 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 => 'numeric', 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', + typname => 'timetz', typlen => '12', typbyval => 'f', typcategory => 'D', + typarray => '_timetz', typinput => 'timetz_in', typoutput => 'timetz_out', + typreceive => 'timetz_recv', typsend => 'timetz_send', + typmodin => 'timetztypmodin', typmodout => 'timetztypmodout', + typalign => 'd' }, +{ oid => '1270', + typname => '_timetz', typlen => '-1', typbyval => 'f', typcategory => 'A', + typelem => 'timetz', 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 => '_bit', typinput => 'bit_in', typoutput => 'bit_out', + typreceive => 'bit_recv', typsend => 'bit_send', typmodin => 'bittypmodin', + typmodout => 'bittypmodout', typalign => 'i', typstorage => 'x' }, +{ oid => '1561', + typname => '_bit', typlen => '-1', typbyval => 'f', typcategory => 'A', + typelem => 'bit', typinput => 'array_in', typoutput => 'array_out', + typreceive => 'array_recv', typsend => 'array_send', + typmodin => 'bittypmodin', typmodout => 'bittypmodout', + typanalyze => 'array_typanalyze', typalign => 'i', typstorage => 'x' }, +{ oid => '1562', descr => 'variable-length bit string', + typname => 'varbit', typlen => '-1', typbyval => 'f', typcategory => 'V', + typispreferred => 't', typarray => '_varbit', typinput => 'varbit_in', + typoutput => 'varbit_out', typreceive => 'varbit_recv', + typsend => 'varbit_send', typmodin => 'varbittypmodin', + typmodout => 'varbittypmodout', typalign => 'i', typstorage => 'x' }, +{ oid => '1563', + typname => '_varbit', typlen => '-1', typbyval => 'f', typcategory => 'A', + typelem => 'varbit', typinput => 'array_in', typoutput => 'array_out', + typreceive => 'array_recv', typsend => 'array_send', + typmodin => 'varbittypmodin', typmodout => 'varbittypmodout', + typanalyze => 'array_typanalyze', typalign => 'i', typstorage => 'x' }, + +# OIDS 1700 - 1799 + +{ oid => '1700', + descr => 'numeric(precision, decimal), arbitrary precision number', + typname => 'numeric', typlen => '-1', typbyval => 'f', typcategory => 'N', + typarray => '_numeric', 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 => '_refcursor', 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 => 'refcursor', 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 => '_regprocedure', typinput => 'regprocedurein', + typoutput => 'regprocedureout', typreceive => 'regprocedurerecv', + typsend => 'regproceduresend', typalign => 'i' }, +{ oid => '2203', descr => 'registered operator', + typname => 'regoper', typlen => '4', typbyval => 't', typcategory => 'N', + typarray => '_regoper', 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 => '_regoperator', typinput => 'regoperatorin', + typoutput => 'regoperatorout', typreceive => 'regoperatorrecv', + typsend => 'regoperatorsend', typalign => 'i' }, +{ oid => '2205', descr => 'registered class', + typname => 'regclass', typlen => '4', typbyval => 't', typcategory => 'N', + typarray => '_regclass', typinput => 'regclassin', typoutput => 'regclassout', + typreceive => 'regclassrecv', typsend => 'regclasssend', typalign => 'i' }, +{ oid => '2206', descr => 'registered type', + typname => 'regtype', typlen => '4', typbyval => 't', typcategory => 'N', + typarray => '_regtype', typinput => 'regtypein', typoutput => 'regtypeout', + typreceive => 'regtyperecv', typsend => 'regtypesend', typalign => 'i' }, +{ oid => '4096', descr => 'registered role', + typname => 'regrole', typlen => '4', typbyval => 't', typcategory => 'N', + typarray => '_regrole', typinput => 'regrolein', typoutput => 'regroleout', + typreceive => 'regrolerecv', typsend => 'regrolesend', typalign => 'i' }, +{ oid => '4089', descr => 'registered namespace', + typname => 'regnamespace', typlen => '4', typbyval => 't', typcategory => 'N', + typarray => '_regnamespace', typinput => 'regnamespacein', + typoutput => 'regnamespaceout', typreceive => 'regnamespacerecv', + typsend => 'regnamespacesend', typalign => 'i' }, +{ oid => '2207', + typname => '_regprocedure', typlen => '-1', typbyval => 'f', + typcategory => 'A', typelem => 'regprocedure', typinput => 'array_in', + typoutput => 'array_out', typreceive => 'array_recv', typsend => 'array_send', + typanalyze => 'array_typanalyze', typalign => 'i', typstorage => 'x' }, +{ oid => '2208', + typname => '_regoper', typlen => '-1', typbyval => 'f', typcategory => 'A', + typelem => 'regoper', typinput => 'array_in', typoutput => 'array_out', + typreceive => 'array_recv', typsend => 'array_send', + typanalyze => 'array_typanalyze', typalign => 'i', typstorage => 'x' }, +{ oid => '2209', + typname => '_regoperator', typlen => '-1', typbyval => 'f', + typcategory => 'A', typelem => 'regoperator', typinput => 'array_in', + typoutput => 'array_out', typreceive => 'array_recv', typsend => 'array_send', + typanalyze => 'array_typanalyze', typalign => 'i', typstorage => 'x' }, +{ oid => '2210', + typname => '_regclass', typlen => '-1', typbyval => 'f', typcategory => 'A', + typelem => 'regclass', typinput => 'array_in', typoutput => 'array_out', + typreceive => 'array_recv', typsend => 'array_send', + typanalyze => 'array_typanalyze', typalign => 'i', typstorage => 'x' }, +{ oid => '2211', + typname => '_regtype', typlen => '-1', typbyval => 'f', typcategory => 'A', + typelem => 'regtype', typinput => 'array_in', typoutput => 'array_out', + typreceive => 'array_recv', typsend => 'array_send', + typanalyze => 'array_typanalyze', typalign => 'i', typstorage => 'x' }, +{ oid => '4097', + typname => '_regrole', typlen => '-1', typbyval => 'f', typcategory => 'A', + typelem => 'regrole', typinput => 'array_in', typoutput => 'array_out', + typreceive => 'array_recv', typsend => 'array_send', + typanalyze => 'array_typanalyze', typalign => 'i', typstorage => 'x' }, +{ oid => '4090', + typname => '_regnamespace', typlen => '-1', typbyval => 'f', + typcategory => 'A', typelem => 'regnamespace', typinput => 'array_in', + typoutput => 'array_out', typreceive => 'array_recv', typsend => 'array_send', + typanalyze => 'array_typanalyze', typalign => 'i', typstorage => 'x' }, + +# uuid +{ oid => '2950', descr => 'UUID datatype', + typname => 'uuid', typlen => '16', typbyval => 'f', typcategory => 'U', + typarray => '_uuid', typinput => 'uuid_in', typoutput => 'uuid_out', + typreceive => 'uuid_recv', typsend => 'uuid_send', typalign => 'c' }, +{ oid => '2951', + typname => '_uuid', typlen => '-1', typbyval => 'f', typcategory => 'A', + typelem => 'uuid', typinput => 'array_in', typoutput => 'array_out', + typreceive => 'array_recv', typsend => 'array_send', + typanalyze => 'array_typanalyze', typalign => 'i', typstorage => 'x' }, + +# pg_lsn +{ oid => '3220', oid_symbol => 'LSNOID', descr => 'PostgreSQL LSN datatype', + typname => 'pg_lsn', typlen => '8', typbyval => 'FLOAT8PASSBYVAL', + typcategory => 'U', typarray => '_pg_lsn', typinput => 'pg_lsn_in', + typoutput => 'pg_lsn_out', typreceive => 'pg_lsn_recv', + typsend => 'pg_lsn_send', typalign => 'd' }, +{ oid => '3221', + typname => '_pg_lsn', typlen => '-1', typbyval => 'f', typcategory => 'A', + typelem => 'pg_lsn', typinput => 'array_in', typoutput => 'array_out', + typreceive => 'array_recv', typsend => 'array_send', + typanalyze => 'array_typanalyze', typalign => 'd', typstorage => 'x' }, + +# text search +{ oid => '3614', descr => 'text representation for text search', + typname => 'tsvector', typlen => '-1', typbyval => 'f', typcategory => 'U', + typarray => '_tsvector', typinput => 'tsvectorin', typoutput => 'tsvectorout', + typreceive => 'tsvectorrecv', typsend => 'tsvectorsend', + typanalyze => 'ts_typanalyze', typalign => 'i', typstorage => 'x' }, +{ oid => '3642', + descr => 'GiST index internal text representation for text search', + typname => 'gtsvector', typlen => '-1', typbyval => 'f', typcategory => 'U', + typarray => '_gtsvector', typinput => 'gtsvectorin', + typoutput => 'gtsvectorout', typreceive => '-', typsend => '-', + typalign => 'i' }, +{ oid => '3615', descr => 'query representation for text search', + typname => 'tsquery', typlen => '-1', typbyval => 'f', typcategory => 'U', + typarray => '_tsquery', typinput => 'tsqueryin', typoutput => 'tsqueryout', + typreceive => 'tsqueryrecv', typsend => 'tsquerysend', typalign => 'i' }, +{ oid => '3734', descr => 'registered text search configuration', + typname => 'regconfig', typlen => '4', typbyval => 't', typcategory => 'N', + typarray => '_regconfig', 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 => '_regdictionary', + typinput => 'regdictionaryin', typoutput => 'regdictionaryout', + typreceive => 'regdictionaryrecv', typsend => 'regdictionarysend', + typalign => 'i' }, + +{ oid => '3643', + typname => '_tsvector', typlen => '-1', typbyval => 'f', typcategory => 'A', + typelem => 'tsvector', typinput => 'array_in', typoutput => 'array_out', + typreceive => 'array_recv', typsend => 'array_send', + typanalyze => 'array_typanalyze', typalign => 'i', typstorage => 'x' }, +{ oid => '3644', + typname => '_gtsvector', typlen => '-1', typbyval => 'f', typcategory => 'A', + typelem => 'gtsvector', typinput => 'array_in', typoutput => 'array_out', + typreceive => 'array_recv', typsend => 'array_send', + typanalyze => 'array_typanalyze', typalign => 'i', typstorage => 'x' }, +{ oid => '3645', + typname => '_tsquery', typlen => '-1', typbyval => 'f', typcategory => 'A', + typelem => 'tsquery', typinput => 'array_in', typoutput => 'array_out', + typreceive => 'array_recv', typsend => 'array_send', + typanalyze => 'array_typanalyze', typalign => 'i', typstorage => 'x' }, +{ oid => '3735', + typname => '_regconfig', typlen => '-1', typbyval => 'f', typcategory => 'A', + typelem => 'regconfig', typinput => 'array_in', typoutput => 'array_out', + typreceive => 'array_recv', typsend => 'array_send', + typanalyze => 'array_typanalyze', typalign => 'i', typstorage => 'x' }, +{ oid => '3770', + typname => '_regdictionary', typlen => '-1', typbyval => 'f', + typcategory => 'A', typelem => 'regdictionary', typinput => 'array_in', + typoutput => 'array_out', typreceive => 'array_recv', typsend => 'array_send', + typanalyze => 'array_typanalyze', typalign => 'i', typstorage => 'x' }, + +# jsonb +{ oid => '3802', descr => 'Binary JSON', + typname => 'jsonb', typlen => '-1', typbyval => 'f', typcategory => 'U', + typarray => '_jsonb', typinput => 'jsonb_in', typoutput => 'jsonb_out', + typreceive => 'jsonb_recv', typsend => 'jsonb_send', typalign => 'i', + typstorage => 'x' }, +{ oid => '3807', + typname => '_jsonb', typlen => '-1', typbyval => 'f', typcategory => 'A', + typelem => 'jsonb', typinput => 'array_in', typoutput => 'array_out', + typreceive => 'array_recv', typsend => 'array_send', + typanalyze => 'array_typanalyze', typalign => 'i', typstorage => 'x' }, + +{ oid => '2970', descr => 'txid snapshot', + typname => 'txid_snapshot', typlen => '-1', typbyval => 'f', + typcategory => 'U', typarray => '_txid_snapshot', + typinput => 'txid_snapshot_in', typoutput => 'txid_snapshot_out', + typreceive => 'txid_snapshot_recv', typsend => 'txid_snapshot_send', + typalign => 'd', typstorage => 'x' }, +{ oid => '2949', + typname => '_txid_snapshot', typlen => '-1', typbyval => 'f', + typcategory => 'A', typelem => 'txid_snapshot', typinput => 'array_in', + typoutput => 'array_out', typreceive => 'array_recv', typsend => 'array_send', + typanalyze => 'array_typanalyze', typalign => 'd', typstorage => 'x' }, + +# range types +{ oid => '3904', descr => 'range of integers', + typname => 'int4range', typlen => '-1', typbyval => 'f', typtype => 'r', + typcategory => 'R', typarray => '_int4range', typinput => 'range_in', + typoutput => 'range_out', typreceive => 'range_recv', typsend => 'range_send', + typanalyze => 'range_typanalyze', typalign => 'i', typstorage => 'x' }, +{ oid => '3905', + typname => '_int4range', typlen => '-1', typbyval => 'f', typcategory => 'A', + typelem => 'int4range', typinput => 'array_in', typoutput => 'array_out', + typreceive => 'array_recv', typsend => 'array_send', + typanalyze => 'array_typanalyze', typalign => 'i', typstorage => 'x' }, +{ oid => '3906', descr => 'range of numerics', + typname => 'numrange', typlen => '-1', typbyval => 'f', typtype => 'r', + typcategory => 'R', typarray => '_numrange', typinput => 'range_in', + typoutput => 'range_out', typreceive => 'range_recv', typsend => 'range_send', + typanalyze => 'range_typanalyze', typalign => 'i', typstorage => 'x' }, +{ oid => '3907', + typname => '_numrange', typlen => '-1', typbyval => 'f', typcategory => 'A', + typelem => 'numrange', typinput => 'array_in', typoutput => 'array_out', + typreceive => 'array_recv', typsend => 'array_send', + typanalyze => 'array_typanalyze', typalign => 'i', typstorage => 'x' }, +{ oid => '3908', descr => 'range of timestamps without time zone', + typname => 'tsrange', typlen => '-1', typbyval => 'f', typtype => 'r', + typcategory => 'R', typarray => '_tsrange', typinput => 'range_in', + typoutput => 'range_out', typreceive => 'range_recv', typsend => 'range_send', + typanalyze => 'range_typanalyze', typalign => 'd', typstorage => 'x' }, +{ oid => '3909', + typname => '_tsrange', typlen => '-1', typbyval => 'f', typcategory => 'A', + typelem => 'tsrange', typinput => 'array_in', typoutput => 'array_out', + typreceive => 'array_recv', typsend => 'array_send', + typanalyze => 'array_typanalyze', typalign => 'd', typstorage => 'x' }, +{ oid => '3910', descr => 'range of timestamps with time zone', + typname => 'tstzrange', typlen => '-1', typbyval => 'f', typtype => 'r', + typcategory => 'R', typarray => '_tstzrange', typinput => 'range_in', + typoutput => 'range_out', typreceive => 'range_recv', typsend => 'range_send', + typanalyze => 'range_typanalyze', typalign => 'd', typstorage => 'x' }, +{ oid => '3911', + typname => '_tstzrange', typlen => '-1', typbyval => 'f', typcategory => 'A', + typelem => 'tstzrange', typinput => 'array_in', typoutput => 'array_out', + typreceive => 'array_recv', typsend => 'array_send', + typanalyze => 'array_typanalyze', typalign => 'd', typstorage => 'x' }, +{ oid => '3912', descr => 'range of dates', + typname => 'daterange', typlen => '-1', typbyval => 'f', typtype => 'r', + typcategory => 'R', typarray => '_daterange', typinput => 'range_in', + typoutput => 'range_out', typreceive => 'range_recv', typsend => 'range_send', + typanalyze => 'range_typanalyze', typalign => 'i', typstorage => 'x' }, +{ oid => '3913', + typname => '_daterange', typlen => '-1', typbyval => 'f', typcategory => 'A', + typelem => 'daterange', typinput => 'array_in', typoutput => 'array_out', + typreceive => 'array_recv', typsend => 'array_send', + typanalyze => 'array_typanalyze', typalign => 'i', typstorage => 'x' }, +{ oid => '3926', descr => 'range of bigints', + typname => 'int8range', typlen => '-1', typbyval => 'f', typtype => 'r', + typcategory => 'R', typarray => '_int8range', typinput => 'range_in', + typoutput => 'range_out', typreceive => 'range_recv', typsend => 'range_send', + typanalyze => 'range_typanalyze', typalign => 'd', typstorage => 'x' }, +{ oid => '3927', + typname => '_int8range', typlen => '-1', typbyval => 'f', typcategory => 'A', + typelem => 'int8range', typinput => 'array_in', typoutput => 'array_out', + typreceive => 'array_recv', typsend => 'array_send', + typanalyze => 'array_typanalyze', typalign => 'd', typstorage => 'x' }, + +# pseudo-types +# types with typtype='p' represent various special cases in the type system. +# These cannot be used to define table columns, but are valid as function +# argument and result types (if supported by the function's implementation +# language). +# 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 => '_record', typinput => 'record_in', + typoutput => 'record_out', typreceive => 'record_recv', + typsend => 'record_send', typalign => 'd', typstorage => 'x' }, +{ oid => '2287', + typname => '_record', typlen => '-1', typbyval => 'f', typtype => 'p', + typcategory => 'P', typelem => 'record', typinput => 'array_in', + typoutput => 'array_out', typreceive => 'array_recv', typsend => 'array_send', + typanalyze => 'array_typanalyze', typalign => 'd', typstorage => 'x' }, +{ oid => '2275', + typname => 'cstring', typlen => '-2', typbyval => 'f', typtype => 'p', + typcategory => 'P', typarray => '_cstring', typinput => 'cstring_in', + typoutput => 'cstring_out', typreceive => 'cstring_recv', + typsend => 'cstring_send', typalign => 'c' }, +{ oid => '2276', + typname => 'any', typlen => '4', typbyval => 't', typtype => 'p', + typcategory => 'P', typinput => 'any_in', typoutput => 'any_out', + typreceive => '-', typsend => '-', typalign => 'i' }, +{ oid => '2277', + typname => 'anyarray', typlen => '-1', typbyval => 'f', typtype => 'p', + typcategory => 'P', typinput => 'anyarray_in', typoutput => 'anyarray_out', + typreceive => 'anyarray_recv', typsend => 'anyarray_send', typalign => 'd', + typstorage => 'x' }, +{ oid => '2278', + typname => 'void', typlen => '4', typbyval => 't', typtype => 'p', + typcategory => 'P', typinput => 'void_in', typoutput => 'void_out', + typreceive => 'void_recv', typsend => 'void_send', typalign => 'i' }, +{ oid => '2279', + typname => 'trigger', typlen => '4', typbyval => 't', typtype => 'p', + typcategory => 'P', typinput => 'trigger_in', typoutput => 'trigger_out', + typreceive => '-', typsend => '-', typalign => 'i' }, +{ oid => '3838', oid_symbol => 'EVTTRIGGEROID', + typname => 'event_trigger', typlen => '4', typbyval => 't', typtype => 'p', + typcategory => 'P', typinput => 'event_trigger_in', + typoutput => 'event_trigger_out', typreceive => '-', typsend => '-', + typalign => 'i' }, +{ oid => '2280', + typname => 'language_handler', typlen => '4', typbyval => 't', typtype => 'p', + typcategory => 'P', typinput => 'language_handler_in', + typoutput => 'language_handler_out', typreceive => '-', typsend => '-', + typalign => 'i' }, +{ oid => '2281', + typname => 'internal', typlen => 'SIZEOF_POINTER', typbyval => 't', + typtype => 'p', typcategory => 'P', typinput => 'internal_in', + typoutput => 'internal_out', typreceive => '-', typsend => '-', + typalign => 'ALIGNOF_POINTER' }, +{ oid => '2282', + typname => 'opaque', typlen => '4', typbyval => 't', typtype => 'p', + typcategory => 'P', typinput => 'opaque_in', typoutput => 'opaque_out', + typreceive => '-', typsend => '-', typalign => 'i' }, +{ oid => '2283', + typname => 'anyelement', typlen => '4', typbyval => 't', typtype => 'p', + typcategory => 'P', typinput => 'anyelement_in', + typoutput => 'anyelement_out', typreceive => '-', typsend => '-', + typalign => 'i' }, +{ oid => '2776', + typname => 'anynonarray', typlen => '4', typbyval => 't', typtype => 'p', + typcategory => 'P', typinput => 'anynonarray_in', + typoutput => 'anynonarray_out', typreceive => '-', typsend => '-', + typalign => 'i' }, +{ oid => '3500', + typname => 'anyenum', typlen => '4', typbyval => 't', typtype => 'p', + typcategory => 'P', typinput => 'anyenum_in', typoutput => 'anyenum_out', + typreceive => '-', typsend => '-', typalign => 'i' }, +{ oid => '3115', + typname => 'fdw_handler', typlen => '4', typbyval => 't', typtype => 'p', + typcategory => 'P', typinput => 'fdw_handler_in', + typoutput => 'fdw_handler_out', typreceive => '-', typsend => '-', + typalign => 'i' }, +{ oid => '325', + typname => 'index_am_handler', typlen => '4', typbyval => 't', typtype => 'p', + typcategory => 'P', typinput => 'index_am_handler_in', + typoutput => 'index_am_handler_out', typreceive => '-', typsend => '-', + typalign => 'i' }, +{ oid => '3310', + typname => 'tsm_handler', typlen => '4', typbyval => 't', typtype => 'p', + typcategory => 'P', typinput => 'tsm_handler_in', + typoutput => 'tsm_handler_out', typreceive => '-', typsend => '-', + typalign => 'i' }, +{ oid => '3831', + typname => 'anyrange', typlen => '-1', typbyval => 'f', typtype => 'p', + typcategory => 'P', typinput => 'anyrange_in', typoutput => 'anyrange_out', + typreceive => '-', typsend => '-', typalign => 'd', typstorage => 'x' }, + +] diff --git a/src/include/catalog/pg_type.h b/src/include/catalog/pg_type.h index 5b5b1218de..cf068dc7d5 100644 --- a/src/include/catalog/pg_type.h +++ b/src/include/catalog/pg_type.h @@ -2,7 +2,6 @@ * * pg_type.h * definition of the system "type" relation (pg_type) - * along with the relation's initial contents. * * * Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group @@ -11,8 +10,8 @@ * src/include/catalog/pg_type.h * * NOTES - * the genbki.pl script reads this file and generates .bki - * information from the DATA() statements. + * The Catalog.pm module reads this file and derives schema + * information. * *------------------------------------------------------------------------- */ @@ -20,6 +19,7 @@ #define PG_TYPE_H #include "catalog/genbki.h" +#include "catalog/pg_type_d.h" /* ---------------- * pg_type definition. cpp turns this into @@ -31,14 +31,16 @@ * See struct FormData_pg_attribute for details. * ---------------- */ -#define TypeRelationId 1247 -#define TypeRelation_Rowtype_Id 71 - -CATALOG(pg_type,1247) BKI_BOOTSTRAP BKI_ROWTYPE_OID(71) BKI_SCHEMA_MACRO +CATALOG(pg_type,1247,TypeRelationId) BKI_BOOTSTRAP BKI_ROWTYPE_OID(71,TypeRelation_Rowtype_Id) BKI_SCHEMA_MACRO { - NameData typname; /* type name */ - Oid typnamespace; /* OID of namespace containing this type */ - Oid typowner; /* type owner */ + /* type name */ + NameData typname; + + /* OID of namespace containing this type */ + Oid typnamespace BKI_DEFAULT(PGNSP); + + /* type owner */ + Oid typowner BKI_DEFAULT(PGUID); /* * For a fixed-size type, typlen is the number of bytes we use to @@ -66,7 +68,7 @@ CATALOG(pg_type,1247) BKI_BOOTSTRAP BKI_ROWTYPE_OID(71) BKI_SCHEMA_MACRO * * If typtype is 'c', typrelid is the OID of the class' entry in pg_class. */ - char typtype; + char typtype BKI_DEFAULT(b); /* * typcategory and typispreferred help the parser distinguish preferred @@ -74,19 +76,24 @@ CATALOG(pg_type,1247) BKI_BOOTSTRAP BKI_ROWTYPE_OID(71) BKI_SCHEMA_MACRO * character (but not \0). The categories used for built-in types are * identified by the TYPCATEGORY macros below. */ - char typcategory; /* arbitrary type classification */ - bool typispreferred; /* is type "preferred" within its category? */ + /* arbitrary type classification */ + char typcategory; + + /* is type "preferred" within its category? */ + bool typispreferred BKI_DEFAULT(f); /* * If typisdefined is false, the entry is only a placeholder (forward * reference). We know the type name, but not yet anything else about it. */ - bool typisdefined; + bool typisdefined BKI_DEFAULT(t); - char typdelim; /* delimiter for arrays of this type */ + /* delimiter for arrays of this type */ + char typdelim BKI_DEFAULT("\054"); - Oid typrelid; /* 0 if not a composite type */ + /* associated pg_class OID if a composite type, else 0 */ + Oid typrelid BKI_DEFAULT(0); /* * If typelem is not 0 then it identifies another row in pg_type. The @@ -99,32 +106,36 @@ CATALOG(pg_type,1247) BKI_BOOTSTRAP BKI_ROWTYPE_OID(71) BKI_SCHEMA_MACRO * * typelem != 0 and typlen == -1. */ - Oid typelem; + Oid typelem BKI_DEFAULT(0) BKI_LOOKUP(pg_type); /* * If there is a "true" array type having this type as element type, * typarray links to it. Zero if no associated "true" array type. */ - Oid typarray; + Oid typarray BKI_DEFAULT(0) BKI_LOOKUP(pg_type); /* * I/O conversion procedures for the datatype. */ - regproc typinput; /* text format (required) */ - regproc typoutput; - regproc typreceive; /* binary format (optional) */ - regproc typsend; + + /* text format (required) */ + regproc typinput BKI_LOOKUP(pg_proc); + regproc typoutput BKI_LOOKUP(pg_proc); + + /* binary format (optional) */ + regproc typreceive BKI_LOOKUP(pg_proc); + regproc typsend BKI_LOOKUP(pg_proc); /* * I/O functions for optional type modifiers. */ - regproc typmodin; - regproc typmodout; + regproc typmodin BKI_DEFAULT(-) BKI_LOOKUP(pg_proc); + regproc typmodout BKI_DEFAULT(-) BKI_LOOKUP(pg_proc); /* * Custom ANALYZE procedure for the datatype (0 selects the default). */ - regproc typanalyze; + regproc typanalyze BKI_DEFAULT(-) BKI_LOOKUP(pg_proc); /* ---------------- * typalign is the alignment required when storing a value of this @@ -162,7 +173,7 @@ CATALOG(pg_type,1247) BKI_BOOTSTRAP BKI_ROWTYPE_OID(71) BKI_SCHEMA_MACRO * 'm' MAIN like 'x' but try to keep in main tuple * ---------------- */ - char typstorage; + char typstorage BKI_DEFAULT(p); /* * This flag represents a "NOT NULL" constraint against this datatype. @@ -172,32 +183,32 @@ CATALOG(pg_type,1247) BKI_BOOTSTRAP BKI_ROWTYPE_OID(71) BKI_SCHEMA_MACRO * * Used primarily for domain types. */ - bool typnotnull; + bool typnotnull BKI_DEFAULT(f); /* * Domains use typbasetype to show the base (or domain) type that the * domain is based on. Zero if the type is not a domain. */ - Oid typbasetype; + Oid typbasetype BKI_DEFAULT(0); /* * Domains use typtypmod to record the typmod to be applied to their base * type (-1 if base type does not use a typmod). -1 if this type is not a * domain. */ - int32 typtypmod; + int32 typtypmod BKI_DEFAULT(-1); /* * typndims is the declared number of dimensions for an array domain type * (i.e., typbasetype is an array type). Otherwise zero. */ - int32 typndims; + int32 typndims BKI_DEFAULT(0); /* * Collation: 0 if type cannot use collations, DEFAULT_COLLATION_OID for * collatable base types, possibly other OID for domains */ - Oid typcollation; + Oid typcollation BKI_DEFAULT(0); #ifdef CATALOG_VARLEN /* variable-length fields start here */ @@ -206,7 +217,7 @@ CATALOG(pg_type,1247) BKI_BOOTSTRAP BKI_ROWTYPE_OID(71) BKI_SCHEMA_MACRO * a default expression for the type. Currently this is only used for * domains. */ - pg_node_tree typdefaultbin; + pg_node_tree typdefaultbin BKI_DEFAULT(_null_); /* * typdefault is NULL if the type has no associated default value. If @@ -216,12 +227,12 @@ CATALOG(pg_type,1247) BKI_BOOTSTRAP BKI_ROWTYPE_OID(71) BKI_SCHEMA_MACRO * external representation of the type's default value, which may be fed * to the type's input converter to produce a constant. */ - text typdefault; + text typdefault BKI_DEFAULT(_null_); /* * Access permissions */ - aclitem typacl[1]; + aclitem typacl[1] BKI_DEFAULT(_null_); #endif } FormData_pg_type; @@ -232,490 +243,10 @@ CATALOG(pg_type,1247) BKI_BOOTSTRAP BKI_ROWTYPE_OID(71) BKI_SCHEMA_MACRO */ typedef FormData_pg_type *Form_pg_type; -/* ---------------- - * compiler constants for pg_type - * ---------------- - */ -#define Natts_pg_type 30 -#define Anum_pg_type_typname 1 -#define Anum_pg_type_typnamespace 2 -#define Anum_pg_type_typowner 3 -#define Anum_pg_type_typlen 4 -#define Anum_pg_type_typbyval 5 -#define Anum_pg_type_typtype 6 -#define Anum_pg_type_typcategory 7 -#define Anum_pg_type_typispreferred 8 -#define Anum_pg_type_typisdefined 9 -#define Anum_pg_type_typdelim 10 -#define Anum_pg_type_typrelid 11 -#define Anum_pg_type_typelem 12 -#define Anum_pg_type_typarray 13 -#define Anum_pg_type_typinput 14 -#define Anum_pg_type_typoutput 15 -#define Anum_pg_type_typreceive 16 -#define Anum_pg_type_typsend 17 -#define Anum_pg_type_typmodin 18 -#define Anum_pg_type_typmodout 19 -#define Anum_pg_type_typanalyze 20 -#define Anum_pg_type_typalign 21 -#define Anum_pg_type_typstorage 22 -#define Anum_pg_type_typnotnull 23 -#define Anum_pg_type_typbasetype 24 -#define Anum_pg_type_typtypmod 25 -#define Anum_pg_type_typndims 26 -#define Anum_pg_type_typcollation 27 -#define Anum_pg_type_typdefaultbin 28 -#define Anum_pg_type_typdefault 29 -#define Anum_pg_type_typacl 30 - - -/* ---------------- - * initial contents of pg_type - * ---------------- - */ +#ifdef EXPOSE_TO_CLIENT_CODE /* - * Keep the following ordered by OID so that later changes can be made more - * easily. - * - * For types used in the system catalogs, make sure the values here match - * TypInfo[] in bootstrap.c. - */ - -/* OIDS 1 - 99 */ -DATA(insert OID = 16 ( bool PGNSP PGUID 1 t b B t t \054 0 0 1000 boolin boolout boolrecv boolsend - - - c p f 0 -1 0 0 _null_ _null_ _null_ )); -DESCR("boolean, 'true'/'false'"); -#define BOOLOID 16 - -DATA(insert OID = 17 ( bytea PGNSP PGUID -1 f b U f t \054 0 0 1001 byteain byteaout bytearecv byteasend - - - i x f 0 -1 0 0 _null_ _null_ _null_ )); -DESCR("variable-length string, binary values escaped"); -#define BYTEAOID 17 - -DATA(insert OID = 18 ( char PGNSP PGUID 1 t b S f t \054 0 0 1002 charin charout charrecv charsend - - - c p f 0 -1 0 0 _null_ _null_ _null_ )); -DESCR("single character"); -#define CHAROID 18 - -DATA(insert OID = 19 ( name PGNSP PGUID NAMEDATALEN f b S f t \054 0 18 1003 namein nameout namerecv namesend - - - c p f 0 -1 0 0 _null_ _null_ _null_ )); -DESCR("63-byte type for storing system identifiers"); -#define NAMEOID 19 - -DATA(insert OID = 20 ( int8 PGNSP PGUID 8 FLOAT8PASSBYVAL b N f t \054 0 0 1016 int8in int8out int8recv int8send - - - d p f 0 -1 0 0 _null_ _null_ _null_ )); -DESCR("~18 digit integer, 8-byte storage"); -#define INT8OID 20 - -DATA(insert OID = 21 ( int2 PGNSP PGUID 2 t b N f t \054 0 0 1005 int2in int2out int2recv int2send - - - s p f 0 -1 0 0 _null_ _null_ _null_ )); -DESCR("-32 thousand to 32 thousand, 2-byte storage"); -#define INT2OID 21 - -DATA(insert OID = 22 ( int2vector PGNSP PGUID -1 f b A f t \054 0 21 1006 int2vectorin int2vectorout int2vectorrecv int2vectorsend - - - i p f 0 -1 0 0 _null_ _null_ _null_ )); -DESCR("array of int2, used in system tables"); -#define INT2VECTOROID 22 - -DATA(insert OID = 23 ( int4 PGNSP PGUID 4 t b N f t \054 0 0 1007 int4in int4out int4recv int4send - - - i p f 0 -1 0 0 _null_ _null_ _null_ )); -DESCR("-2 billion to 2 billion integer, 4-byte storage"); -#define INT4OID 23 - -DATA(insert OID = 24 ( regproc PGNSP PGUID 4 t b N f t \054 0 0 1008 regprocin regprocout regprocrecv regprocsend - - - i p f 0 -1 0 0 _null_ _null_ _null_ )); -DESCR("registered procedure"); -#define REGPROCOID 24 - -DATA(insert OID = 25 ( text PGNSP PGUID -1 f b S t t \054 0 0 1009 textin textout textrecv textsend - - - i x f 0 -1 0 100 _null_ _null_ _null_ )); -DESCR("variable-length string, no limit specified"); -#define TEXTOID 25 - -DATA(insert OID = 26 ( oid PGNSP PGUID 4 t b N t t \054 0 0 1028 oidin oidout oidrecv oidsend - - - i p f 0 -1 0 0 _null_ _null_ _null_ )); -DESCR("object identifier(oid), maximum 4 billion"); -#define OIDOID 26 - -DATA(insert OID = 27 ( tid PGNSP PGUID 6 f b U f t \054 0 0 1010 tidin tidout tidrecv tidsend - - - s p f 0 -1 0 0 _null_ _null_ _null_ )); -DESCR("(block, offset), physical location of tuple"); -#define TIDOID 27 - -DATA(insert OID = 28 ( xid PGNSP PGUID 4 t b U f t \054 0 0 1011 xidin xidout xidrecv xidsend - - - i p f 0 -1 0 0 _null_ _null_ _null_ )); -DESCR("transaction id"); -#define XIDOID 28 - -DATA(insert OID = 29 ( cid PGNSP PGUID 4 t b U f t \054 0 0 1012 cidin cidout cidrecv cidsend - - - i p f 0 -1 0 0 _null_ _null_ _null_ )); -DESCR("command identifier type, sequence in transaction id"); -#define CIDOID 29 - -DATA(insert OID = 30 ( oidvector PGNSP PGUID -1 f b A f t \054 0 26 1013 oidvectorin oidvectorout oidvectorrecv oidvectorsend - - - i p f 0 -1 0 0 _null_ _null_ _null_ )); -DESCR("array of oids, used in system tables"); -#define OIDVECTOROID 30 - -/* hand-built rowtype entries for bootstrapped catalogs */ -/* NB: OIDs assigned here must match the BKI_ROWTYPE_OID declarations */ - -DATA(insert OID = 71 ( pg_type PGNSP PGUID -1 f c C f t \054 1247 0 0 record_in record_out record_recv record_send - - - d x f 0 -1 0 0 _null_ _null_ _null_ )); -DATA(insert OID = 75 ( pg_attribute PGNSP PGUID -1 f c C f t \054 1249 0 0 record_in record_out record_recv record_send - - - d x f 0 -1 0 0 _null_ _null_ _null_ )); -DATA(insert OID = 81 ( pg_proc PGNSP PGUID -1 f c C f t \054 1255 0 0 record_in record_out record_recv record_send - - - d x f 0 -1 0 0 _null_ _null_ _null_ )); -DATA(insert OID = 83 ( pg_class PGNSP PGUID -1 f c C f t \054 1259 0 0 record_in record_out record_recv record_send - - - d x f 0 -1 0 0 _null_ _null_ _null_ )); - -/* OIDS 100 - 199 */ -DATA(insert OID = 114 ( json PGNSP PGUID -1 f b U f t \054 0 0 199 json_in json_out json_recv json_send - - - i x f 0 -1 0 0 _null_ _null_ _null_ )); -#define JSONOID 114 -DATA(insert OID = 142 ( xml PGNSP PGUID -1 f b U f t \054 0 0 143 xml_in xml_out xml_recv xml_send - - - i x f 0 -1 0 0 _null_ _null_ _null_ )); -DESCR("XML content"); -#define XMLOID 142 -DATA(insert OID = 143 ( _xml PGNSP PGUID -1 f b A f t \054 0 142 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ )); -DATA(insert OID = 199 ( _json PGNSP PGUID -1 f b A f t \054 0 114 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ )); - -DATA(insert OID = 194 ( pg_node_tree PGNSP PGUID -1 f b S f t \054 0 0 0 pg_node_tree_in pg_node_tree_out pg_node_tree_recv pg_node_tree_send - - - i x f 0 -1 0 100 _null_ _null_ _null_ )); -DESCR("string representing an internal node tree"); -#define PGNODETREEOID 194 - -DATA(insert OID = 3361 ( pg_ndistinct PGNSP PGUID -1 f b S f t \054 0 0 0 pg_ndistinct_in pg_ndistinct_out pg_ndistinct_recv pg_ndistinct_send - - - i x f 0 -1 0 100 _null_ _null_ _null_ )); -DESCR("multivariate ndistinct coefficients"); -#define PGNDISTINCTOID 3361 - -DATA(insert OID = 3402 ( pg_dependencies PGNSP PGUID -1 f b S f t \054 0 0 0 pg_dependencies_in pg_dependencies_out pg_dependencies_recv pg_dependencies_send - - - i x f 0 -1 0 100 _null_ _null_ _null_ )); -DESCR("multivariate dependencies"); -#define PGDEPENDENCIESOID 3402 - -DATA(insert OID = 32 ( pg_ddl_command PGNSP PGUID SIZEOF_POINTER t p P f t \054 0 0 0 pg_ddl_command_in pg_ddl_command_out pg_ddl_command_recv pg_ddl_command_send - - - ALIGNOF_POINTER p f 0 -1 0 0 _null_ _null_ _null_ )); -DESCR("internal type for passing CollectedCommand"); -#define PGDDLCOMMANDOID 32 - -/* OIDS 200 - 299 */ - -DATA(insert OID = 210 ( smgr PGNSP PGUID 2 t b U f t \054 0 0 0 smgrin smgrout - - - - - s p f 0 -1 0 0 _null_ _null_ _null_ )); -DESCR("storage manager"); - -/* OIDS 300 - 399 */ - -/* OIDS 400 - 499 */ - -/* OIDS 500 - 599 */ - -/* OIDS 600 - 699 */ -DATA(insert OID = 600 ( point PGNSP PGUID 16 f b G f t \054 0 701 1017 point_in point_out point_recv point_send - - - d p f 0 -1 0 0 _null_ _null_ _null_ )); -DESCR("geometric point '(x, y)'"); -#define POINTOID 600 -DATA(insert OID = 601 ( lseg PGNSP PGUID 32 f b G f t \054 0 600 1018 lseg_in lseg_out lseg_recv lseg_send - - - d p f 0 -1 0 0 _null_ _null_ _null_ )); -DESCR("geometric line segment '(pt1,pt2)'"); -#define LSEGOID 601 -DATA(insert OID = 602 ( path PGNSP PGUID -1 f b G f t \054 0 0 1019 path_in path_out path_recv path_send - - - d x f 0 -1 0 0 _null_ _null_ _null_ )); -DESCR("geometric path '(pt1,...)'"); -#define PATHOID 602 -DATA(insert OID = 603 ( box PGNSP PGUID 32 f b G f t \073 0 600 1020 box_in box_out box_recv box_send - - - d p f 0 -1 0 0 _null_ _null_ _null_ )); -DESCR("geometric box '(lower left,upper right)'"); -#define BOXOID 603 -DATA(insert OID = 604 ( polygon PGNSP PGUID -1 f b G f t \054 0 0 1027 poly_in poly_out poly_recv poly_send - - - d x f 0 -1 0 0 _null_ _null_ _null_ )); -DESCR("geometric polygon '(pt1,...)'"); -#define POLYGONOID 604 - -DATA(insert OID = 628 ( line PGNSP PGUID 24 f b G f t \054 0 701 629 line_in line_out line_recv line_send - - - d p f 0 -1 0 0 _null_ _null_ _null_ )); -DESCR("geometric line"); -#define LINEOID 628 -DATA(insert OID = 629 ( _line PGNSP PGUID -1 f b A f t \054 0 628 0 array_in array_out array_recv array_send - - array_typanalyze d x f 0 -1 0 0 _null_ _null_ _null_ )); - -/* OIDS 700 - 799 */ - -DATA(insert OID = 700 ( float4 PGNSP PGUID 4 FLOAT4PASSBYVAL b N f t \054 0 0 1021 float4in float4out float4recv float4send - - - i p f 0 -1 0 0 _null_ _null_ _null_ )); -DESCR("single-precision floating point number, 4-byte storage"); -#define FLOAT4OID 700 -DATA(insert OID = 701 ( float8 PGNSP PGUID 8 FLOAT8PASSBYVAL b N t t \054 0 0 1022 float8in float8out float8recv float8send - - - d p f 0 -1 0 0 _null_ _null_ _null_ )); -DESCR("double-precision floating point number, 8-byte storage"); -#define FLOAT8OID 701 -DATA(insert OID = 702 ( abstime PGNSP PGUID 4 t b D f t \054 0 0 1023 abstimein abstimeout abstimerecv abstimesend - - - i p f 0 -1 0 0 _null_ _null_ _null_ )); -DESCR("absolute, limited-range date and time (Unix system time)"); -#define ABSTIMEOID 702 -DATA(insert OID = 703 ( reltime PGNSP PGUID 4 t b T f t \054 0 0 1024 reltimein reltimeout reltimerecv reltimesend - - - i p f 0 -1 0 0 _null_ _null_ _null_ )); -DESCR("relative, limited-range time interval (Unix delta time)"); -#define RELTIMEOID 703 -DATA(insert OID = 704 ( tinterval PGNSP PGUID 12 f b T f t \054 0 0 1025 tintervalin tintervalout tintervalrecv tintervalsend - - - i p f 0 -1 0 0 _null_ _null_ _null_ )); -DESCR("(abstime,abstime), time interval"); -#define TINTERVALOID 704 -DATA(insert OID = 705 ( unknown PGNSP PGUID -2 f p X f t \054 0 0 0 unknownin unknownout unknownrecv unknownsend - - - c p f 0 -1 0 0 _null_ _null_ _null_ )); -DESCR(""); -#define UNKNOWNOID 705 - -DATA(insert OID = 718 ( circle PGNSP PGUID 24 f b G f t \054 0 0 719 circle_in circle_out circle_recv circle_send - - - d p f 0 -1 0 0 _null_ _null_ _null_ )); -DESCR("geometric circle '(center,radius)'"); -#define CIRCLEOID 718 -DATA(insert OID = 719 ( _circle PGNSP PGUID -1 f b A f t \054 0 718 0 array_in array_out array_recv array_send - - array_typanalyze d x f 0 -1 0 0 _null_ _null_ _null_ )); -DATA(insert OID = 790 ( money PGNSP PGUID 8 FLOAT8PASSBYVAL b N f t \054 0 0 791 cash_in cash_out cash_recv cash_send - - - d p f 0 -1 0 0 _null_ _null_ _null_ )); -DESCR("monetary amounts, $d,ddd.cc"); -#define CASHOID 790 -DATA(insert OID = 791 ( _money PGNSP PGUID -1 f b A f t \054 0 790 0 array_in array_out array_recv array_send - - array_typanalyze d x f 0 -1 0 0 _null_ _null_ _null_ )); - -/* OIDS 800 - 899 */ -DATA(insert OID = 829 ( macaddr PGNSP PGUID 6 f b U f t \054 0 0 1040 macaddr_in macaddr_out macaddr_recv macaddr_send - - - i p f 0 -1 0 0 _null_ _null_ _null_ )); -DESCR("XX:XX:XX:XX:XX:XX, MAC address"); -#define MACADDROID 829 -DATA(insert OID = 869 ( inet PGNSP PGUID -1 f b I t t \054 0 0 1041 inet_in inet_out inet_recv inet_send - - - i m f 0 -1 0 0 _null_ _null_ _null_ )); -DESCR("IP address/netmask, host address, netmask optional"); -#define INETOID 869 -DATA(insert OID = 650 ( cidr PGNSP PGUID -1 f b I f t \054 0 0 651 cidr_in cidr_out cidr_recv cidr_send - - - i m f 0 -1 0 0 _null_ _null_ _null_ )); -DESCR("network IP address/netmask, network address"); -#define CIDROID 650 -DATA(insert OID = 774 ( macaddr8 PGNSP PGUID 8 f b U f t \054 0 0 775 macaddr8_in macaddr8_out macaddr8_recv macaddr8_send - - - i p f 0 -1 0 0 _null_ _null_ _null_ )); -DESCR("XX:XX:XX:XX:XX:XX:XX:XX, MAC address"); -#define MACADDR8OID 774 - -/* OIDS 900 - 999 */ - -/* OIDS 1000 - 1099 */ -DATA(insert OID = 1000 ( _bool PGNSP PGUID -1 f b A f t \054 0 16 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ )); -DATA(insert OID = 1001 ( _bytea PGNSP PGUID -1 f b A f t \054 0 17 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ )); -DATA(insert OID = 1002 ( _char PGNSP PGUID -1 f b A f t \054 0 18 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ )); -DATA(insert OID = 1003 ( _name PGNSP PGUID -1 f b A f t \054 0 19 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ )); -DATA(insert OID = 1005 ( _int2 PGNSP PGUID -1 f b A f t \054 0 21 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ )); -#define INT2ARRAYOID 1005 -DATA(insert OID = 1006 ( _int2vector PGNSP PGUID -1 f b A f t \054 0 22 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ )); -DATA(insert OID = 1007 ( _int4 PGNSP PGUID -1 f b A f t \054 0 23 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ )); -#define INT4ARRAYOID 1007 -DATA(insert OID = 1008 ( _regproc PGNSP PGUID -1 f b A f t \054 0 24 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ )); -DATA(insert OID = 1009 ( _text PGNSP PGUID -1 f b A f t \054 0 25 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 100 _null_ _null_ _null_ )); -#define TEXTARRAYOID 1009 -DATA(insert OID = 1028 ( _oid PGNSP PGUID -1 f b A f t \054 0 26 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ )); -#define OIDARRAYOID 1028 -DATA(insert OID = 1010 ( _tid PGNSP PGUID -1 f b A f t \054 0 27 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ )); -DATA(insert OID = 1011 ( _xid PGNSP PGUID -1 f b A f t \054 0 28 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ )); -DATA(insert OID = 1012 ( _cid PGNSP PGUID -1 f b A f t \054 0 29 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ )); -DATA(insert OID = 1013 ( _oidvector PGNSP PGUID -1 f b A f t \054 0 30 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ )); -DATA(insert OID = 1014 ( _bpchar PGNSP PGUID -1 f b A f t \054 0 1042 0 array_in array_out array_recv array_send bpchartypmodin bpchartypmodout array_typanalyze i x f 0 -1 0 100 _null_ _null_ _null_ )); -DATA(insert OID = 1015 ( _varchar PGNSP PGUID -1 f b A f t \054 0 1043 0 array_in array_out array_recv array_send varchartypmodin varchartypmodout array_typanalyze i x f 0 -1 0 100 _null_ _null_ _null_ )); -DATA(insert OID = 1016 ( _int8 PGNSP PGUID -1 f b A f t \054 0 20 0 array_in array_out array_recv array_send - - array_typanalyze d x f 0 -1 0 0 _null_ _null_ _null_ )); -DATA(insert OID = 1017 ( _point PGNSP PGUID -1 f b A f t \054 0 600 0 array_in array_out array_recv array_send - - array_typanalyze d x f 0 -1 0 0 _null_ _null_ _null_ )); -DATA(insert OID = 1018 ( _lseg PGNSP PGUID -1 f b A f t \054 0 601 0 array_in array_out array_recv array_send - - array_typanalyze d x f 0 -1 0 0 _null_ _null_ _null_ )); -DATA(insert OID = 1019 ( _path PGNSP PGUID -1 f b A f t \054 0 602 0 array_in array_out array_recv array_send - - array_typanalyze d x f 0 -1 0 0 _null_ _null_ _null_ )); -DATA(insert OID = 1020 ( _box PGNSP PGUID -1 f b A f t \073 0 603 0 array_in array_out array_recv array_send - - array_typanalyze d x f 0 -1 0 0 _null_ _null_ _null_ )); -DATA(insert OID = 1021 ( _float4 PGNSP PGUID -1 f b A f t \054 0 700 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ )); -#define FLOAT4ARRAYOID 1021 -DATA(insert OID = 1022 ( _float8 PGNSP PGUID -1 f b A f t \054 0 701 0 array_in array_out array_recv array_send - - array_typanalyze d x f 0 -1 0 0 _null_ _null_ _null_ )); -DATA(insert OID = 1023 ( _abstime PGNSP PGUID -1 f b A f t \054 0 702 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ )); -DATA(insert OID = 1024 ( _reltime PGNSP PGUID -1 f b A f t \054 0 703 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ )); -DATA(insert OID = 1025 ( _tinterval PGNSP PGUID -1 f b A f t \054 0 704 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ )); -DATA(insert OID = 1027 ( _polygon PGNSP PGUID -1 f b A f t \054 0 604 0 array_in array_out array_recv array_send - - array_typanalyze d x f 0 -1 0 0 _null_ _null_ _null_ )); -DATA(insert OID = 1033 ( aclitem PGNSP PGUID 12 f b U f t \054 0 0 1034 aclitemin aclitemout - - - - - i p f 0 -1 0 0 _null_ _null_ _null_ )); -DESCR("access control list"); -#define ACLITEMOID 1033 -DATA(insert OID = 1034 ( _aclitem PGNSP PGUID -1 f b A f t \054 0 1033 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ )); -DATA(insert OID = 1040 ( _macaddr PGNSP PGUID -1 f b A f t \054 0 829 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ )); -DATA(insert OID = 775 ( _macaddr8 PGNSP PGUID -1 f b A f t \054 0 774 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ )); -DATA(insert OID = 1041 ( _inet PGNSP PGUID -1 f b A f t \054 0 869 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ )); -DATA(insert OID = 651 ( _cidr PGNSP PGUID -1 f b A f t \054 0 650 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ )); -DATA(insert OID = 1263 ( _cstring PGNSP PGUID -1 f b A f t \054 0 2275 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ )); -#define CSTRINGARRAYOID 1263 - -DATA(insert OID = 1042 ( bpchar PGNSP PGUID -1 f b S f t \054 0 0 1014 bpcharin bpcharout bpcharrecv bpcharsend bpchartypmodin bpchartypmodout - i x f 0 -1 0 100 _null_ _null_ _null_ )); -DESCR("char(length), blank-padded string, fixed storage length"); -#define BPCHAROID 1042 -DATA(insert OID = 1043 ( varchar PGNSP PGUID -1 f b S f t \054 0 0 1015 varcharin varcharout varcharrecv varcharsend varchartypmodin varchartypmodout - i x f 0 -1 0 100 _null_ _null_ _null_ )); -DESCR("varchar(length), non-blank-padded string, variable storage length"); -#define VARCHAROID 1043 - -DATA(insert OID = 1082 ( date PGNSP PGUID 4 t b D f t \054 0 0 1182 date_in date_out date_recv date_send - - - i p f 0 -1 0 0 _null_ _null_ _null_ )); -DESCR("date"); -#define DATEOID 1082 -DATA(insert OID = 1083 ( time PGNSP PGUID 8 FLOAT8PASSBYVAL b D f t \054 0 0 1183 time_in time_out time_recv time_send timetypmodin timetypmodout - d p f 0 -1 0 0 _null_ _null_ _null_ )); -DESCR("time of day"); -#define TIMEOID 1083 - -/* OIDS 1100 - 1199 */ -DATA(insert OID = 1114 ( timestamp PGNSP PGUID 8 FLOAT8PASSBYVAL b D f t \054 0 0 1115 timestamp_in timestamp_out timestamp_recv timestamp_send timestamptypmodin timestamptypmodout - d p f 0 -1 0 0 _null_ _null_ _null_ )); -DESCR("date and time"); -#define TIMESTAMPOID 1114 -DATA(insert OID = 1115 ( _timestamp PGNSP PGUID -1 f b A f t \054 0 1114 0 array_in array_out array_recv array_send timestamptypmodin timestamptypmodout array_typanalyze d x f 0 -1 0 0 _null_ _null_ _null_ )); -DATA(insert OID = 1182 ( _date PGNSP PGUID -1 f b A f t \054 0 1082 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ )); -DATA(insert OID = 1183 ( _time PGNSP PGUID -1 f b A f t \054 0 1083 0 array_in array_out array_recv array_send timetypmodin timetypmodout array_typanalyze d x f 0 -1 0 0 _null_ _null_ _null_ )); -DATA(insert OID = 1184 ( timestamptz PGNSP PGUID 8 FLOAT8PASSBYVAL b D t t \054 0 0 1185 timestamptz_in timestamptz_out timestamptz_recv timestamptz_send timestamptztypmodin timestamptztypmodout - d p f 0 -1 0 0 _null_ _null_ _null_ )); -DESCR("date and time with time zone"); -#define TIMESTAMPTZOID 1184 -DATA(insert OID = 1185 ( _timestamptz PGNSP PGUID -1 f b A f t \054 0 1184 0 array_in array_out array_recv array_send timestamptztypmodin timestamptztypmodout array_typanalyze d x f 0 -1 0 0 _null_ _null_ _null_ )); -DATA(insert OID = 1186 ( interval PGNSP PGUID 16 f b T t t \054 0 0 1187 interval_in interval_out interval_recv interval_send intervaltypmodin intervaltypmodout - d p f 0 -1 0 0 _null_ _null_ _null_ )); -DESCR("@ , time interval"); -#define INTERVALOID 1186 -DATA(insert OID = 1187 ( _interval PGNSP PGUID -1 f b A f t \054 0 1186 0 array_in array_out array_recv array_send intervaltypmodin intervaltypmodout array_typanalyze d x f 0 -1 0 0 _null_ _null_ _null_ )); - -/* OIDS 1200 - 1299 */ -DATA(insert OID = 1231 ( _numeric PGNSP PGUID -1 f b A f t \054 0 1700 0 array_in array_out array_recv array_send numerictypmodin numerictypmodout array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ )); -DATA(insert OID = 1266 ( timetz PGNSP PGUID 12 f b D f t \054 0 0 1270 timetz_in timetz_out timetz_recv timetz_send timetztypmodin timetztypmodout - d p f 0 -1 0 0 _null_ _null_ _null_ )); -DESCR("time of day with time zone"); -#define TIMETZOID 1266 -DATA(insert OID = 1270 ( _timetz PGNSP PGUID -1 f b A f t \054 0 1266 0 array_in array_out array_recv array_send timetztypmodin timetztypmodout array_typanalyze d x f 0 -1 0 0 _null_ _null_ _null_ )); - -/* OIDS 1500 - 1599 */ -DATA(insert OID = 1560 ( bit PGNSP PGUID -1 f b V f t \054 0 0 1561 bit_in bit_out bit_recv bit_send bittypmodin bittypmodout - i x f 0 -1 0 0 _null_ _null_ _null_ )); -DESCR("fixed-length bit string"); -#define BITOID 1560 -DATA(insert OID = 1561 ( _bit PGNSP PGUID -1 f b A f t \054 0 1560 0 array_in array_out array_recv array_send bittypmodin bittypmodout array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ )); -DATA(insert OID = 1562 ( varbit PGNSP PGUID -1 f b V t t \054 0 0 1563 varbit_in varbit_out varbit_recv varbit_send varbittypmodin varbittypmodout - i x f 0 -1 0 0 _null_ _null_ _null_ )); -DESCR("variable-length bit string"); -#define VARBITOID 1562 -DATA(insert OID = 1563 ( _varbit PGNSP PGUID -1 f b A f t \054 0 1562 0 array_in array_out array_recv array_send varbittypmodin varbittypmodout array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ )); - -/* OIDS 1600 - 1699 */ - -/* OIDS 1700 - 1799 */ -DATA(insert OID = 1700 ( numeric PGNSP PGUID -1 f b N f t \054 0 0 1231 numeric_in numeric_out numeric_recv numeric_send numerictypmodin numerictypmodout - i m f 0 -1 0 0 _null_ _null_ _null_ )); -DESCR("numeric(precision, decimal), arbitrary precision number"); -#define NUMERICOID 1700 - -DATA(insert OID = 1790 ( refcursor PGNSP PGUID -1 f b U f t \054 0 0 2201 textin textout textrecv textsend - - - i x f 0 -1 0 0 _null_ _null_ _null_ )); -DESCR("reference to cursor (portal name)"); -#define REFCURSOROID 1790 - -/* OIDS 2200 - 2299 */ -DATA(insert OID = 2201 ( _refcursor PGNSP PGUID -1 f b A f t \054 0 1790 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ )); - -DATA(insert OID = 2202 ( regprocedure PGNSP PGUID 4 t b N f t \054 0 0 2207 regprocedurein regprocedureout regprocedurerecv regproceduresend - - - i p f 0 -1 0 0 _null_ _null_ _null_ )); -DESCR("registered procedure (with args)"); -#define REGPROCEDUREOID 2202 - -DATA(insert OID = 2203 ( regoper PGNSP PGUID 4 t b N f t \054 0 0 2208 regoperin regoperout regoperrecv regopersend - - - i p f 0 -1 0 0 _null_ _null_ _null_ )); -DESCR("registered operator"); -#define REGOPEROID 2203 - -DATA(insert OID = 2204 ( regoperator PGNSP PGUID 4 t b N f t \054 0 0 2209 regoperatorin regoperatorout regoperatorrecv regoperatorsend - - - i p f 0 -1 0 0 _null_ _null_ _null_ )); -DESCR("registered operator (with args)"); -#define REGOPERATOROID 2204 - -DATA(insert OID = 2205 ( regclass PGNSP PGUID 4 t b N f t \054 0 0 2210 regclassin regclassout regclassrecv regclasssend - - - i p f 0 -1 0 0 _null_ _null_ _null_ )); -DESCR("registered class"); -#define REGCLASSOID 2205 - -DATA(insert OID = 2206 ( regtype PGNSP PGUID 4 t b N f t \054 0 0 2211 regtypein regtypeout regtyperecv regtypesend - - - i p f 0 -1 0 0 _null_ _null_ _null_ )); -DESCR("registered type"); -#define REGTYPEOID 2206 - -DATA(insert OID = 4096 ( regrole PGNSP PGUID 4 t b N f t \054 0 0 4097 regrolein regroleout regrolerecv regrolesend - - - i p f 0 -1 0 0 _null_ _null_ _null_ )); -DESCR("registered role"); -#define REGROLEOID 4096 - -DATA(insert OID = 4089 ( regnamespace PGNSP PGUID 4 t b N f t \054 0 0 4090 regnamespacein regnamespaceout regnamespacerecv regnamespacesend - - - i p f 0 -1 0 0 _null_ _null_ _null_ )); -DESCR("registered namespace"); -#define REGNAMESPACEOID 4089 - -DATA(insert OID = 2207 ( _regprocedure PGNSP PGUID -1 f b A f t \054 0 2202 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ )); -DATA(insert OID = 2208 ( _regoper PGNSP PGUID -1 f b A f t \054 0 2203 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ )); -DATA(insert OID = 2209 ( _regoperator PGNSP PGUID -1 f b A f t \054 0 2204 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ )); -DATA(insert OID = 2210 ( _regclass PGNSP PGUID -1 f b A f t \054 0 2205 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ )); -DATA(insert OID = 2211 ( _regtype PGNSP PGUID -1 f b A f t \054 0 2206 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ )); -#define REGTYPEARRAYOID 2211 -DATA(insert OID = 4097 ( _regrole PGNSP PGUID -1 f b A f t \054 0 4096 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ )); -DATA(insert OID = 4090 ( _regnamespace PGNSP PGUID -1 f b A f t \054 0 4089 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ )); - -/* uuid */ -DATA(insert OID = 2950 ( uuid PGNSP PGUID 16 f b U f t \054 0 0 2951 uuid_in uuid_out uuid_recv uuid_send - - - c p f 0 -1 0 0 _null_ _null_ _null_ )); -DESCR("UUID datatype"); -#define UUIDOID 2950 -DATA(insert OID = 2951 ( _uuid PGNSP PGUID -1 f b A f t \054 0 2950 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ )); - -/* pg_lsn */ -DATA(insert OID = 3220 ( pg_lsn PGNSP PGUID 8 FLOAT8PASSBYVAL b U f t \054 0 0 3221 pg_lsn_in pg_lsn_out pg_lsn_recv pg_lsn_send - - - d p f 0 -1 0 0 _null_ _null_ _null_ )); -DESCR("PostgreSQL LSN datatype"); -#define LSNOID 3220 -DATA(insert OID = 3221 ( _pg_lsn PGNSP PGUID -1 f b A f t \054 0 3220 0 array_in array_out array_recv array_send - - array_typanalyze d x f 0 -1 0 0 _null_ _null_ _null_ )); - -/* text search */ -DATA(insert OID = 3614 ( tsvector PGNSP PGUID -1 f b U f t \054 0 0 3643 tsvectorin tsvectorout tsvectorrecv tsvectorsend - - ts_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ )); -DESCR("text representation for text search"); -#define TSVECTOROID 3614 -DATA(insert OID = 3642 ( gtsvector PGNSP PGUID -1 f b U f t \054 0 0 3644 gtsvectorin gtsvectorout - - - - - i p f 0 -1 0 0 _null_ _null_ _null_ )); -DESCR("GiST index internal text representation for text search"); -#define GTSVECTOROID 3642 -DATA(insert OID = 3615 ( tsquery PGNSP PGUID -1 f b U f t \054 0 0 3645 tsqueryin tsqueryout tsqueryrecv tsquerysend - - - i p f 0 -1 0 0 _null_ _null_ _null_ )); -DESCR("query representation for text search"); -#define TSQUERYOID 3615 -DATA(insert OID = 3734 ( regconfig PGNSP PGUID 4 t b N f t \054 0 0 3735 regconfigin regconfigout regconfigrecv regconfigsend - - - i p f 0 -1 0 0 _null_ _null_ _null_ )); -DESCR("registered text search configuration"); -#define REGCONFIGOID 3734 -DATA(insert OID = 3769 ( regdictionary PGNSP PGUID 4 t b N f t \054 0 0 3770 regdictionaryin regdictionaryout regdictionaryrecv regdictionarysend - - - i p f 0 -1 0 0 _null_ _null_ _null_ )); -DESCR("registered text search dictionary"); -#define REGDICTIONARYOID 3769 - -DATA(insert OID = 3643 ( _tsvector PGNSP PGUID -1 f b A f t \054 0 3614 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ )); -DATA(insert OID = 3644 ( _gtsvector PGNSP PGUID -1 f b A f t \054 0 3642 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ )); -DATA(insert OID = 3645 ( _tsquery PGNSP PGUID -1 f b A f t \054 0 3615 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ )); -DATA(insert OID = 3735 ( _regconfig PGNSP PGUID -1 f b A f t \054 0 3734 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ )); -DATA(insert OID = 3770 ( _regdictionary PGNSP PGUID -1 f b A f t \054 0 3769 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ )); - -/* jsonb */ -DATA(insert OID = 3802 ( jsonb PGNSP PGUID -1 f b U f t \054 0 0 3807 jsonb_in jsonb_out jsonb_recv jsonb_send - - - i x f 0 -1 0 0 _null_ _null_ _null_ )); -DESCR("Binary JSON"); -#define JSONBOID 3802 -DATA(insert OID = 3807 ( _jsonb PGNSP PGUID -1 f b A f t \054 0 3802 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ )); - -DATA(insert OID = 2970 ( txid_snapshot PGNSP PGUID -1 f b U f t \054 0 0 2949 txid_snapshot_in txid_snapshot_out txid_snapshot_recv txid_snapshot_send - - - d x f 0 -1 0 0 _null_ _null_ _null_ )); -DESCR("txid snapshot"); -DATA(insert OID = 2949 ( _txid_snapshot PGNSP PGUID -1 f b A f t \054 0 2970 0 array_in array_out array_recv array_send - - array_typanalyze d x f 0 -1 0 0 _null_ _null_ _null_ )); - -/* range types */ -DATA(insert OID = 3904 ( int4range PGNSP PGUID -1 f r R f t \054 0 0 3905 range_in range_out range_recv range_send - - range_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ )); -DESCR("range of integers"); -#define INT4RANGEOID 3904 -DATA(insert OID = 3905 ( _int4range PGNSP PGUID -1 f b A f t \054 0 3904 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ )); -DATA(insert OID = 3906 ( numrange PGNSP PGUID -1 f r R f t \054 0 0 3907 range_in range_out range_recv range_send - - range_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ )); -DESCR("range of numerics"); -DATA(insert OID = 3907 ( _numrange PGNSP PGUID -1 f b A f t \054 0 3906 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ )); -DATA(insert OID = 3908 ( tsrange PGNSP PGUID -1 f r R f t \054 0 0 3909 range_in range_out range_recv range_send - - range_typanalyze d x f 0 -1 0 0 _null_ _null_ _null_ )); -DESCR("range of timestamps without time zone"); -DATA(insert OID = 3909 ( _tsrange PGNSP PGUID -1 f b A f t \054 0 3908 0 array_in array_out array_recv array_send - - array_typanalyze d x f 0 -1 0 0 _null_ _null_ _null_ )); -DATA(insert OID = 3910 ( tstzrange PGNSP PGUID -1 f r R f t \054 0 0 3911 range_in range_out range_recv range_send - - range_typanalyze d x f 0 -1 0 0 _null_ _null_ _null_ )); -DESCR("range of timestamps with time zone"); -DATA(insert OID = 3911 ( _tstzrange PGNSP PGUID -1 f b A f t \054 0 3910 0 array_in array_out array_recv array_send - - array_typanalyze d x f 0 -1 0 0 _null_ _null_ _null_ )); -DATA(insert OID = 3912 ( daterange PGNSP PGUID -1 f r R f t \054 0 0 3913 range_in range_out range_recv range_send - - range_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ )); -DESCR("range of dates"); -DATA(insert OID = 3913 ( _daterange PGNSP PGUID -1 f b A f t \054 0 3912 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ )); -DATA(insert OID = 3926 ( int8range PGNSP PGUID -1 f r R f t \054 0 0 3927 range_in range_out range_recv range_send - - range_typanalyze d x f 0 -1 0 0 _null_ _null_ _null_ )); -DESCR("range of bigints"); -DATA(insert OID = 3927 ( _int8range PGNSP PGUID -1 f b A f t \054 0 3926 0 array_in array_out array_recv array_send - - array_typanalyze d x f 0 -1 0 0 _null_ _null_ _null_ )); - -/* - * pseudo-types - * - * types with typtype='p' represent various special cases in the type system. - * - * These cannot be used to define table columns, but are valid as function - * argument and result types (if supported by the function's implementation - * language). - * - * 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? - */ -DATA(insert OID = 2249 ( record PGNSP PGUID -1 f p P f t \054 0 0 2287 record_in record_out record_recv record_send - - - d x f 0 -1 0 0 _null_ _null_ _null_ )); -#define RECORDOID 2249 -DATA(insert OID = 2287 ( _record PGNSP PGUID -1 f p P f t \054 0 2249 0 array_in array_out array_recv array_send - - array_typanalyze d x f 0 -1 0 0 _null_ _null_ _null_ )); -#define RECORDARRAYOID 2287 -DATA(insert OID = 2275 ( cstring PGNSP PGUID -2 f p P f t \054 0 0 1263 cstring_in cstring_out cstring_recv cstring_send - - - c p f 0 -1 0 0 _null_ _null_ _null_ )); -#define CSTRINGOID 2275 -DATA(insert OID = 2276 ( any PGNSP PGUID 4 t p P f t \054 0 0 0 any_in any_out - - - - - i p f 0 -1 0 0 _null_ _null_ _null_ )); -#define ANYOID 2276 -DATA(insert OID = 2277 ( anyarray PGNSP PGUID -1 f p P f t \054 0 0 0 anyarray_in anyarray_out anyarray_recv anyarray_send - - - d x f 0 -1 0 0 _null_ _null_ _null_ )); -#define ANYARRAYOID 2277 -DATA(insert OID = 2278 ( void PGNSP PGUID 4 t p P f t \054 0 0 0 void_in void_out void_recv void_send - - - i p f 0 -1 0 0 _null_ _null_ _null_ )); -#define VOIDOID 2278 -DATA(insert OID = 2279 ( trigger PGNSP PGUID 4 t p P f t \054 0 0 0 trigger_in trigger_out - - - - - i p f 0 -1 0 0 _null_ _null_ _null_ )); -#define TRIGGEROID 2279 -DATA(insert OID = 3838 ( event_trigger PGNSP PGUID 4 t p P f t \054 0 0 0 event_trigger_in event_trigger_out - - - - - i p f 0 -1 0 0 _null_ _null_ _null_ )); -#define EVTTRIGGEROID 3838 -DATA(insert OID = 2280 ( language_handler PGNSP PGUID 4 t p P f t \054 0 0 0 language_handler_in language_handler_out - - - - - i p f 0 -1 0 0 _null_ _null_ _null_ )); -#define LANGUAGE_HANDLEROID 2280 -DATA(insert OID = 2281 ( internal PGNSP PGUID SIZEOF_POINTER t p P f t \054 0 0 0 internal_in internal_out - - - - - ALIGNOF_POINTER p f 0 -1 0 0 _null_ _null_ _null_ )); -#define INTERNALOID 2281 -DATA(insert OID = 2282 ( opaque PGNSP PGUID 4 t p P f t \054 0 0 0 opaque_in opaque_out - - - - - i p f 0 -1 0 0 _null_ _null_ _null_ )); -#define OPAQUEOID 2282 -DATA(insert OID = 2283 ( anyelement PGNSP PGUID 4 t p P f t \054 0 0 0 anyelement_in anyelement_out - - - - - i p f 0 -1 0 0 _null_ _null_ _null_ )); -#define ANYELEMENTOID 2283 -DATA(insert OID = 2776 ( anynonarray PGNSP PGUID 4 t p P f t \054 0 0 0 anynonarray_in anynonarray_out - - - - - i p f 0 -1 0 0 _null_ _null_ _null_ )); -#define ANYNONARRAYOID 2776 -DATA(insert OID = 3500 ( anyenum PGNSP PGUID 4 t p P f t \054 0 0 0 anyenum_in anyenum_out - - - - - i p f 0 -1 0 0 _null_ _null_ _null_ )); -#define ANYENUMOID 3500 -DATA(insert OID = 3115 ( fdw_handler PGNSP PGUID 4 t p P f t \054 0 0 0 fdw_handler_in fdw_handler_out - - - - - i p f 0 -1 0 0 _null_ _null_ _null_ )); -#define FDW_HANDLEROID 3115 -DATA(insert OID = 325 ( index_am_handler PGNSP PGUID 4 t p P f t \054 0 0 0 index_am_handler_in index_am_handler_out - - - - - i p f 0 -1 0 0 _null_ _null_ _null_ )); -#define INDEX_AM_HANDLEROID 325 -DATA(insert OID = 3310 ( tsm_handler PGNSP PGUID 4 t p P f t \054 0 0 0 tsm_handler_in tsm_handler_out - - - - - i p f 0 -1 0 0 _null_ _null_ _null_ )); -#define TSM_HANDLEROID 3310 -DATA(insert OID = 3831 ( anyrange PGNSP PGUID -1 f p P f t \054 0 0 0 anyrange_in anyrange_out - - - - - d x f 0 -1 0 0 _null_ _null_ _null_ )); -#define ANYRANGEOID 3831 - - -/* - * macros + * macros for values of poor-mans-enumerated-type columns */ #define TYPTYPE_BASE 'b' /* base type (ordinary scalar type) */ #define TYPTYPE_COMPOSITE 'c' /* composite (e.g., table's rowtype) */ @@ -749,4 +280,6 @@ DATA(insert OID = 3831 ( anyrange PGNSP PGUID -1 f p P f t \054 0 0 0 anyrange (typid) == ANYENUMOID || \ (typid) == ANYRANGEOID) +#endif /* EXPOSE_TO_CLIENT_CODE */ + #endif /* PG_TYPE_H */ diff --git a/src/include/catalog/pg_user_mapping.h b/src/include/catalog/pg_user_mapping.h index 686562a4d2..6efbed0a9d 100644 --- a/src/include/catalog/pg_user_mapping.h +++ b/src/include/catalog/pg_user_mapping.h @@ -9,8 +9,8 @@ * src/include/catalog/pg_user_mapping.h * * NOTES - * the genbki.pl script reads this file and generates .bki - * information from the DATA() statements. + * The Catalog.pm module reads this file and derives schema + * information. * *------------------------------------------------------------------------- */ @@ -18,15 +18,14 @@ #define PG_USER_MAPPING_H #include "catalog/genbki.h" +#include "catalog/pg_user_mapping_d.h" /* ---------------- * pg_user_mapping definition. cpp turns this into * typedef struct FormData_pg_user_mapping * ---------------- */ -#define UserMappingRelationId 1418 - -CATALOG(pg_user_mapping,1418) +CATALOG(pg_user_mapping,1418,UserMappingRelationId) { Oid umuser; /* Id of the user, InvalidOid if PUBLIC is * wanted */ @@ -44,14 +43,4 @@ CATALOG(pg_user_mapping,1418) */ typedef FormData_pg_user_mapping *Form_pg_user_mapping; -/* ---------------- - * compiler constants for pg_user_mapping - * ---------------- - */ - -#define Natts_pg_user_mapping 3 -#define Anum_pg_user_mapping_umuser 1 -#define Anum_pg_user_mapping_umserver 2 -#define Anum_pg_user_mapping_umoptions 3 - #endif /* PG_USER_MAPPING_H */ diff --git a/src/include/catalog/reformat_dat_file.pl b/src/include/catalog/reformat_dat_file.pl new file mode 100644 index 0000000000..bbceb16b65 --- /dev/null +++ b/src/include/catalog/reformat_dat_file.pl @@ -0,0 +1,311 @@ +#!/usr/bin/perl -w +#---------------------------------------------------------------------- +# +# reformat_dat_file.pl +# Perl script that reads in a catalog data file and writes out +# a functionally equivalent file in a standard format. +# +# Metadata entries (if any) come first, with normal attributes +# starting on the following line, in the same order they would be in +# the corresponding table. Comments and non-consecutive blank lines +# are preserved. +# +# Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group +# Portions Copyright (c) 1994, Regents of the University of California +# +# src/include/catalog/reformat_dat_file.pl +# +#---------------------------------------------------------------------- + +use Catalog; + +use strict; +use warnings; + +my @input_files; +my $output_path = ''; +my $full_tuples = 0; + +# Process command line switches. +while (@ARGV) +{ + my $arg = shift @ARGV; + if ($arg !~ /^-/) + { + push @input_files, $arg; + } + elsif ($arg =~ /^-o/) + { + $output_path = length($arg) > 2 ? substr($arg, 2) : shift @ARGV; + } + elsif ($arg eq '--full-tuples') + { + $full_tuples = 1; + } + else + { + usage(); + } +} + +# Sanity check arguments. +die "No input files.\n" + if !@input_files; + +# Make sure output_path ends in a slash. +if ($output_path ne '' && substr($output_path, -1) ne '/') +{ + $output_path .= '/'; +} + +# Metadata of a catalog entry +my @METADATA = ('oid', 'oid_symbol', 'descr'); + +# Read all the input files into internal data structures. +# We pass data file names as arguments and then look for matching +# headers to parse the schema from. +my %catalogs; +my %catalog_data; +my @catnames; +foreach my $datfile (@input_files) +{ + $datfile =~ /(.+)\.dat$/ + or die "Input files need to be data (.dat) files.\n"; + + my $header = "$1.h"; + die "There in no header file corresponding to $datfile" + if ! -e $header; + + my $catalog = Catalog::ParseHeader($header); + my $catname = $catalog->{catname}; + my $schema = $catalog->{columns}; + + push @catnames, $catname; + $catalogs{$catname} = $catalog; + + $catalog_data{$catname} = Catalog::ParseData($datfile, $schema, 1); +} + +######################################################################## +# At this point, we have read all the data. If you are modifying this +# script for bulk editing, this is a good place to build lookup tables, +# if you need to. In the following example, the "next if !ref $row" +# check below is a hack to filter out non-hash objects. This is because +# we build the lookup tables from data that we read using the +# "preserve_formatting" parameter. +# +##Index access method lookup. +#my %amnames; +#foreach my $row (@{ $catalog_data{pg_am} }) +#{ +# next if !ref $row; +# $amnames{$row->{oid}} = $row->{amname}; +#} +######################################################################## + +# Write the data. +foreach my $catname (@catnames) +{ + my $catalog = $catalogs{$catname}; + my @attnames; + my $schema = $catalog->{columns}; + my $prev_blank = 0; + + foreach my $column (@$schema) + { + my $attname = $column->{name}; + push @attnames, $attname; + } + + # Overwrite .dat files in place, since they are under version control. + my $datfile = "$output_path$catname.dat"; + open my $dat, '>', $datfile + or die "can't open $datfile: $!"; + + # Write the data. + foreach my $data (@{ $catalog_data{$catname} }) + { + + # Hash ref representing a data entry. + if (ref $data eq 'HASH') + { + my %values = %$data; + + ############################################################ + # At this point we have the full tuple in memory as a hash + # and can do any operations we want. As written, it only + # removes default values, but this script can be adapted to + # do one-off bulk-editing. + ############################################################ + + if (!$full_tuples) + { + strip_default_values(\%values, $schema, $catname); + } + + print $dat "{"; + + # Separate out metadata fields for readability. + my $metadata_str = format_hash(\%values, @METADATA); + if ($metadata_str) + { + print $dat $metadata_str; + + # User attributes start on next line. + print $dat ",\n "; + } + + my $data_str = format_hash(\%values, @attnames); + print $dat $data_str; + print $dat " },\n"; + $prev_blank = 0; + } + + # Strings -- handle accordingly or ignore. It was necessary to + # ignore bare commas during the initial data conversion. This + # should be a no-op now, but we may as well keep that behavior. + # Note: We don't update $prev_blank if we ignore a string. + + # Preserve non-consecutive blank lines. + elsif ($data =~ /^\s*$/) + { + next if $prev_blank; + print $dat "\n"; + $prev_blank = 1; + } + + # Preserve comments or brackets that are on their own line. + elsif ($data =~ /^\s*(\[|\]|#.*?)\s*$/) + { + print $dat "$1\n"; + $prev_blank = 0; + } + } + close $dat; +} + +# Leave values out if there is a matching default. +sub strip_default_values +{ + my ($row, $schema, $catname) = @_; + + foreach my $column (@$schema) + { + my $attname = $column->{name}; + die "strip_default_values: $catname.$attname undefined\n" + if ! defined $row->{$attname}; + + # Delete values that match defaults. + if (defined $column->{default} + and ($row->{$attname} eq $column->{default})) + { + delete $row->{$attname}; + } + + # Also delete pg_proc.pronargs, since that can be recomputed. + if ($catname eq 'pg_proc' && $attname eq 'pronargs' && + defined($row->{proargtypes})) + { + delete $row->{$attname}; + } + } +} + +# Format the individual elements of a Perl hash into a valid string +# representation. We do this ourselves, rather than use native Perl +# facilities, so we can keep control over the exact formatting of the +# data files. +sub format_hash +{ + my $data = shift; + my @orig_attnames = @_; + + # Copy attname to new array if it has a value, so we can determine + # the last populated element. We do this because we may have default + # values or empty metadata fields. + my @attnames; + foreach my $orig_attname (@orig_attnames) + { + push @attnames, $orig_attname + if defined $data->{$orig_attname}; + } + + # When calling this function, we ether have an open-bracket or a + # leading space already. + my $char_count = 1; + + my $threshold; + my $hash_str = ''; + my $element_count = 0; + + foreach my $attname (@attnames) + { + $element_count++; + + # To limit the line to 80 chars, we need to account for the + # trailing characters. + if ($element_count == $#attnames + 1) + { + # Last element, so allow space for ' },' + $threshold = 77; + } + else + { + # Just need space for trailing comma + $threshold = 79; + } + + if ($element_count > 1) + { + $hash_str .= ','; + $char_count++; + } + + my $value = $data->{$attname}; + + # Escape single quotes. + $value =~ s/'/\\'/g; + + # Include a leading space in the key-value pair, since this will + # always go after either a comma or an additional padding space on + # the next line. + my $element = " $attname => '$value'"; + my $element_length = length($element); + + # If adding the element to the current line would expand the line + # beyond 80 chars, put it on the next line. We don't do this for + # the first element, since that would create a blank line. + if ($element_count > 1 and $char_count + $element_length > $threshold) + { + + # Put on next line with an additional space preceding. There + # are now two spaces in front of the key-value pair, lining + # it up with the line above it. + $hash_str .= "\n $element"; + $char_count = $element_length + 1; + } + else + { + $hash_str .= $element; + $char_count += $element_length; + } + } + return $hash_str; +} + +sub usage +{ + die < *'\''\([0-9][0-9]*\)'\''.*$/\1/p' \ + -e 's/^CATALOG([^,]*, *\([0-9][0-9]*\).*BKI_ROWTYPE_OID(\([0-9][0-9]*\),.*$/\1,\2/p' \ -e 's/^CATALOG([^,]*, *\([0-9][0-9]*\).*$/\1/p' \ -e 's/^DECLARE_INDEX([^,]*, *\([0-9][0-9]*\).*$/\1/p' \ -e 's/^DECLARE_UNIQUE_INDEX([^,]*, *\([0-9][0-9]*\).*$/\1/p' \ diff --git a/src/interfaces/ecpg/ecpglib/pg_type.h b/src/interfaces/ecpg/ecpglib/pg_type.h index f75c887888..79a6cf8daa 100644 --- a/src/interfaces/ecpg/ecpglib/pg_type.h +++ b/src/interfaces/ecpg/ecpglib/pg_type.h @@ -1,9 +1,7 @@ /*------------------------------------------------------------------------- * * pg_type.h - * Hard-wired knowledge about some standard type OIDs. - * - * XXX keep this in sync with src/include/catalog/pg_type.h + * Interface to generated type OID symbols. * * Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California @@ -15,65 +13,6 @@ #ifndef PG_TYPE_H #define PG_TYPE_H -#define BOOLOID 16 -#define BYTEAOID 17 -#define CHAROID 18 -#define NAMEOID 19 -#define INT8OID 20 -#define INT2OID 21 -#define INT2VECTOROID 22 -#define INT4OID 23 -#define REGPROCOID 24 -#define TEXTOID 25 -#define OIDOID 26 -#define TIDOID 27 -#define XIDOID 28 -#define CIDOID 29 -#define OIDVECTOROID 30 -#define POINTOID 600 -#define LSEGOID 601 -#define PATHOID 602 -#define BOXOID 603 -#define POLYGONOID 604 -#define LINEOID 628 -#define FLOAT4OID 700 -#define FLOAT8OID 701 -#define ABSTIMEOID 702 -#define RELTIMEOID 703 -#define TINTERVALOID 704 -#define UNKNOWNOID 705 -#define CIRCLEOID 718 -#define CASHOID 790 -#define INETOID 869 -#define CIDROID 650 -#define BPCHAROID 1042 -#define VARCHAROID 1043 -#define DATEOID 1082 -#define TIMEOID 1083 -#define TIMESTAMPOID 1114 -#define TIMESTAMPTZOID 1184 -#define INTERVALOID 1186 -#define TIMETZOID 1266 -#define BITOID 1560 -#define VARBITOID 1562 -#define NUMERICOID 1700 -#define REFCURSOROID 1790 -#define REGPROCEDUREOID 2202 -#define REGOPEROID 2203 -#define REGOPERATOROID 2204 -#define REGCLASSOID 2205 -#define REGTYPEOID 2206 -#define REGROLEOID 4096 -#define REGNAMESPACEOID 4089 -#define REGTYPEARRAYOID 2211 -#define UUIDOID 2950 -#define LSNOID 3220 -#define TSVECTOROID 3614 -#define GTSVECTOROID 3642 -#define TSQUERYOID 3615 -#define REGCONFIGOID 3734 -#define REGDICTIONARYOID 3769 -#define JSONBOID 3802 -#define INT4RANGEOID 3904 +#include "catalog/pg_type_d.h" #endif /* PG_TYPE_H */ diff --git a/src/tools/msvc/Solution.pm b/src/tools/msvc/Solution.pm index 36e9fd70d3..b267c19438 100644 --- a/src/tools/msvc/Solution.pm +++ b/src/tools/msvc/Solution.pm @@ -264,15 +264,23 @@ s{PG_VERSION_STR "[^"]+"}{PG_VERSION_STR "PostgreSQL $self->{strver}$extraver, c "src/interfaces/ecpg/pgtypeslib/exports.txt", "LIBPGTYPES"); + chdir('src/backend/utils'); + my $pg_language_dat = '../../../src/include/catalog/pg_language.dat'; + my $pg_proc_dat = '../../../src/include/catalog/pg_proc.dat'; if (IsNewer( - 'src/backend/utils/fmgrtab.c', 'src/include/catalog/pg_proc.h')) + 'fmgrtab.c', $pg_language_dat) + || IsNewer( + 'fmgrtab.c', $pg_proc_dat) + || IsNewer( + 'fmgrtab.c', '../../../src/include/access/transam.h') + ) { print "Generating fmgrtab.c, fmgroids.h, fmgrprotos.h...\n"; - chdir('src/backend/utils'); system( -"perl -I ../catalog Gen_fmgrtab.pl -I../../../src/include/ ../../../src/include/catalog/pg_proc.h"); - chdir('../../..'); +"perl -I ../catalog Gen_fmgrtab.pl -I../../../src/include/ $pg_language_dat $pg_proc_dat"); } + chdir('../../..'); + if (IsNewer( 'src/include/utils/fmgroids.h', 'src/backend/utils/fmgroids.h')) @@ -456,23 +464,38 @@ EOF my $mf = Project::read_file('src/backend/catalog/Makefile'); $mf =~ s{\\\r?\n}{}g; - $mf =~ /^POSTGRES_BKI_SRCS\s*:?=[^,]+,(.*)\)$/gm - || croak "Could not find POSTGRES_BKI_SRCS in Makefile\n"; - my @allbki = split /\s+/, $1; - foreach my $bki (@allbki) + $mf =~ /^CATALOG_HEADERS\s*:?=(.*)$/gm + || croak "Could not find CATALOG_HEADERS in Makefile\n"; + my @bki_srcs = split /\s+/, $1; + push @bki_srcs, 'toasting.h'; + push @bki_srcs, 'indexing.h'; + $mf =~ /^POSTGRES_BKI_DATA\s*:?=[^,]+,(.*)\)$/gm + || croak "Could not find POSTGRES_BKI_DATA in Makefile\n"; + my @bki_data = split /\s+/, $1; + foreach my $bki (@bki_srcs, @bki_data) { next if $bki eq ""; if (IsNewer( 'src/backend/catalog/postgres.bki', "src/include/catalog/$bki")) { - print "Generating postgres.bki and schemapg.h...\n"; + print "Generating BKI files and symbol definition headers...\n"; chdir('src/backend/catalog'); - my $bki_srcs = join(' ../../../src/include/catalog/', @allbki); - system( -"perl genbki.pl -I../../../src/include/catalog --set-version=$self->{majorver} $bki_srcs" - ); + my $bki_srcs = join(' ../../../src/include/catalog/', @bki_srcs); + system("perl genbki.pl --set-version=$self->{majorver} $bki_srcs"); chdir('../../..'); + + # Copy generated headers to include directory. + opendir(my $dh, 'src/backend/catalog/') + || die "Can't opendir src/backend/catalog/ $!"; + my @def_headers = grep { /pg_\w+_d\.h$/ } readdir($dh); + closedir $dh; + foreach my $def_header (@def_headers) + { + copyFile( + "src/backend/catalog/$def_header", + "src/include/catalog/$def_header"); + } copyFile( 'src/backend/catalog/schemapg.h', 'src/include/catalog/schemapg.h'); diff --git a/src/tools/msvc/clean.bat b/src/tools/msvc/clean.bat index 0a88b52536..b0524964fd 100755 --- a/src/tools/msvc/clean.bat +++ b/src/tools/msvc/clean.bat @@ -48,6 +48,7 @@ if exist src\include\utils\fmgrprotos.h del /q src\include\utils\fmgrprotos.h if exist src\include\storage\lwlocknames.h del /q src\include\storage\lwlocknames.h if exist src\include\utils\probes.h del /q src\include\utils\probes.h if exist src\include\catalog\schemapg.h del /q src\include\catalog\schemapg.h +if exist src\include\catalog\pg_*_d.h del /q src\include\catalog\pg_*_d.h if exist doc\src\sgml\version.sgml del /q doc\src\sgml\version.sgml if %DIST%==1 if exist src\backend\utils\fmgroids.h del /q src\backend\utils\fmgroids.h @@ -67,6 +68,7 @@ if %DIST%==1 if exist src\backend\catalog\postgres.bki del /q src\backend\catalo if %DIST%==1 if exist src\backend\catalog\postgres.description del /q src\backend\catalog\postgres.description if %DIST%==1 if exist src\backend\catalog\postgres.shdescription del /q src\backend\catalog\postgres.shdescription if %DIST%==1 if exist src\backend\catalog\schemapg.h del /q src\backend\catalog\schemapg.h +if %DIST%==1 if exist src\backend\catalog\pg_*_d.h del /q src\backend\catalog\pg_*_d.h if %DIST%==1 if exist src\backend\parser\scan.c del /q src\backend\parser\scan.c if %DIST%==1 if exist src\backend\parser\gram.c del /q src\backend\parser\gram.c if %DIST%==1 if exist src\backend\bootstrap\bootscanner.c del /q src\backend\bootstrap\bootscanner.c diff --git a/src/tools/pgindent/pgindent b/src/tools/pgindent/pgindent index 37dfccab6b..06a38261c6 100755 --- a/src/tools/pgindent/pgindent +++ b/src/tools/pgindent/pgindent @@ -213,8 +213,8 @@ sub pre_indent s!(^#ifdef[ \t]+__cplusplus.*\nextern[ \t]+"C"[ \t]*\n)\{[ \t]*$!$1$extern_c_start!gm; $source =~ s!(^#ifdef[ \t]+__cplusplus.*\n)\}[ \t]*$!$1$extern_c_stop!gm; - # Protect backslashes in DATA() and wrapping in CATALOG() - $source =~ s!^((DATA|CATALOG)\(.*)$!/*$1*/!gm; + # Protect wrapping in CATALOG() + $source =~ s!^(CATALOG\(.*)$!/*$1*/!gm; return $source; } @@ -225,8 +225,8 @@ sub post_indent my $source = shift; my $source_filename = shift; - # Restore DATA/CATALOG lines - $source =~ s!^/\*((DATA|CATALOG)\(.*)\*/$!$1!gm; + # Restore CATALOG lines + $source =~ s!^/\*(CATALOG\(.*)\*/$!$1!gm; # Put back braces for extern "C" $source =~ s!^/\* Open extern "C" \*/$!{!gm;