Header And Logo

PostgreSQL
| The world's most advanced open source database.

builtins.h

Go to the documentation of this file.
00001 /*-------------------------------------------------------------------------
00002  *
00003  * builtins.h
00004  *    Declarations for operations on built-in types.
00005  *
00006  *
00007  * Portions Copyright (c) 1996-2013, PostgreSQL Global Development Group
00008  * Portions Copyright (c) 1994, Regents of the University of California
00009  *
00010  * src/include/utils/builtins.h
00011  *
00012  *-------------------------------------------------------------------------
00013  */
00014 #ifndef BUILTINS_H
00015 #define BUILTINS_H
00016 
00017 #include "fmgr.h"
00018 #include "nodes/parsenodes.h"
00019 
00020 /*
00021  *      Defined in adt/
00022  */
00023 
00024 /* acl.c */
00025 extern Datum has_any_column_privilege_name_name(PG_FUNCTION_ARGS);
00026 extern Datum has_any_column_privilege_name_id(PG_FUNCTION_ARGS);
00027 extern Datum has_any_column_privilege_id_name(PG_FUNCTION_ARGS);
00028 extern Datum has_any_column_privilege_id_id(PG_FUNCTION_ARGS);
00029 extern Datum has_any_column_privilege_name(PG_FUNCTION_ARGS);
00030 extern Datum has_any_column_privilege_id(PG_FUNCTION_ARGS);
00031 extern Datum has_column_privilege_name_name_name(PG_FUNCTION_ARGS);
00032 extern Datum has_column_privilege_name_name_attnum(PG_FUNCTION_ARGS);
00033 extern Datum has_column_privilege_name_id_name(PG_FUNCTION_ARGS);
00034 extern Datum has_column_privilege_name_id_attnum(PG_FUNCTION_ARGS);
00035 extern Datum has_column_privilege_id_name_name(PG_FUNCTION_ARGS);
00036 extern Datum has_column_privilege_id_name_attnum(PG_FUNCTION_ARGS);
00037 extern Datum has_column_privilege_id_id_name(PG_FUNCTION_ARGS);
00038 extern Datum has_column_privilege_id_id_attnum(PG_FUNCTION_ARGS);
00039 extern Datum has_column_privilege_name_name(PG_FUNCTION_ARGS);
00040 extern Datum has_column_privilege_name_attnum(PG_FUNCTION_ARGS);
00041 extern Datum has_column_privilege_id_name(PG_FUNCTION_ARGS);
00042 extern Datum has_column_privilege_id_attnum(PG_FUNCTION_ARGS);
00043 extern Datum has_table_privilege_name_name(PG_FUNCTION_ARGS);
00044 extern Datum has_table_privilege_name_id(PG_FUNCTION_ARGS);
00045 extern Datum has_table_privilege_id_name(PG_FUNCTION_ARGS);
00046 extern Datum has_table_privilege_id_id(PG_FUNCTION_ARGS);
00047 extern Datum has_table_privilege_name(PG_FUNCTION_ARGS);
00048 extern Datum has_table_privilege_id(PG_FUNCTION_ARGS);
00049 extern Datum has_sequence_privilege_name_name(PG_FUNCTION_ARGS);
00050 extern Datum has_sequence_privilege_name_id(PG_FUNCTION_ARGS);
00051 extern Datum has_sequence_privilege_id_name(PG_FUNCTION_ARGS);
00052 extern Datum has_sequence_privilege_id_id(PG_FUNCTION_ARGS);
00053 extern Datum has_sequence_privilege_name(PG_FUNCTION_ARGS);
00054 extern Datum has_sequence_privilege_id(PG_FUNCTION_ARGS);
00055 extern Datum has_database_privilege_name_name(PG_FUNCTION_ARGS);
00056 extern Datum has_database_privilege_name_id(PG_FUNCTION_ARGS);
00057 extern Datum has_database_privilege_id_name(PG_FUNCTION_ARGS);
00058 extern Datum has_database_privilege_id_id(PG_FUNCTION_ARGS);
00059 extern Datum has_database_privilege_name(PG_FUNCTION_ARGS);
00060 extern Datum has_database_privilege_id(PG_FUNCTION_ARGS);
00061 extern Datum has_foreign_data_wrapper_privilege_name_name(PG_FUNCTION_ARGS);
00062 extern Datum has_foreign_data_wrapper_privilege_name_id(PG_FUNCTION_ARGS);
00063 extern Datum has_foreign_data_wrapper_privilege_id_name(PG_FUNCTION_ARGS);
00064 extern Datum has_foreign_data_wrapper_privilege_id_id(PG_FUNCTION_ARGS);
00065 extern Datum has_foreign_data_wrapper_privilege_name(PG_FUNCTION_ARGS);
00066 extern Datum has_foreign_data_wrapper_privilege_id(PG_FUNCTION_ARGS);
00067 extern Datum has_function_privilege_name_name(PG_FUNCTION_ARGS);
00068 extern Datum has_function_privilege_name_id(PG_FUNCTION_ARGS);
00069 extern Datum has_function_privilege_id_name(PG_FUNCTION_ARGS);
00070 extern Datum has_function_privilege_id_id(PG_FUNCTION_ARGS);
00071 extern Datum has_function_privilege_name(PG_FUNCTION_ARGS);
00072 extern Datum has_function_privilege_id(PG_FUNCTION_ARGS);
00073 extern Datum has_language_privilege_name_name(PG_FUNCTION_ARGS);
00074 extern Datum has_language_privilege_name_id(PG_FUNCTION_ARGS);
00075 extern Datum has_language_privilege_id_name(PG_FUNCTION_ARGS);
00076 extern Datum has_language_privilege_id_id(PG_FUNCTION_ARGS);
00077 extern Datum has_language_privilege_name(PG_FUNCTION_ARGS);
00078 extern Datum has_language_privilege_id(PG_FUNCTION_ARGS);
00079 extern Datum has_schema_privilege_name_name(PG_FUNCTION_ARGS);
00080 extern Datum has_schema_privilege_name_id(PG_FUNCTION_ARGS);
00081 extern Datum has_schema_privilege_id_name(PG_FUNCTION_ARGS);
00082 extern Datum has_schema_privilege_id_id(PG_FUNCTION_ARGS);
00083 extern Datum has_schema_privilege_name(PG_FUNCTION_ARGS);
00084 extern Datum has_schema_privilege_id(PG_FUNCTION_ARGS);
00085 extern Datum has_server_privilege_name_name(PG_FUNCTION_ARGS);
00086 extern Datum has_server_privilege_name_id(PG_FUNCTION_ARGS);
00087 extern Datum has_server_privilege_id_name(PG_FUNCTION_ARGS);
00088 extern Datum has_server_privilege_id_id(PG_FUNCTION_ARGS);
00089 extern Datum has_server_privilege_name(PG_FUNCTION_ARGS);
00090 extern Datum has_server_privilege_id(PG_FUNCTION_ARGS);
00091 extern Datum has_tablespace_privilege_name_name(PG_FUNCTION_ARGS);
00092 extern Datum has_tablespace_privilege_name_id(PG_FUNCTION_ARGS);
00093 extern Datum has_tablespace_privilege_id_name(PG_FUNCTION_ARGS);
00094 extern Datum has_tablespace_privilege_id_id(PG_FUNCTION_ARGS);
00095 extern Datum has_tablespace_privilege_name(PG_FUNCTION_ARGS);
00096 extern Datum has_tablespace_privilege_id(PG_FUNCTION_ARGS);
00097 extern Datum has_type_privilege_name_name(PG_FUNCTION_ARGS);
00098 extern Datum has_type_privilege_name_id(PG_FUNCTION_ARGS);
00099 extern Datum has_type_privilege_id_name(PG_FUNCTION_ARGS);
00100 extern Datum has_type_privilege_id_id(PG_FUNCTION_ARGS);
00101 extern Datum has_type_privilege_name(PG_FUNCTION_ARGS);
00102 extern Datum has_type_privilege_id(PG_FUNCTION_ARGS);
00103 extern Datum pg_has_role_name_name(PG_FUNCTION_ARGS);
00104 extern Datum pg_has_role_name_id(PG_FUNCTION_ARGS);
00105 extern Datum pg_has_role_id_name(PG_FUNCTION_ARGS);
00106 extern Datum pg_has_role_id_id(PG_FUNCTION_ARGS);
00107 extern Datum pg_has_role_name(PG_FUNCTION_ARGS);
00108 extern Datum pg_has_role_id(PG_FUNCTION_ARGS);
00109 
00110 /* bool.c */
00111 extern Datum boolin(PG_FUNCTION_ARGS);
00112 extern Datum boolout(PG_FUNCTION_ARGS);
00113 extern Datum boolrecv(PG_FUNCTION_ARGS);
00114 extern Datum boolsend(PG_FUNCTION_ARGS);
00115 extern Datum booltext(PG_FUNCTION_ARGS);
00116 extern Datum booleq(PG_FUNCTION_ARGS);
00117 extern Datum boolne(PG_FUNCTION_ARGS);
00118 extern Datum boollt(PG_FUNCTION_ARGS);
00119 extern Datum boolgt(PG_FUNCTION_ARGS);
00120 extern Datum boolle(PG_FUNCTION_ARGS);
00121 extern Datum boolge(PG_FUNCTION_ARGS);
00122 extern Datum booland_statefunc(PG_FUNCTION_ARGS);
00123 extern Datum boolor_statefunc(PG_FUNCTION_ARGS);
00124 extern bool parse_bool(const char *value, bool *result);
00125 extern bool parse_bool_with_len(const char *value, size_t len, bool *result);
00126 
00127 /* char.c */
00128 extern Datum charin(PG_FUNCTION_ARGS);
00129 extern Datum charout(PG_FUNCTION_ARGS);
00130 extern Datum charrecv(PG_FUNCTION_ARGS);
00131 extern Datum charsend(PG_FUNCTION_ARGS);
00132 extern Datum chareq(PG_FUNCTION_ARGS);
00133 extern Datum charne(PG_FUNCTION_ARGS);
00134 extern Datum charlt(PG_FUNCTION_ARGS);
00135 extern Datum charle(PG_FUNCTION_ARGS);
00136 extern Datum chargt(PG_FUNCTION_ARGS);
00137 extern Datum charge(PG_FUNCTION_ARGS);
00138 extern Datum chartoi4(PG_FUNCTION_ARGS);
00139 extern Datum i4tochar(PG_FUNCTION_ARGS);
00140 extern Datum text_char(PG_FUNCTION_ARGS);
00141 extern Datum char_text(PG_FUNCTION_ARGS);
00142 
00143 /* domains.c */
00144 extern Datum domain_in(PG_FUNCTION_ARGS);
00145 extern Datum domain_recv(PG_FUNCTION_ARGS);
00146 extern void domain_check(Datum value, bool isnull, Oid domainType,
00147              void **extra, MemoryContext mcxt);
00148 extern int  errdatatype(Oid datatypeOid);
00149 extern int  errdomainconstraint(Oid datatypeOid, const char *conname);
00150 
00151 /* encode.c */
00152 extern Datum binary_encode(PG_FUNCTION_ARGS);
00153 extern Datum binary_decode(PG_FUNCTION_ARGS);
00154 extern unsigned hex_encode(const char *src, unsigned len, char *dst);
00155 extern unsigned hex_decode(const char *src, unsigned len, char *dst);
00156 
00157 /* enum.c */
00158 extern Datum enum_in(PG_FUNCTION_ARGS);
00159 extern Datum enum_out(PG_FUNCTION_ARGS);
00160 extern Datum enum_recv(PG_FUNCTION_ARGS);
00161 extern Datum enum_send(PG_FUNCTION_ARGS);
00162 extern Datum enum_lt(PG_FUNCTION_ARGS);
00163 extern Datum enum_le(PG_FUNCTION_ARGS);
00164 extern Datum enum_eq(PG_FUNCTION_ARGS);
00165 extern Datum enum_ne(PG_FUNCTION_ARGS);
00166 extern Datum enum_ge(PG_FUNCTION_ARGS);
00167 extern Datum enum_gt(PG_FUNCTION_ARGS);
00168 extern Datum enum_cmp(PG_FUNCTION_ARGS);
00169 extern Datum enum_smaller(PG_FUNCTION_ARGS);
00170 extern Datum enum_larger(PG_FUNCTION_ARGS);
00171 extern Datum enum_first(PG_FUNCTION_ARGS);
00172 extern Datum enum_last(PG_FUNCTION_ARGS);
00173 extern Datum enum_range_bounds(PG_FUNCTION_ARGS);
00174 extern Datum enum_range_all(PG_FUNCTION_ARGS);
00175 
00176 /* int.c */
00177 extern Datum int2in(PG_FUNCTION_ARGS);
00178 extern Datum int2out(PG_FUNCTION_ARGS);
00179 extern Datum int2recv(PG_FUNCTION_ARGS);
00180 extern Datum int2send(PG_FUNCTION_ARGS);
00181 extern Datum int2vectorin(PG_FUNCTION_ARGS);
00182 extern Datum int2vectorout(PG_FUNCTION_ARGS);
00183 extern Datum int2vectorrecv(PG_FUNCTION_ARGS);
00184 extern Datum int2vectorsend(PG_FUNCTION_ARGS);
00185 extern Datum int2vectoreq(PG_FUNCTION_ARGS);
00186 extern Datum int4in(PG_FUNCTION_ARGS);
00187 extern Datum int4out(PG_FUNCTION_ARGS);
00188 extern Datum int4recv(PG_FUNCTION_ARGS);
00189 extern Datum int4send(PG_FUNCTION_ARGS);
00190 extern Datum i2toi4(PG_FUNCTION_ARGS);
00191 extern Datum i4toi2(PG_FUNCTION_ARGS);
00192 extern Datum int4_bool(PG_FUNCTION_ARGS);
00193 extern Datum bool_int4(PG_FUNCTION_ARGS);
00194 extern Datum int4eq(PG_FUNCTION_ARGS);
00195 extern Datum int4ne(PG_FUNCTION_ARGS);
00196 extern Datum int4lt(PG_FUNCTION_ARGS);
00197 extern Datum int4le(PG_FUNCTION_ARGS);
00198 extern Datum int4gt(PG_FUNCTION_ARGS);
00199 extern Datum int4ge(PG_FUNCTION_ARGS);
00200 extern Datum int2eq(PG_FUNCTION_ARGS);
00201 extern Datum int2ne(PG_FUNCTION_ARGS);
00202 extern Datum int2lt(PG_FUNCTION_ARGS);
00203 extern Datum int2le(PG_FUNCTION_ARGS);
00204 extern Datum int2gt(PG_FUNCTION_ARGS);
00205 extern Datum int2ge(PG_FUNCTION_ARGS);
00206 extern Datum int24eq(PG_FUNCTION_ARGS);
00207 extern Datum int24ne(PG_FUNCTION_ARGS);
00208 extern Datum int24lt(PG_FUNCTION_ARGS);
00209 extern Datum int24le(PG_FUNCTION_ARGS);
00210 extern Datum int24gt(PG_FUNCTION_ARGS);
00211 extern Datum int24ge(PG_FUNCTION_ARGS);
00212 extern Datum int42eq(PG_FUNCTION_ARGS);
00213 extern Datum int42ne(PG_FUNCTION_ARGS);
00214 extern Datum int42lt(PG_FUNCTION_ARGS);
00215 extern Datum int42le(PG_FUNCTION_ARGS);
00216 extern Datum int42gt(PG_FUNCTION_ARGS);
00217 extern Datum int42ge(PG_FUNCTION_ARGS);
00218 extern Datum int4um(PG_FUNCTION_ARGS);
00219 extern Datum int4up(PG_FUNCTION_ARGS);
00220 extern Datum int4pl(PG_FUNCTION_ARGS);
00221 extern Datum int4mi(PG_FUNCTION_ARGS);
00222 extern Datum int4mul(PG_FUNCTION_ARGS);
00223 extern Datum int4div(PG_FUNCTION_ARGS);
00224 extern Datum int4abs(PG_FUNCTION_ARGS);
00225 extern Datum int4inc(PG_FUNCTION_ARGS);
00226 extern Datum int2um(PG_FUNCTION_ARGS);
00227 extern Datum int2up(PG_FUNCTION_ARGS);
00228 extern Datum int2pl(PG_FUNCTION_ARGS);
00229 extern Datum int2mi(PG_FUNCTION_ARGS);
00230 extern Datum int2mul(PG_FUNCTION_ARGS);
00231 extern Datum int2div(PG_FUNCTION_ARGS);
00232 extern Datum int2abs(PG_FUNCTION_ARGS);
00233 extern Datum int24pl(PG_FUNCTION_ARGS);
00234 extern Datum int24mi(PG_FUNCTION_ARGS);
00235 extern Datum int24mul(PG_FUNCTION_ARGS);
00236 extern Datum int24div(PG_FUNCTION_ARGS);
00237 extern Datum int42pl(PG_FUNCTION_ARGS);
00238 extern Datum int42mi(PG_FUNCTION_ARGS);
00239 extern Datum int42mul(PG_FUNCTION_ARGS);
00240 extern Datum int42div(PG_FUNCTION_ARGS);
00241 extern Datum int4mod(PG_FUNCTION_ARGS);
00242 extern Datum int2mod(PG_FUNCTION_ARGS);
00243 extern Datum int2larger(PG_FUNCTION_ARGS);
00244 extern Datum int2smaller(PG_FUNCTION_ARGS);
00245 extern Datum int4larger(PG_FUNCTION_ARGS);
00246 extern Datum int4smaller(PG_FUNCTION_ARGS);
00247 
00248 extern Datum int4and(PG_FUNCTION_ARGS);
00249 extern Datum int4or(PG_FUNCTION_ARGS);
00250 extern Datum int4xor(PG_FUNCTION_ARGS);
00251 extern Datum int4not(PG_FUNCTION_ARGS);
00252 extern Datum int4shl(PG_FUNCTION_ARGS);
00253 extern Datum int4shr(PG_FUNCTION_ARGS);
00254 extern Datum int2and(PG_FUNCTION_ARGS);
00255 extern Datum int2or(PG_FUNCTION_ARGS);
00256 extern Datum int2xor(PG_FUNCTION_ARGS);
00257 extern Datum int2not(PG_FUNCTION_ARGS);
00258 extern Datum int2shl(PG_FUNCTION_ARGS);
00259 extern Datum int2shr(PG_FUNCTION_ARGS);
00260 extern Datum generate_series_int4(PG_FUNCTION_ARGS);
00261 extern Datum generate_series_step_int4(PG_FUNCTION_ARGS);
00262 extern int2vector *buildint2vector(const int16 *int2s, int n);
00263 
00264 /* name.c */
00265 extern Datum namein(PG_FUNCTION_ARGS);
00266 extern Datum nameout(PG_FUNCTION_ARGS);
00267 extern Datum namerecv(PG_FUNCTION_ARGS);
00268 extern Datum namesend(PG_FUNCTION_ARGS);
00269 extern Datum nameeq(PG_FUNCTION_ARGS);
00270 extern Datum namene(PG_FUNCTION_ARGS);
00271 extern Datum namelt(PG_FUNCTION_ARGS);
00272 extern Datum namele(PG_FUNCTION_ARGS);
00273 extern Datum namegt(PG_FUNCTION_ARGS);
00274 extern Datum namege(PG_FUNCTION_ARGS);
00275 extern int  namecpy(Name n1, Name n2);
00276 extern int  namestrcpy(Name name, const char *str);
00277 extern int  namestrcmp(Name name, const char *str);
00278 extern Datum current_user(PG_FUNCTION_ARGS);
00279 extern Datum session_user(PG_FUNCTION_ARGS);
00280 extern Datum current_schema(PG_FUNCTION_ARGS);
00281 extern Datum current_schemas(PG_FUNCTION_ARGS);
00282 
00283 /* numutils.c */
00284 extern int32 pg_atoi(char *s, int size, int c);
00285 extern void pg_itoa(int16 i, char *a);
00286 extern void pg_ltoa(int32 l, char *a);
00287 extern void pg_lltoa(int64 ll, char *a);
00288 
00289 /*
00290  *      Per-opclass comparison functions for new btrees.  These are
00291  *      stored in pg_amproc; most are defined in access/nbtree/nbtcompare.c
00292  */
00293 extern Datum btboolcmp(PG_FUNCTION_ARGS);
00294 extern Datum btint2cmp(PG_FUNCTION_ARGS);
00295 extern Datum btint4cmp(PG_FUNCTION_ARGS);
00296 extern Datum btint8cmp(PG_FUNCTION_ARGS);
00297 extern Datum btfloat4cmp(PG_FUNCTION_ARGS);
00298 extern Datum btfloat8cmp(PG_FUNCTION_ARGS);
00299 extern Datum btint48cmp(PG_FUNCTION_ARGS);
00300 extern Datum btint84cmp(PG_FUNCTION_ARGS);
00301 extern Datum btint24cmp(PG_FUNCTION_ARGS);
00302 extern Datum btint42cmp(PG_FUNCTION_ARGS);
00303 extern Datum btint28cmp(PG_FUNCTION_ARGS);
00304 extern Datum btint82cmp(PG_FUNCTION_ARGS);
00305 extern Datum btfloat48cmp(PG_FUNCTION_ARGS);
00306 extern Datum btfloat84cmp(PG_FUNCTION_ARGS);
00307 extern Datum btoidcmp(PG_FUNCTION_ARGS);
00308 extern Datum btoidvectorcmp(PG_FUNCTION_ARGS);
00309 extern Datum btabstimecmp(PG_FUNCTION_ARGS);
00310 extern Datum btreltimecmp(PG_FUNCTION_ARGS);
00311 extern Datum bttintervalcmp(PG_FUNCTION_ARGS);
00312 extern Datum btcharcmp(PG_FUNCTION_ARGS);
00313 extern Datum btnamecmp(PG_FUNCTION_ARGS);
00314 extern Datum bttextcmp(PG_FUNCTION_ARGS);
00315 
00316 /*
00317  *      Per-opclass sort support functions for new btrees.  Like the
00318  *      functions above, these are stored in pg_amproc; most are defined in
00319  *      access/nbtree/nbtcompare.c
00320  */
00321 extern Datum btint2sortsupport(PG_FUNCTION_ARGS);
00322 extern Datum btint4sortsupport(PG_FUNCTION_ARGS);
00323 extern Datum btint8sortsupport(PG_FUNCTION_ARGS);
00324 extern Datum btfloat4sortsupport(PG_FUNCTION_ARGS);
00325 extern Datum btfloat8sortsupport(PG_FUNCTION_ARGS);
00326 extern Datum btoidsortsupport(PG_FUNCTION_ARGS);
00327 extern Datum btnamesortsupport(PG_FUNCTION_ARGS);
00328 
00329 /* float.c */
00330 extern PGDLLIMPORT int extra_float_digits;
00331 
00332 extern double get_float8_infinity(void);
00333 extern float get_float4_infinity(void);
00334 extern double get_float8_nan(void);
00335 extern float get_float4_nan(void);
00336 extern int  is_infinite(double val);
00337 
00338 extern Datum float4in(PG_FUNCTION_ARGS);
00339 extern Datum float4out(PG_FUNCTION_ARGS);
00340 extern Datum float4recv(PG_FUNCTION_ARGS);
00341 extern Datum float4send(PG_FUNCTION_ARGS);
00342 extern Datum float8in(PG_FUNCTION_ARGS);
00343 extern Datum float8out(PG_FUNCTION_ARGS);
00344 extern Datum float8recv(PG_FUNCTION_ARGS);
00345 extern Datum float8send(PG_FUNCTION_ARGS);
00346 extern Datum float4abs(PG_FUNCTION_ARGS);
00347 extern Datum float4um(PG_FUNCTION_ARGS);
00348 extern Datum float4up(PG_FUNCTION_ARGS);
00349 extern Datum float4larger(PG_FUNCTION_ARGS);
00350 extern Datum float4smaller(PG_FUNCTION_ARGS);
00351 extern Datum float8abs(PG_FUNCTION_ARGS);
00352 extern Datum float8um(PG_FUNCTION_ARGS);
00353 extern Datum float8up(PG_FUNCTION_ARGS);
00354 extern Datum float8larger(PG_FUNCTION_ARGS);
00355 extern Datum float8smaller(PG_FUNCTION_ARGS);
00356 extern Datum float4pl(PG_FUNCTION_ARGS);
00357 extern Datum float4mi(PG_FUNCTION_ARGS);
00358 extern Datum float4mul(PG_FUNCTION_ARGS);
00359 extern Datum float4div(PG_FUNCTION_ARGS);
00360 extern Datum float8pl(PG_FUNCTION_ARGS);
00361 extern Datum float8mi(PG_FUNCTION_ARGS);
00362 extern Datum float8mul(PG_FUNCTION_ARGS);
00363 extern Datum float8div(PG_FUNCTION_ARGS);
00364 extern Datum float4eq(PG_FUNCTION_ARGS);
00365 extern Datum float4ne(PG_FUNCTION_ARGS);
00366 extern Datum float4lt(PG_FUNCTION_ARGS);
00367 extern Datum float4le(PG_FUNCTION_ARGS);
00368 extern Datum float4gt(PG_FUNCTION_ARGS);
00369 extern Datum float4ge(PG_FUNCTION_ARGS);
00370 extern Datum float8eq(PG_FUNCTION_ARGS);
00371 extern Datum float8ne(PG_FUNCTION_ARGS);
00372 extern Datum float8lt(PG_FUNCTION_ARGS);
00373 extern Datum float8le(PG_FUNCTION_ARGS);
00374 extern Datum float8gt(PG_FUNCTION_ARGS);
00375 extern Datum float8ge(PG_FUNCTION_ARGS);
00376 extern Datum ftod(PG_FUNCTION_ARGS);
00377 extern Datum i4tod(PG_FUNCTION_ARGS);
00378 extern Datum i2tod(PG_FUNCTION_ARGS);
00379 extern Datum dtof(PG_FUNCTION_ARGS);
00380 extern Datum dtoi4(PG_FUNCTION_ARGS);
00381 extern Datum dtoi2(PG_FUNCTION_ARGS);
00382 extern Datum i4tof(PG_FUNCTION_ARGS);
00383 extern Datum i2tof(PG_FUNCTION_ARGS);
00384 extern Datum ftoi4(PG_FUNCTION_ARGS);
00385 extern Datum ftoi2(PG_FUNCTION_ARGS);
00386 extern Datum dround(PG_FUNCTION_ARGS);
00387 extern Datum dceil(PG_FUNCTION_ARGS);
00388 extern Datum dfloor(PG_FUNCTION_ARGS);
00389 extern Datum dsign(PG_FUNCTION_ARGS);
00390 extern Datum dtrunc(PG_FUNCTION_ARGS);
00391 extern Datum dsqrt(PG_FUNCTION_ARGS);
00392 extern Datum dcbrt(PG_FUNCTION_ARGS);
00393 extern Datum dpow(PG_FUNCTION_ARGS);
00394 extern Datum dexp(PG_FUNCTION_ARGS);
00395 extern Datum dlog1(PG_FUNCTION_ARGS);
00396 extern Datum dlog10(PG_FUNCTION_ARGS);
00397 extern Datum dacos(PG_FUNCTION_ARGS);
00398 extern Datum dasin(PG_FUNCTION_ARGS);
00399 extern Datum datan(PG_FUNCTION_ARGS);
00400 extern Datum datan2(PG_FUNCTION_ARGS);
00401 extern Datum dcos(PG_FUNCTION_ARGS);
00402 extern Datum dcot(PG_FUNCTION_ARGS);
00403 extern Datum dsin(PG_FUNCTION_ARGS);
00404 extern Datum dtan(PG_FUNCTION_ARGS);
00405 extern Datum degrees(PG_FUNCTION_ARGS);
00406 extern Datum dpi(PG_FUNCTION_ARGS);
00407 extern Datum radians(PG_FUNCTION_ARGS);
00408 extern Datum drandom(PG_FUNCTION_ARGS);
00409 extern Datum setseed(PG_FUNCTION_ARGS);
00410 extern Datum float8_accum(PG_FUNCTION_ARGS);
00411 extern Datum float4_accum(PG_FUNCTION_ARGS);
00412 extern Datum float8_avg(PG_FUNCTION_ARGS);
00413 extern Datum float8_var_pop(PG_FUNCTION_ARGS);
00414 extern Datum float8_var_samp(PG_FUNCTION_ARGS);
00415 extern Datum float8_stddev_pop(PG_FUNCTION_ARGS);
00416 extern Datum float8_stddev_samp(PG_FUNCTION_ARGS);
00417 extern Datum float8_regr_accum(PG_FUNCTION_ARGS);
00418 extern Datum float8_regr_sxx(PG_FUNCTION_ARGS);
00419 extern Datum float8_regr_syy(PG_FUNCTION_ARGS);
00420 extern Datum float8_regr_sxy(PG_FUNCTION_ARGS);
00421 extern Datum float8_regr_avgx(PG_FUNCTION_ARGS);
00422 extern Datum float8_regr_avgy(PG_FUNCTION_ARGS);
00423 extern Datum float8_covar_pop(PG_FUNCTION_ARGS);
00424 extern Datum float8_covar_samp(PG_FUNCTION_ARGS);
00425 extern Datum float8_corr(PG_FUNCTION_ARGS);
00426 extern Datum float8_regr_r2(PG_FUNCTION_ARGS);
00427 extern Datum float8_regr_slope(PG_FUNCTION_ARGS);
00428 extern Datum float8_regr_intercept(PG_FUNCTION_ARGS);
00429 extern Datum float48pl(PG_FUNCTION_ARGS);
00430 extern Datum float48mi(PG_FUNCTION_ARGS);
00431 extern Datum float48mul(PG_FUNCTION_ARGS);
00432 extern Datum float48div(PG_FUNCTION_ARGS);
00433 extern Datum float84pl(PG_FUNCTION_ARGS);
00434 extern Datum float84mi(PG_FUNCTION_ARGS);
00435 extern Datum float84mul(PG_FUNCTION_ARGS);
00436 extern Datum float84div(PG_FUNCTION_ARGS);
00437 extern Datum float48eq(PG_FUNCTION_ARGS);
00438 extern Datum float48ne(PG_FUNCTION_ARGS);
00439 extern Datum float48lt(PG_FUNCTION_ARGS);
00440 extern Datum float48le(PG_FUNCTION_ARGS);
00441 extern Datum float48gt(PG_FUNCTION_ARGS);
00442 extern Datum float48ge(PG_FUNCTION_ARGS);
00443 extern Datum float84eq(PG_FUNCTION_ARGS);
00444 extern Datum float84ne(PG_FUNCTION_ARGS);
00445 extern Datum float84lt(PG_FUNCTION_ARGS);
00446 extern Datum float84le(PG_FUNCTION_ARGS);
00447 extern Datum float84gt(PG_FUNCTION_ARGS);
00448 extern Datum float84ge(PG_FUNCTION_ARGS);
00449 extern Datum width_bucket_float8(PG_FUNCTION_ARGS);
00450 
00451 /* dbsize.c */
00452 extern Datum pg_tablespace_size_oid(PG_FUNCTION_ARGS);
00453 extern Datum pg_tablespace_size_name(PG_FUNCTION_ARGS);
00454 extern Datum pg_database_size_oid(PG_FUNCTION_ARGS);
00455 extern Datum pg_database_size_name(PG_FUNCTION_ARGS);
00456 extern Datum pg_relation_size(PG_FUNCTION_ARGS);
00457 extern Datum pg_total_relation_size(PG_FUNCTION_ARGS);
00458 extern Datum pg_size_pretty(PG_FUNCTION_ARGS);
00459 extern Datum pg_size_pretty_numeric(PG_FUNCTION_ARGS);
00460 extern Datum pg_table_size(PG_FUNCTION_ARGS);
00461 extern Datum pg_indexes_size(PG_FUNCTION_ARGS);
00462 extern Datum pg_relation_filenode(PG_FUNCTION_ARGS);
00463 extern Datum pg_relation_filepath(PG_FUNCTION_ARGS);
00464 extern Datum pg_relation_is_scannable(PG_FUNCTION_ARGS);
00465 
00466 /* genfile.c */
00467 extern bytea *read_binary_file(const char *filename,
00468                  int64 seek_offset, int64 bytes_to_read);
00469 extern Datum pg_stat_file(PG_FUNCTION_ARGS);
00470 extern Datum pg_read_file(PG_FUNCTION_ARGS);
00471 extern Datum pg_read_file_all(PG_FUNCTION_ARGS);
00472 extern Datum pg_read_binary_file(PG_FUNCTION_ARGS);
00473 extern Datum pg_read_binary_file_all(PG_FUNCTION_ARGS);
00474 extern Datum pg_ls_dir(PG_FUNCTION_ARGS);
00475 
00476 /* misc.c */
00477 extern Datum current_database(PG_FUNCTION_ARGS);
00478 extern Datum current_query(PG_FUNCTION_ARGS);
00479 extern Datum pg_cancel_backend(PG_FUNCTION_ARGS);
00480 extern Datum pg_terminate_backend(PG_FUNCTION_ARGS);
00481 extern Datum pg_reload_conf(PG_FUNCTION_ARGS);
00482 extern Datum pg_tablespace_databases(PG_FUNCTION_ARGS);
00483 extern Datum pg_tablespace_location(PG_FUNCTION_ARGS);
00484 extern Datum pg_rotate_logfile(PG_FUNCTION_ARGS);
00485 extern Datum pg_sleep(PG_FUNCTION_ARGS);
00486 extern Datum pg_get_keywords(PG_FUNCTION_ARGS);
00487 extern Datum pg_typeof(PG_FUNCTION_ARGS);
00488 extern Datum pg_collation_for(PG_FUNCTION_ARGS);
00489 extern Datum pg_view_is_insertable(PG_FUNCTION_ARGS);
00490 extern Datum pg_view_is_updatable(PG_FUNCTION_ARGS);
00491 
00492 /* oid.c */
00493 extern Datum oidin(PG_FUNCTION_ARGS);
00494 extern Datum oidout(PG_FUNCTION_ARGS);
00495 extern Datum oidrecv(PG_FUNCTION_ARGS);
00496 extern Datum oidsend(PG_FUNCTION_ARGS);
00497 extern Datum oideq(PG_FUNCTION_ARGS);
00498 extern Datum oidne(PG_FUNCTION_ARGS);
00499 extern Datum oidlt(PG_FUNCTION_ARGS);
00500 extern Datum oidle(PG_FUNCTION_ARGS);
00501 extern Datum oidge(PG_FUNCTION_ARGS);
00502 extern Datum oidgt(PG_FUNCTION_ARGS);
00503 extern Datum oidlarger(PG_FUNCTION_ARGS);
00504 extern Datum oidsmaller(PG_FUNCTION_ARGS);
00505 extern Datum oidvectorin(PG_FUNCTION_ARGS);
00506 extern Datum oidvectorout(PG_FUNCTION_ARGS);
00507 extern Datum oidvectorrecv(PG_FUNCTION_ARGS);
00508 extern Datum oidvectorsend(PG_FUNCTION_ARGS);
00509 extern Datum oidvectoreq(PG_FUNCTION_ARGS);
00510 extern Datum oidvectorne(PG_FUNCTION_ARGS);
00511 extern Datum oidvectorlt(PG_FUNCTION_ARGS);
00512 extern Datum oidvectorle(PG_FUNCTION_ARGS);
00513 extern Datum oidvectorge(PG_FUNCTION_ARGS);
00514 extern Datum oidvectorgt(PG_FUNCTION_ARGS);
00515 extern oidvector *buildoidvector(const Oid *oids, int n);
00516 extern Oid  oidparse(Node *node);
00517 
00518 /* pseudotypes.c */
00519 extern Datum cstring_in(PG_FUNCTION_ARGS);
00520 extern Datum cstring_out(PG_FUNCTION_ARGS);
00521 extern Datum cstring_recv(PG_FUNCTION_ARGS);
00522 extern Datum cstring_send(PG_FUNCTION_ARGS);
00523 extern Datum any_in(PG_FUNCTION_ARGS);
00524 extern Datum any_out(PG_FUNCTION_ARGS);
00525 extern Datum anyarray_in(PG_FUNCTION_ARGS);
00526 extern Datum anyarray_out(PG_FUNCTION_ARGS);
00527 extern Datum anyarray_recv(PG_FUNCTION_ARGS);
00528 extern Datum anyarray_send(PG_FUNCTION_ARGS);
00529 extern Datum anynonarray_in(PG_FUNCTION_ARGS);
00530 extern Datum anynonarray_out(PG_FUNCTION_ARGS);
00531 extern Datum anyenum_in(PG_FUNCTION_ARGS);
00532 extern Datum anyenum_out(PG_FUNCTION_ARGS);
00533 extern Datum anyrange_in(PG_FUNCTION_ARGS);
00534 extern Datum anyrange_out(PG_FUNCTION_ARGS);
00535 extern Datum void_in(PG_FUNCTION_ARGS);
00536 extern Datum void_out(PG_FUNCTION_ARGS);
00537 extern Datum void_recv(PG_FUNCTION_ARGS);
00538 extern Datum void_send(PG_FUNCTION_ARGS);
00539 extern Datum trigger_in(PG_FUNCTION_ARGS);
00540 extern Datum trigger_out(PG_FUNCTION_ARGS);
00541 extern Datum event_trigger_in(PG_FUNCTION_ARGS);
00542 extern Datum event_trigger_out(PG_FUNCTION_ARGS);
00543 extern Datum language_handler_in(PG_FUNCTION_ARGS);
00544 extern Datum language_handler_out(PG_FUNCTION_ARGS);
00545 extern Datum fdw_handler_in(PG_FUNCTION_ARGS);
00546 extern Datum fdw_handler_out(PG_FUNCTION_ARGS);
00547 extern Datum internal_in(PG_FUNCTION_ARGS);
00548 extern Datum internal_out(PG_FUNCTION_ARGS);
00549 extern Datum opaque_in(PG_FUNCTION_ARGS);
00550 extern Datum opaque_out(PG_FUNCTION_ARGS);
00551 extern Datum anyelement_in(PG_FUNCTION_ARGS);
00552 extern Datum anyelement_out(PG_FUNCTION_ARGS);
00553 extern Datum shell_in(PG_FUNCTION_ARGS);
00554 extern Datum shell_out(PG_FUNCTION_ARGS);
00555 extern Datum pg_node_tree_in(PG_FUNCTION_ARGS);
00556 extern Datum pg_node_tree_out(PG_FUNCTION_ARGS);
00557 extern Datum pg_node_tree_recv(PG_FUNCTION_ARGS);
00558 extern Datum pg_node_tree_send(PG_FUNCTION_ARGS);
00559 
00560 /* regexp.c */
00561 extern Datum nameregexeq(PG_FUNCTION_ARGS);
00562 extern Datum nameregexne(PG_FUNCTION_ARGS);
00563 extern Datum textregexeq(PG_FUNCTION_ARGS);
00564 extern Datum textregexne(PG_FUNCTION_ARGS);
00565 extern Datum nameicregexeq(PG_FUNCTION_ARGS);
00566 extern Datum nameicregexne(PG_FUNCTION_ARGS);
00567 extern Datum texticregexeq(PG_FUNCTION_ARGS);
00568 extern Datum texticregexne(PG_FUNCTION_ARGS);
00569 extern Datum textregexsubstr(PG_FUNCTION_ARGS);
00570 extern Datum textregexreplace_noopt(PG_FUNCTION_ARGS);
00571 extern Datum textregexreplace(PG_FUNCTION_ARGS);
00572 extern Datum similar_escape(PG_FUNCTION_ARGS);
00573 extern Datum regexp_matches(PG_FUNCTION_ARGS);
00574 extern Datum regexp_matches_no_flags(PG_FUNCTION_ARGS);
00575 extern Datum regexp_split_to_table(PG_FUNCTION_ARGS);
00576 extern Datum regexp_split_to_table_no_flags(PG_FUNCTION_ARGS);
00577 extern Datum regexp_split_to_array(PG_FUNCTION_ARGS);
00578 extern Datum regexp_split_to_array_no_flags(PG_FUNCTION_ARGS);
00579 extern char *regexp_fixed_prefix(text *text_re, bool case_insensitive,
00580                                  Oid collation, bool *exact);
00581 
00582 /* regproc.c */
00583 extern Datum regprocin(PG_FUNCTION_ARGS);
00584 extern Datum regprocout(PG_FUNCTION_ARGS);
00585 extern Datum regprocrecv(PG_FUNCTION_ARGS);
00586 extern Datum regprocsend(PG_FUNCTION_ARGS);
00587 extern Datum regprocedurein(PG_FUNCTION_ARGS);
00588 extern Datum regprocedureout(PG_FUNCTION_ARGS);
00589 extern Datum regprocedurerecv(PG_FUNCTION_ARGS);
00590 extern Datum regproceduresend(PG_FUNCTION_ARGS);
00591 extern Datum regoperin(PG_FUNCTION_ARGS);
00592 extern Datum regoperout(PG_FUNCTION_ARGS);
00593 extern Datum regoperrecv(PG_FUNCTION_ARGS);
00594 extern Datum regopersend(PG_FUNCTION_ARGS);
00595 extern Datum regoperatorin(PG_FUNCTION_ARGS);
00596 extern Datum regoperatorout(PG_FUNCTION_ARGS);
00597 extern Datum regoperatorrecv(PG_FUNCTION_ARGS);
00598 extern Datum regoperatorsend(PG_FUNCTION_ARGS);
00599 extern Datum regclassin(PG_FUNCTION_ARGS);
00600 extern Datum regclassout(PG_FUNCTION_ARGS);
00601 extern Datum regclassrecv(PG_FUNCTION_ARGS);
00602 extern Datum regclasssend(PG_FUNCTION_ARGS);
00603 extern Datum regtypein(PG_FUNCTION_ARGS);
00604 extern Datum regtypeout(PG_FUNCTION_ARGS);
00605 extern Datum regtyperecv(PG_FUNCTION_ARGS);
00606 extern Datum regtypesend(PG_FUNCTION_ARGS);
00607 extern Datum regconfigin(PG_FUNCTION_ARGS);
00608 extern Datum regconfigout(PG_FUNCTION_ARGS);
00609 extern Datum regconfigrecv(PG_FUNCTION_ARGS);
00610 extern Datum regconfigsend(PG_FUNCTION_ARGS);
00611 extern Datum regdictionaryin(PG_FUNCTION_ARGS);
00612 extern Datum regdictionaryout(PG_FUNCTION_ARGS);
00613 extern Datum regdictionaryrecv(PG_FUNCTION_ARGS);
00614 extern Datum regdictionarysend(PG_FUNCTION_ARGS);
00615 extern Datum text_regclass(PG_FUNCTION_ARGS);
00616 extern List *stringToQualifiedNameList(const char *string);
00617 extern char *format_procedure(Oid procedure_oid);
00618 extern char *format_procedure_qualified(Oid procedure_oid);
00619 extern char *format_operator(Oid operator_oid);
00620 extern char *format_operator_qualified(Oid operator_oid);
00621 
00622 /* rowtypes.c */
00623 extern Datum record_in(PG_FUNCTION_ARGS);
00624 extern Datum record_out(PG_FUNCTION_ARGS);
00625 extern Datum record_recv(PG_FUNCTION_ARGS);
00626 extern Datum record_send(PG_FUNCTION_ARGS);
00627 extern Datum record_eq(PG_FUNCTION_ARGS);
00628 extern Datum record_ne(PG_FUNCTION_ARGS);
00629 extern Datum record_lt(PG_FUNCTION_ARGS);
00630 extern Datum record_gt(PG_FUNCTION_ARGS);
00631 extern Datum record_le(PG_FUNCTION_ARGS);
00632 extern Datum record_ge(PG_FUNCTION_ARGS);
00633 extern Datum btrecordcmp(PG_FUNCTION_ARGS);
00634 
00635 /* ruleutils.c */
00636 extern bool quote_all_identifiers;
00637 extern Datum pg_get_ruledef(PG_FUNCTION_ARGS);
00638 extern Datum pg_get_ruledef_ext(PG_FUNCTION_ARGS);
00639 extern Datum pg_get_viewdef(PG_FUNCTION_ARGS);
00640 extern Datum pg_get_viewdef_ext(PG_FUNCTION_ARGS);
00641 extern Datum pg_get_viewdef_wrap(PG_FUNCTION_ARGS);
00642 extern Datum pg_get_viewdef_name(PG_FUNCTION_ARGS);
00643 extern Datum pg_get_viewdef_name_ext(PG_FUNCTION_ARGS);
00644 extern Datum pg_get_indexdef(PG_FUNCTION_ARGS);
00645 extern Datum pg_get_indexdef_ext(PG_FUNCTION_ARGS);
00646 extern char *pg_get_indexdef_string(Oid indexrelid);
00647 extern char *pg_get_indexdef_columns(Oid indexrelid, bool pretty);
00648 extern Datum pg_get_triggerdef(PG_FUNCTION_ARGS);
00649 extern Datum pg_get_triggerdef_ext(PG_FUNCTION_ARGS);
00650 extern Datum pg_get_constraintdef(PG_FUNCTION_ARGS);
00651 extern Datum pg_get_constraintdef_ext(PG_FUNCTION_ARGS);
00652 extern char *pg_get_constraintdef_string(Oid constraintId);
00653 extern Datum pg_get_expr(PG_FUNCTION_ARGS);
00654 extern Datum pg_get_expr_ext(PG_FUNCTION_ARGS);
00655 extern Datum pg_get_userbyid(PG_FUNCTION_ARGS);
00656 extern Datum pg_get_serial_sequence(PG_FUNCTION_ARGS);
00657 extern Datum pg_get_functiondef(PG_FUNCTION_ARGS);
00658 extern Datum pg_get_function_arguments(PG_FUNCTION_ARGS);
00659 extern Datum pg_get_function_identity_arguments(PG_FUNCTION_ARGS);
00660 extern Datum pg_get_function_result(PG_FUNCTION_ARGS);
00661 extern char *deparse_expression(Node *expr, List *dpcontext,
00662                    bool forceprefix, bool showimplicit);
00663 extern List *deparse_context_for(const char *aliasname, Oid relid);
00664 extern List *deparse_context_for_planstate(Node *planstate, List *ancestors,
00665                               List *rtable, List *rtable_names);
00666 extern List *select_rtable_names_for_explain(List *rtable,
00667                                 Bitmapset *rels_used);
00668 extern const char *quote_identifier(const char *ident);
00669 extern char *quote_qualified_identifier(const char *qualifier,
00670                            const char *ident);
00671 extern char *generate_collation_name(Oid collid);
00672 
00673 
00674 /* tid.c */
00675 extern Datum tidin(PG_FUNCTION_ARGS);
00676 extern Datum tidout(PG_FUNCTION_ARGS);
00677 extern Datum tidrecv(PG_FUNCTION_ARGS);
00678 extern Datum tidsend(PG_FUNCTION_ARGS);
00679 extern Datum tideq(PG_FUNCTION_ARGS);
00680 extern Datum tidne(PG_FUNCTION_ARGS);
00681 extern Datum tidlt(PG_FUNCTION_ARGS);
00682 extern Datum tidle(PG_FUNCTION_ARGS);
00683 extern Datum tidgt(PG_FUNCTION_ARGS);
00684 extern Datum tidge(PG_FUNCTION_ARGS);
00685 extern Datum bttidcmp(PG_FUNCTION_ARGS);
00686 extern Datum tidlarger(PG_FUNCTION_ARGS);
00687 extern Datum tidsmaller(PG_FUNCTION_ARGS);
00688 extern Datum currtid_byreloid(PG_FUNCTION_ARGS);
00689 extern Datum currtid_byrelname(PG_FUNCTION_ARGS);
00690 
00691 /* varchar.c */
00692 extern Datum bpcharin(PG_FUNCTION_ARGS);
00693 extern Datum bpcharout(PG_FUNCTION_ARGS);
00694 extern Datum bpcharrecv(PG_FUNCTION_ARGS);
00695 extern Datum bpcharsend(PG_FUNCTION_ARGS);
00696 extern Datum bpchartypmodin(PG_FUNCTION_ARGS);
00697 extern Datum bpchartypmodout(PG_FUNCTION_ARGS);
00698 extern Datum bpchar(PG_FUNCTION_ARGS);
00699 extern Datum char_bpchar(PG_FUNCTION_ARGS);
00700 extern Datum name_bpchar(PG_FUNCTION_ARGS);
00701 extern Datum bpchar_name(PG_FUNCTION_ARGS);
00702 extern Datum bpchareq(PG_FUNCTION_ARGS);
00703 extern Datum bpcharne(PG_FUNCTION_ARGS);
00704 extern Datum bpcharlt(PG_FUNCTION_ARGS);
00705 extern Datum bpcharle(PG_FUNCTION_ARGS);
00706 extern Datum bpchargt(PG_FUNCTION_ARGS);
00707 extern Datum bpcharge(PG_FUNCTION_ARGS);
00708 extern Datum bpcharcmp(PG_FUNCTION_ARGS);
00709 extern Datum bpchar_larger(PG_FUNCTION_ARGS);
00710 extern Datum bpchar_smaller(PG_FUNCTION_ARGS);
00711 extern Datum bpcharlen(PG_FUNCTION_ARGS);
00712 extern Datum bpcharoctetlen(PG_FUNCTION_ARGS);
00713 extern Datum hashbpchar(PG_FUNCTION_ARGS);
00714 extern Datum bpchar_pattern_lt(PG_FUNCTION_ARGS);
00715 extern Datum bpchar_pattern_le(PG_FUNCTION_ARGS);
00716 extern Datum bpchar_pattern_gt(PG_FUNCTION_ARGS);
00717 extern Datum bpchar_pattern_ge(PG_FUNCTION_ARGS);
00718 extern Datum btbpchar_pattern_cmp(PG_FUNCTION_ARGS);
00719 
00720 extern Datum varcharin(PG_FUNCTION_ARGS);
00721 extern Datum varcharout(PG_FUNCTION_ARGS);
00722 extern Datum varcharrecv(PG_FUNCTION_ARGS);
00723 extern Datum varcharsend(PG_FUNCTION_ARGS);
00724 extern Datum varchartypmodin(PG_FUNCTION_ARGS);
00725 extern Datum varchartypmodout(PG_FUNCTION_ARGS);
00726 extern Datum varchar_transform(PG_FUNCTION_ARGS);
00727 extern Datum varchar(PG_FUNCTION_ARGS);
00728 
00729 /* varlena.c */
00730 extern text *cstring_to_text(const char *s);
00731 extern text *cstring_to_text_with_len(const char *s, int len);
00732 extern char *text_to_cstring(const text *t);
00733 extern void text_to_cstring_buffer(const text *src, char *dst, size_t dst_len);
00734 
00735 #define CStringGetTextDatum(s) PointerGetDatum(cstring_to_text(s))
00736 #define TextDatumGetCString(d) text_to_cstring((text *) DatumGetPointer(d))
00737 
00738 extern Datum textin(PG_FUNCTION_ARGS);
00739 extern Datum textout(PG_FUNCTION_ARGS);
00740 extern Datum textrecv(PG_FUNCTION_ARGS);
00741 extern Datum textsend(PG_FUNCTION_ARGS);
00742 extern Datum textcat(PG_FUNCTION_ARGS);
00743 extern Datum texteq(PG_FUNCTION_ARGS);
00744 extern Datum textne(PG_FUNCTION_ARGS);
00745 extern Datum text_lt(PG_FUNCTION_ARGS);
00746 extern Datum text_le(PG_FUNCTION_ARGS);
00747 extern Datum text_gt(PG_FUNCTION_ARGS);
00748 extern Datum text_ge(PG_FUNCTION_ARGS);
00749 extern Datum text_larger(PG_FUNCTION_ARGS);
00750 extern Datum text_smaller(PG_FUNCTION_ARGS);
00751 extern Datum text_pattern_lt(PG_FUNCTION_ARGS);
00752 extern Datum text_pattern_le(PG_FUNCTION_ARGS);
00753 extern Datum text_pattern_gt(PG_FUNCTION_ARGS);
00754 extern Datum text_pattern_ge(PG_FUNCTION_ARGS);
00755 extern Datum bttext_pattern_cmp(PG_FUNCTION_ARGS);
00756 extern Datum textlen(PG_FUNCTION_ARGS);
00757 extern Datum textoctetlen(PG_FUNCTION_ARGS);
00758 extern Datum textpos(PG_FUNCTION_ARGS);
00759 extern Datum text_substr(PG_FUNCTION_ARGS);
00760 extern Datum text_substr_no_len(PG_FUNCTION_ARGS);
00761 extern Datum textoverlay(PG_FUNCTION_ARGS);
00762 extern Datum textoverlay_no_len(PG_FUNCTION_ARGS);
00763 extern Datum name_text(PG_FUNCTION_ARGS);
00764 extern Datum text_name(PG_FUNCTION_ARGS);
00765 extern int  varstr_cmp(char *arg1, int len1, char *arg2, int len2, Oid collid);
00766 extern List *textToQualifiedNameList(text *textval);
00767 extern bool SplitIdentifierString(char *rawstring, char separator,
00768                       List **namelist);
00769 extern bool SplitDirectoriesString(char *rawstring, char separator,
00770                        List **namelist);
00771 extern Datum replace_text(PG_FUNCTION_ARGS);
00772 extern text *replace_text_regexp(text *src_text, void *regexp,
00773                     text *replace_text, bool glob);
00774 extern Datum split_text(PG_FUNCTION_ARGS);
00775 extern Datum text_to_array(PG_FUNCTION_ARGS);
00776 extern Datum array_to_text(PG_FUNCTION_ARGS);
00777 extern Datum text_to_array_null(PG_FUNCTION_ARGS);
00778 extern Datum array_to_text_null(PG_FUNCTION_ARGS);
00779 extern Datum to_hex32(PG_FUNCTION_ARGS);
00780 extern Datum to_hex64(PG_FUNCTION_ARGS);
00781 extern Datum md5_text(PG_FUNCTION_ARGS);
00782 extern Datum md5_bytea(PG_FUNCTION_ARGS);
00783 
00784 extern Datum unknownin(PG_FUNCTION_ARGS);
00785 extern Datum unknownout(PG_FUNCTION_ARGS);
00786 extern Datum unknownrecv(PG_FUNCTION_ARGS);
00787 extern Datum unknownsend(PG_FUNCTION_ARGS);
00788 
00789 extern Datum pg_column_size(PG_FUNCTION_ARGS);
00790 
00791 extern Datum bytea_string_agg_transfn(PG_FUNCTION_ARGS);
00792 extern Datum bytea_string_agg_finalfn(PG_FUNCTION_ARGS);
00793 extern Datum string_agg_transfn(PG_FUNCTION_ARGS);
00794 extern Datum string_agg_finalfn(PG_FUNCTION_ARGS);
00795 
00796 extern Datum text_concat(PG_FUNCTION_ARGS);
00797 extern Datum text_concat_ws(PG_FUNCTION_ARGS);
00798 extern Datum text_left(PG_FUNCTION_ARGS);
00799 extern Datum text_right(PG_FUNCTION_ARGS);
00800 extern Datum text_reverse(PG_FUNCTION_ARGS);
00801 extern Datum text_format(PG_FUNCTION_ARGS);
00802 extern Datum text_format_nv(PG_FUNCTION_ARGS);
00803 
00804 /* version.c */
00805 extern Datum pgsql_version(PG_FUNCTION_ARGS);
00806 
00807 /* xid.c */
00808 extern Datum xidin(PG_FUNCTION_ARGS);
00809 extern Datum xidout(PG_FUNCTION_ARGS);
00810 extern Datum xidrecv(PG_FUNCTION_ARGS);
00811 extern Datum xidsend(PG_FUNCTION_ARGS);
00812 extern Datum xideq(PG_FUNCTION_ARGS);
00813 extern Datum xid_age(PG_FUNCTION_ARGS);
00814 extern int  xidComparator(const void *arg1, const void *arg2);
00815 extern Datum cidin(PG_FUNCTION_ARGS);
00816 extern Datum cidout(PG_FUNCTION_ARGS);
00817 extern Datum cidrecv(PG_FUNCTION_ARGS);
00818 extern Datum cidsend(PG_FUNCTION_ARGS);
00819 extern Datum cideq(PG_FUNCTION_ARGS);
00820 
00821 /* like.c */
00822 extern Datum namelike(PG_FUNCTION_ARGS);
00823 extern Datum namenlike(PG_FUNCTION_ARGS);
00824 extern Datum nameiclike(PG_FUNCTION_ARGS);
00825 extern Datum nameicnlike(PG_FUNCTION_ARGS);
00826 extern Datum textlike(PG_FUNCTION_ARGS);
00827 extern Datum textnlike(PG_FUNCTION_ARGS);
00828 extern Datum texticlike(PG_FUNCTION_ARGS);
00829 extern Datum texticnlike(PG_FUNCTION_ARGS);
00830 extern Datum bytealike(PG_FUNCTION_ARGS);
00831 extern Datum byteanlike(PG_FUNCTION_ARGS);
00832 extern Datum like_escape(PG_FUNCTION_ARGS);
00833 extern Datum like_escape_bytea(PG_FUNCTION_ARGS);
00834 
00835 /* oracle_compat.c */
00836 extern Datum lower(PG_FUNCTION_ARGS);
00837 extern Datum upper(PG_FUNCTION_ARGS);
00838 extern Datum initcap(PG_FUNCTION_ARGS);
00839 extern Datum lpad(PG_FUNCTION_ARGS);
00840 extern Datum rpad(PG_FUNCTION_ARGS);
00841 extern Datum btrim(PG_FUNCTION_ARGS);
00842 extern Datum btrim1(PG_FUNCTION_ARGS);
00843 extern Datum byteatrim(PG_FUNCTION_ARGS);
00844 extern Datum ltrim(PG_FUNCTION_ARGS);
00845 extern Datum ltrim1(PG_FUNCTION_ARGS);
00846 extern Datum rtrim(PG_FUNCTION_ARGS);
00847 extern Datum rtrim1(PG_FUNCTION_ARGS);
00848 extern Datum translate(PG_FUNCTION_ARGS);
00849 extern Datum chr (PG_FUNCTION_ARGS);
00850 extern Datum repeat(PG_FUNCTION_ARGS);
00851 extern Datum ascii(PG_FUNCTION_ARGS);
00852 
00853 /* inet_cidr_ntop.c */
00854 extern char *inet_cidr_ntop(int af, const void *src, int bits,
00855                char *dst, size_t size);
00856 
00857 /* inet_net_pton.c */
00858 extern int inet_net_pton(int af, const char *src,
00859               void *dst, size_t size);
00860 
00861 /* network.c */
00862 extern Datum inet_in(PG_FUNCTION_ARGS);
00863 extern Datum inet_out(PG_FUNCTION_ARGS);
00864 extern Datum inet_recv(PG_FUNCTION_ARGS);
00865 extern Datum inet_send(PG_FUNCTION_ARGS);
00866 extern Datum cidr_in(PG_FUNCTION_ARGS);
00867 extern Datum cidr_out(PG_FUNCTION_ARGS);
00868 extern Datum cidr_recv(PG_FUNCTION_ARGS);
00869 extern Datum cidr_send(PG_FUNCTION_ARGS);
00870 extern Datum network_cmp(PG_FUNCTION_ARGS);
00871 extern Datum network_lt(PG_FUNCTION_ARGS);
00872 extern Datum network_le(PG_FUNCTION_ARGS);
00873 extern Datum network_eq(PG_FUNCTION_ARGS);
00874 extern Datum network_ge(PG_FUNCTION_ARGS);
00875 extern Datum network_gt(PG_FUNCTION_ARGS);
00876 extern Datum network_ne(PG_FUNCTION_ARGS);
00877 extern Datum hashinet(PG_FUNCTION_ARGS);
00878 extern Datum network_sub(PG_FUNCTION_ARGS);
00879 extern Datum network_subeq(PG_FUNCTION_ARGS);
00880 extern Datum network_sup(PG_FUNCTION_ARGS);
00881 extern Datum network_supeq(PG_FUNCTION_ARGS);
00882 extern Datum network_network(PG_FUNCTION_ARGS);
00883 extern Datum network_netmask(PG_FUNCTION_ARGS);
00884 extern Datum network_hostmask(PG_FUNCTION_ARGS);
00885 extern Datum network_masklen(PG_FUNCTION_ARGS);
00886 extern Datum network_family(PG_FUNCTION_ARGS);
00887 extern Datum network_broadcast(PG_FUNCTION_ARGS);
00888 extern Datum network_host(PG_FUNCTION_ARGS);
00889 extern Datum network_show(PG_FUNCTION_ARGS);
00890 extern Datum inet_abbrev(PG_FUNCTION_ARGS);
00891 extern Datum cidr_abbrev(PG_FUNCTION_ARGS);
00892 extern double convert_network_to_scalar(Datum value, Oid typid);
00893 extern Datum inet_to_cidr(PG_FUNCTION_ARGS);
00894 extern Datum inet_set_masklen(PG_FUNCTION_ARGS);
00895 extern Datum cidr_set_masklen(PG_FUNCTION_ARGS);
00896 extern Datum network_scan_first(Datum in);
00897 extern Datum network_scan_last(Datum in);
00898 extern Datum inet_client_addr(PG_FUNCTION_ARGS);
00899 extern Datum inet_client_port(PG_FUNCTION_ARGS);
00900 extern Datum inet_server_addr(PG_FUNCTION_ARGS);
00901 extern Datum inet_server_port(PG_FUNCTION_ARGS);
00902 extern Datum inetnot(PG_FUNCTION_ARGS);
00903 extern Datum inetand(PG_FUNCTION_ARGS);
00904 extern Datum inetor(PG_FUNCTION_ARGS);
00905 extern Datum inetpl(PG_FUNCTION_ARGS);
00906 extern Datum inetmi_int8(PG_FUNCTION_ARGS);
00907 extern Datum inetmi(PG_FUNCTION_ARGS);
00908 extern void clean_ipv6_addr(int addr_family, char *addr);
00909 
00910 /* mac.c */
00911 extern Datum macaddr_in(PG_FUNCTION_ARGS);
00912 extern Datum macaddr_out(PG_FUNCTION_ARGS);
00913 extern Datum macaddr_recv(PG_FUNCTION_ARGS);
00914 extern Datum macaddr_send(PG_FUNCTION_ARGS);
00915 extern Datum macaddr_cmp(PG_FUNCTION_ARGS);
00916 extern Datum macaddr_lt(PG_FUNCTION_ARGS);
00917 extern Datum macaddr_le(PG_FUNCTION_ARGS);
00918 extern Datum macaddr_eq(PG_FUNCTION_ARGS);
00919 extern Datum macaddr_ge(PG_FUNCTION_ARGS);
00920 extern Datum macaddr_gt(PG_FUNCTION_ARGS);
00921 extern Datum macaddr_ne(PG_FUNCTION_ARGS);
00922 extern Datum macaddr_not(PG_FUNCTION_ARGS);
00923 extern Datum macaddr_and(PG_FUNCTION_ARGS);
00924 extern Datum macaddr_or(PG_FUNCTION_ARGS);
00925 extern Datum macaddr_trunc(PG_FUNCTION_ARGS);
00926 extern Datum hashmacaddr(PG_FUNCTION_ARGS);
00927 
00928 /* numeric.c */
00929 extern Datum numeric_in(PG_FUNCTION_ARGS);
00930 extern Datum numeric_out(PG_FUNCTION_ARGS);
00931 extern Datum numeric_recv(PG_FUNCTION_ARGS);
00932 extern Datum numeric_send(PG_FUNCTION_ARGS);
00933 extern Datum numerictypmodin(PG_FUNCTION_ARGS);
00934 extern Datum numerictypmodout(PG_FUNCTION_ARGS);
00935 extern Datum numeric_transform(PG_FUNCTION_ARGS);
00936 extern Datum numeric (PG_FUNCTION_ARGS);
00937 extern Datum numeric_abs(PG_FUNCTION_ARGS);
00938 extern Datum numeric_uminus(PG_FUNCTION_ARGS);
00939 extern Datum numeric_uplus(PG_FUNCTION_ARGS);
00940 extern Datum numeric_sign(PG_FUNCTION_ARGS);
00941 extern Datum numeric_round(PG_FUNCTION_ARGS);
00942 extern Datum numeric_trunc(PG_FUNCTION_ARGS);
00943 extern Datum numeric_ceil(PG_FUNCTION_ARGS);
00944 extern Datum numeric_floor(PG_FUNCTION_ARGS);
00945 extern Datum numeric_cmp(PG_FUNCTION_ARGS);
00946 extern Datum numeric_eq(PG_FUNCTION_ARGS);
00947 extern Datum numeric_ne(PG_FUNCTION_ARGS);
00948 extern Datum numeric_gt(PG_FUNCTION_ARGS);
00949 extern Datum numeric_ge(PG_FUNCTION_ARGS);
00950 extern Datum numeric_lt(PG_FUNCTION_ARGS);
00951 extern Datum numeric_le(PG_FUNCTION_ARGS);
00952 extern Datum numeric_add(PG_FUNCTION_ARGS);
00953 extern Datum numeric_sub(PG_FUNCTION_ARGS);
00954 extern Datum numeric_mul(PG_FUNCTION_ARGS);
00955 extern Datum numeric_div(PG_FUNCTION_ARGS);
00956 extern Datum numeric_div_trunc(PG_FUNCTION_ARGS);
00957 extern Datum numeric_mod(PG_FUNCTION_ARGS);
00958 extern Datum numeric_inc(PG_FUNCTION_ARGS);
00959 extern Datum numeric_smaller(PG_FUNCTION_ARGS);
00960 extern Datum numeric_larger(PG_FUNCTION_ARGS);
00961 extern Datum numeric_fac(PG_FUNCTION_ARGS);
00962 extern Datum numeric_sqrt(PG_FUNCTION_ARGS);
00963 extern Datum numeric_exp(PG_FUNCTION_ARGS);
00964 extern Datum numeric_ln(PG_FUNCTION_ARGS);
00965 extern Datum numeric_log(PG_FUNCTION_ARGS);
00966 extern Datum numeric_power(PG_FUNCTION_ARGS);
00967 extern Datum int4_numeric(PG_FUNCTION_ARGS);
00968 extern Datum numeric_int4(PG_FUNCTION_ARGS);
00969 extern Datum int8_numeric(PG_FUNCTION_ARGS);
00970 extern Datum numeric_int8(PG_FUNCTION_ARGS);
00971 extern Datum int2_numeric(PG_FUNCTION_ARGS);
00972 extern Datum numeric_int2(PG_FUNCTION_ARGS);
00973 extern Datum float8_numeric(PG_FUNCTION_ARGS);
00974 extern Datum numeric_float8(PG_FUNCTION_ARGS);
00975 extern Datum numeric_float8_no_overflow(PG_FUNCTION_ARGS);
00976 extern Datum float4_numeric(PG_FUNCTION_ARGS);
00977 extern Datum numeric_float4(PG_FUNCTION_ARGS);
00978 extern Datum numeric_accum(PG_FUNCTION_ARGS);
00979 extern Datum numeric_avg_accum(PG_FUNCTION_ARGS);
00980 extern Datum int2_accum(PG_FUNCTION_ARGS);
00981 extern Datum int4_accum(PG_FUNCTION_ARGS);
00982 extern Datum int8_accum(PG_FUNCTION_ARGS);
00983 extern Datum int8_avg_accum(PG_FUNCTION_ARGS);
00984 extern Datum numeric_avg(PG_FUNCTION_ARGS);
00985 extern Datum numeric_var_pop(PG_FUNCTION_ARGS);
00986 extern Datum numeric_var_samp(PG_FUNCTION_ARGS);
00987 extern Datum numeric_stddev_pop(PG_FUNCTION_ARGS);
00988 extern Datum numeric_stddev_samp(PG_FUNCTION_ARGS);
00989 extern Datum int2_sum(PG_FUNCTION_ARGS);
00990 extern Datum int4_sum(PG_FUNCTION_ARGS);
00991 extern Datum int8_sum(PG_FUNCTION_ARGS);
00992 extern Datum int2_avg_accum(PG_FUNCTION_ARGS);
00993 extern Datum int4_avg_accum(PG_FUNCTION_ARGS);
00994 extern Datum int8_avg(PG_FUNCTION_ARGS);
00995 extern Datum width_bucket_numeric(PG_FUNCTION_ARGS);
00996 extern Datum hash_numeric(PG_FUNCTION_ARGS);
00997 
00998 /* ri_triggers.c */
00999 extern Datum RI_FKey_check_ins(PG_FUNCTION_ARGS);
01000 extern Datum RI_FKey_check_upd(PG_FUNCTION_ARGS);
01001 extern Datum RI_FKey_noaction_del(PG_FUNCTION_ARGS);
01002 extern Datum RI_FKey_noaction_upd(PG_FUNCTION_ARGS);
01003 extern Datum RI_FKey_cascade_del(PG_FUNCTION_ARGS);
01004 extern Datum RI_FKey_cascade_upd(PG_FUNCTION_ARGS);
01005 extern Datum RI_FKey_restrict_del(PG_FUNCTION_ARGS);
01006 extern Datum RI_FKey_restrict_upd(PG_FUNCTION_ARGS);
01007 extern Datum RI_FKey_setnull_del(PG_FUNCTION_ARGS);
01008 extern Datum RI_FKey_setnull_upd(PG_FUNCTION_ARGS);
01009 extern Datum RI_FKey_setdefault_del(PG_FUNCTION_ARGS);
01010 extern Datum RI_FKey_setdefault_upd(PG_FUNCTION_ARGS);
01011 
01012 /* trigfuncs.c */
01013 extern Datum suppress_redundant_updates_trigger(PG_FUNCTION_ARGS);
01014 
01015 /* encoding support functions */
01016 extern Datum getdatabaseencoding(PG_FUNCTION_ARGS);
01017 extern Datum database_character_set(PG_FUNCTION_ARGS);
01018 extern Datum pg_client_encoding(PG_FUNCTION_ARGS);
01019 extern Datum PG_encoding_to_char(PG_FUNCTION_ARGS);
01020 extern Datum PG_char_to_encoding(PG_FUNCTION_ARGS);
01021 extern Datum PG_character_set_name(PG_FUNCTION_ARGS);
01022 extern Datum PG_character_set_id(PG_FUNCTION_ARGS);
01023 extern Datum pg_convert(PG_FUNCTION_ARGS);
01024 extern Datum pg_convert_to(PG_FUNCTION_ARGS);
01025 extern Datum pg_convert_from(PG_FUNCTION_ARGS);
01026 extern Datum length_in_encoding(PG_FUNCTION_ARGS);
01027 extern Datum pg_encoding_max_length_sql(PG_FUNCTION_ARGS);
01028 
01029 /* format_type.c */
01030 extern Datum format_type(PG_FUNCTION_ARGS);
01031 extern char *format_type_be(Oid type_oid);
01032 extern char *format_type_be_qualified(Oid type_oid);
01033 extern char *format_type_with_typemod(Oid type_oid, int32 typemod);
01034 extern Datum oidvectortypes(PG_FUNCTION_ARGS);
01035 extern int32 type_maximum_size(Oid type_oid, int32 typemod);
01036 
01037 /* quote.c */
01038 extern Datum quote_ident(PG_FUNCTION_ARGS);
01039 extern Datum quote_literal(PG_FUNCTION_ARGS);
01040 extern char *quote_literal_cstr(const char *rawstr);
01041 extern Datum quote_nullable(PG_FUNCTION_ARGS);
01042 
01043 /* guc.c */
01044 extern Datum show_config_by_name(PG_FUNCTION_ARGS);
01045 extern Datum set_config_by_name(PG_FUNCTION_ARGS);
01046 extern Datum show_all_settings(PG_FUNCTION_ARGS);
01047 
01048 /* lockfuncs.c */
01049 extern Datum pg_lock_status(PG_FUNCTION_ARGS);
01050 extern Datum pg_advisory_lock_int8(PG_FUNCTION_ARGS);
01051 extern Datum pg_advisory_xact_lock_int8(PG_FUNCTION_ARGS);
01052 extern Datum pg_advisory_lock_shared_int8(PG_FUNCTION_ARGS);
01053 extern Datum pg_advisory_xact_lock_shared_int8(PG_FUNCTION_ARGS);
01054 extern Datum pg_try_advisory_lock_int8(PG_FUNCTION_ARGS);
01055 extern Datum pg_try_advisory_xact_lock_int8(PG_FUNCTION_ARGS);
01056 extern Datum pg_try_advisory_lock_shared_int8(PG_FUNCTION_ARGS);
01057 extern Datum pg_try_advisory_xact_lock_shared_int8(PG_FUNCTION_ARGS);
01058 extern Datum pg_advisory_unlock_int8(PG_FUNCTION_ARGS);
01059 extern Datum pg_advisory_unlock_shared_int8(PG_FUNCTION_ARGS);
01060 extern Datum pg_advisory_lock_int4(PG_FUNCTION_ARGS);
01061 extern Datum pg_advisory_xact_lock_int4(PG_FUNCTION_ARGS);
01062 extern Datum pg_advisory_lock_shared_int4(PG_FUNCTION_ARGS);
01063 extern Datum pg_advisory_xact_lock_shared_int4(PG_FUNCTION_ARGS);
01064 extern Datum pg_try_advisory_lock_int4(PG_FUNCTION_ARGS);
01065 extern Datum pg_try_advisory_xact_lock_int4(PG_FUNCTION_ARGS);
01066 extern Datum pg_try_advisory_lock_shared_int4(PG_FUNCTION_ARGS);
01067 extern Datum pg_try_advisory_xact_lock_shared_int4(PG_FUNCTION_ARGS);
01068 extern Datum pg_advisory_unlock_int4(PG_FUNCTION_ARGS);
01069 extern Datum pg_advisory_unlock_shared_int4(PG_FUNCTION_ARGS);
01070 extern Datum pg_advisory_unlock_all(PG_FUNCTION_ARGS);
01071 
01072 /* txid.c */
01073 extern Datum txid_snapshot_in(PG_FUNCTION_ARGS);
01074 extern Datum txid_snapshot_out(PG_FUNCTION_ARGS);
01075 extern Datum txid_snapshot_recv(PG_FUNCTION_ARGS);
01076 extern Datum txid_snapshot_send(PG_FUNCTION_ARGS);
01077 extern Datum txid_current(PG_FUNCTION_ARGS);
01078 extern Datum txid_current_snapshot(PG_FUNCTION_ARGS);
01079 extern Datum txid_snapshot_xmin(PG_FUNCTION_ARGS);
01080 extern Datum txid_snapshot_xmax(PG_FUNCTION_ARGS);
01081 extern Datum txid_snapshot_xip(PG_FUNCTION_ARGS);
01082 extern Datum txid_visible_in_snapshot(PG_FUNCTION_ARGS);
01083 
01084 /* uuid.c */
01085 extern Datum uuid_in(PG_FUNCTION_ARGS);
01086 extern Datum uuid_out(PG_FUNCTION_ARGS);
01087 extern Datum uuid_send(PG_FUNCTION_ARGS);
01088 extern Datum uuid_recv(PG_FUNCTION_ARGS);
01089 extern Datum uuid_lt(PG_FUNCTION_ARGS);
01090 extern Datum uuid_le(PG_FUNCTION_ARGS);
01091 extern Datum uuid_eq(PG_FUNCTION_ARGS);
01092 extern Datum uuid_ge(PG_FUNCTION_ARGS);
01093 extern Datum uuid_gt(PG_FUNCTION_ARGS);
01094 extern Datum uuid_ne(PG_FUNCTION_ARGS);
01095 extern Datum uuid_cmp(PG_FUNCTION_ARGS);
01096 extern Datum uuid_hash(PG_FUNCTION_ARGS);
01097 
01098 /* windowfuncs.c */
01099 extern Datum window_row_number(PG_FUNCTION_ARGS);
01100 extern Datum window_rank(PG_FUNCTION_ARGS);
01101 extern Datum window_dense_rank(PG_FUNCTION_ARGS);
01102 extern Datum window_percent_rank(PG_FUNCTION_ARGS);
01103 extern Datum window_cume_dist(PG_FUNCTION_ARGS);
01104 extern Datum window_ntile(PG_FUNCTION_ARGS);
01105 extern Datum window_lag(PG_FUNCTION_ARGS);
01106 extern Datum window_lag_with_offset(PG_FUNCTION_ARGS);
01107 extern Datum window_lag_with_offset_and_default(PG_FUNCTION_ARGS);
01108 extern Datum window_lead(PG_FUNCTION_ARGS);
01109 extern Datum window_lead_with_offset(PG_FUNCTION_ARGS);
01110 extern Datum window_lead_with_offset_and_default(PG_FUNCTION_ARGS);
01111 extern Datum window_first_value(PG_FUNCTION_ARGS);
01112 extern Datum window_last_value(PG_FUNCTION_ARGS);
01113 extern Datum window_nth_value(PG_FUNCTION_ARGS);
01114 
01115 /* access/spgist/spgquadtreeproc.c */
01116 extern Datum spg_quad_config(PG_FUNCTION_ARGS);
01117 extern Datum spg_quad_choose(PG_FUNCTION_ARGS);
01118 extern Datum spg_quad_picksplit(PG_FUNCTION_ARGS);
01119 extern Datum spg_quad_inner_consistent(PG_FUNCTION_ARGS);
01120 extern Datum spg_quad_leaf_consistent(PG_FUNCTION_ARGS);
01121 
01122 /* access/spgist/spgkdtreeproc.c */
01123 extern Datum spg_kd_config(PG_FUNCTION_ARGS);
01124 extern Datum spg_kd_choose(PG_FUNCTION_ARGS);
01125 extern Datum spg_kd_picksplit(PG_FUNCTION_ARGS);
01126 extern Datum spg_kd_inner_consistent(PG_FUNCTION_ARGS);
01127 
01128 /* access/spgist/spgtextproc.c */
01129 extern Datum spg_text_config(PG_FUNCTION_ARGS);
01130 extern Datum spg_text_choose(PG_FUNCTION_ARGS);
01131 extern Datum spg_text_picksplit(PG_FUNCTION_ARGS);
01132 extern Datum spg_text_inner_consistent(PG_FUNCTION_ARGS);
01133 extern Datum spg_text_leaf_consistent(PG_FUNCTION_ARGS);
01134 
01135 /* access/gin/ginarrayproc.c */
01136 extern Datum ginarrayextract(PG_FUNCTION_ARGS);
01137 extern Datum ginarrayextract_2args(PG_FUNCTION_ARGS);
01138 extern Datum ginqueryarrayextract(PG_FUNCTION_ARGS);
01139 extern Datum ginarrayconsistent(PG_FUNCTION_ARGS);
01140 
01141 /* access/transam/twophase.c */
01142 extern Datum pg_prepared_xact(PG_FUNCTION_ARGS);
01143 
01144 /* access/transam/multixact.c */
01145 extern Datum pg_get_multixact_members(PG_FUNCTION_ARGS);
01146 
01147 /* catalogs/dependency.c */
01148 extern Datum pg_describe_object(PG_FUNCTION_ARGS);
01149 extern Datum pg_identify_object(PG_FUNCTION_ARGS);
01150 
01151 /* commands/constraint.c */
01152 extern Datum unique_key_recheck(PG_FUNCTION_ARGS);
01153 
01154 /* commands/event_trigger.c */
01155 extern Datum pg_event_trigger_dropped_objects(PG_FUNCTION_ARGS);
01156 
01157 /* commands/extension.c */
01158 extern Datum pg_available_extensions(PG_FUNCTION_ARGS);
01159 extern Datum pg_available_extension_versions(PG_FUNCTION_ARGS);
01160 extern Datum pg_extension_update_paths(PG_FUNCTION_ARGS);
01161 extern Datum pg_extension_config_dump(PG_FUNCTION_ARGS);
01162 
01163 /* commands/prepare.c */
01164 extern Datum pg_prepared_statement(PG_FUNCTION_ARGS);
01165 
01166 /* utils/mmgr/portalmem.c */
01167 extern Datum pg_cursor(PG_FUNCTION_ARGS);
01168 
01169 #endif   /* BUILTINS_H */