1996-08-28 03:59:28 +02:00
|
|
|
/*-------------------------------------------------------------------------
|
|
|
|
*
|
1999-02-14 00:22:53 +01:00
|
|
|
* builtins.h
|
1997-09-07 07:04:48 +02:00
|
|
|
* Declarations for operations on built-in types.
|
1996-08-28 03:59:28 +02:00
|
|
|
*
|
|
|
|
*
|
2003-08-04 04:40:20 +02:00
|
|
|
* Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group
|
2000-01-26 06:58:53 +01:00
|
|
|
* Portions Copyright (c) 1994, Regents of the University of California
|
1996-08-28 03:59:28 +02:00
|
|
|
*
|
2003-11-12 22:15:59 +01:00
|
|
|
* $Id: builtins.h,v 1.229 2003/11/12 21:15:59 tgl Exp $
|
1996-08-28 03:59:28 +02:00
|
|
|
*
|
|
|
|
*-------------------------------------------------------------------------
|
|
|
|
*/
|
|
|
|
#ifndef BUILTINS_H
|
|
|
|
#define BUILTINS_H
|
|
|
|
|
2000-08-24 05:29:15 +02:00
|
|
|
#include "fmgr.h"
|
2002-03-12 01:52:10 +01:00
|
|
|
#include "nodes/parsenodes.h"
|
2001-10-25 07:50:21 +02:00
|
|
|
#include "storage/itemptr.h" /* for setLastTid() */
|
1996-08-28 03:59:28 +02:00
|
|
|
|
|
|
|
/*
|
1997-09-07 07:04:48 +02:00
|
|
|
* Defined in adt/
|
1996-08-28 03:59:28 +02:00
|
|
|
*/
|
2001-06-14 03:09:22 +02:00
|
|
|
|
|
|
|
/* acl.c */
|
|
|
|
extern Datum has_table_privilege_name_name(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum has_table_privilege_name_id(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum has_table_privilege_id_name(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum has_table_privilege_id_id(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum has_table_privilege_name(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum has_table_privilege_id(PG_FUNCTION_ARGS);
|
2002-08-09 18:45:16 +02:00
|
|
|
extern Datum has_database_privilege_name_name(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum has_database_privilege_name_id(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum has_database_privilege_id_name(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum has_database_privilege_id_id(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum has_database_privilege_name(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum has_database_privilege_id(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum has_function_privilege_name_name(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum has_function_privilege_name_id(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum has_function_privilege_id_name(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum has_function_privilege_id_id(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum has_function_privilege_name(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum has_function_privilege_id(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum has_language_privilege_name_name(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum has_language_privilege_name_id(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum has_language_privilege_id_name(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum has_language_privilege_id_id(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum has_language_privilege_name(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum has_language_privilege_id(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum has_schema_privilege_name_name(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum has_schema_privilege_name_id(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum has_schema_privilege_id_name(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum has_schema_privilege_id_id(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum has_schema_privilege_name(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum has_schema_privilege_id(PG_FUNCTION_ARGS);
|
2001-06-14 03:09:22 +02:00
|
|
|
|
1996-08-28 03:59:28 +02:00
|
|
|
/* bool.c */
|
2000-06-05 09:29:25 +02:00
|
|
|
extern Datum boolin(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum boolout(PG_FUNCTION_ARGS);
|
2003-05-13 01:08:52 +02:00
|
|
|
extern Datum boolrecv(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum boolsend(PG_FUNCTION_ARGS);
|
2000-06-05 09:29:25 +02:00
|
|
|
extern Datum booleq(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum boolne(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum boollt(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum boolgt(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum boolle(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum boolge(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum istrue(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum isfalse(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum isnottrue(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum isnotfalse(PG_FUNCTION_ARGS);
|
1996-08-28 03:59:28 +02:00
|
|
|
|
|
|
|
/* char.c */
|
2000-06-05 09:29:25 +02:00
|
|
|
extern Datum charin(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum charout(PG_FUNCTION_ARGS);
|
2003-05-13 01:08:52 +02:00
|
|
|
extern Datum charrecv(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum charsend(PG_FUNCTION_ARGS);
|
2000-06-05 09:29:25 +02:00
|
|
|
extern Datum chareq(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum charne(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum charlt(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum charle(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum chargt(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum charge(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum charpl(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum charmi(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum charmul(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum chardiv(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum text_char(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum char_text(PG_FUNCTION_ARGS);
|
1996-08-28 03:59:28 +02:00
|
|
|
|
|
|
|
/* int.c */
|
2000-06-05 09:29:25 +02:00
|
|
|
extern Datum int2in(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int2out(PG_FUNCTION_ARGS);
|
2003-05-09 17:44:42 +02:00
|
|
|
extern Datum int2recv(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int2send(PG_FUNCTION_ARGS);
|
2000-06-05 09:29:25 +02:00
|
|
|
extern Datum int2vectorin(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int2vectorout(PG_FUNCTION_ARGS);
|
2003-05-09 17:44:42 +02:00
|
|
|
extern Datum int2vectorrecv(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int2vectorsend(PG_FUNCTION_ARGS);
|
2000-06-05 09:29:25 +02:00
|
|
|
extern Datum int2vectoreq(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int4in(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int4out(PG_FUNCTION_ARGS);
|
2003-05-09 17:44:42 +02:00
|
|
|
extern Datum int4recv(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int4send(PG_FUNCTION_ARGS);
|
2000-06-05 09:29:25 +02:00
|
|
|
extern Datum i2toi4(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum i4toi2(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int2_text(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum text_int2(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int4_text(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum text_int4(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int4eq(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int4ne(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int4lt(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int4le(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int4gt(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int4ge(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int2eq(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int2ne(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int2lt(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int2le(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int2gt(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int2ge(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int24eq(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int24ne(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int24lt(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int24le(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int24gt(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int24ge(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int42eq(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int42ne(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int42lt(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int42le(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int42gt(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int42ge(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int4um(PG_FUNCTION_ARGS);
|
2001-06-07 02:09:32 +02:00
|
|
|
extern Datum int4up(PG_FUNCTION_ARGS);
|
2000-06-05 09:29:25 +02:00
|
|
|
extern Datum int4pl(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int4mi(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int4mul(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int4div(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int4abs(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int4inc(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int2um(PG_FUNCTION_ARGS);
|
2001-06-07 02:09:32 +02:00
|
|
|
extern Datum int2up(PG_FUNCTION_ARGS);
|
2000-06-05 09:29:25 +02:00
|
|
|
extern Datum int2pl(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int2mi(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int2mul(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int2div(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int2abs(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int24pl(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int24mi(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int24mul(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int24div(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int42pl(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int42mi(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int42mul(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int42div(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int4mod(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int2mod(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int24mod(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int42mod(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int4fac(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int2fac(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int2larger(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int2smaller(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int4larger(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int4smaller(PG_FUNCTION_ARGS);
|
1996-08-28 03:59:28 +02:00
|
|
|
|
2000-10-24 22:16:48 +02:00
|
|
|
extern Datum int4and(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int4or(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int4xor(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int4not(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int4shl(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int4shr(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int2and(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int2or(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int2xor(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int2not(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int2shl(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int2shr(PG_FUNCTION_ARGS);
|
|
|
|
|
1996-08-28 03:59:28 +02:00
|
|
|
/* name.c */
|
2000-08-03 18:35:08 +02:00
|
|
|
extern Datum namein(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum nameout(PG_FUNCTION_ARGS);
|
2003-05-09 23:19:50 +02:00
|
|
|
extern Datum namerecv(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum namesend(PG_FUNCTION_ARGS);
|
2000-08-03 18:35:08 +02:00
|
|
|
extern Datum nameeq(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum namene(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum namelt(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum namele(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum namegt(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum namege(PG_FUNCTION_ARGS);
|
2003-05-15 17:50:21 +02:00
|
|
|
extern Datum name_pattern_eq(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum name_pattern_ne(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum name_pattern_lt(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum name_pattern_le(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum name_pattern_gt(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum name_pattern_ge(PG_FUNCTION_ARGS);
|
1997-09-08 04:41:22 +02:00
|
|
|
extern int namecpy(Name n1, Name n2);
|
2000-01-22 15:20:56 +01:00
|
|
|
extern int namestrcpy(Name name, const char *str);
|
|
|
|
extern int namestrcmp(Name name, const char *str);
|
2000-09-19 20:18:04 +02:00
|
|
|
extern Datum current_user(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum session_user(PG_FUNCTION_ARGS);
|
2002-04-26 03:24:08 +02:00
|
|
|
extern Datum current_schema(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum current_schemas(PG_FUNCTION_ARGS);
|
1996-08-28 03:59:28 +02:00
|
|
|
|
|
|
|
/* numutils.c */
|
1997-09-08 04:41:22 +02:00
|
|
|
extern int32 pg_atoi(char *s, int size, int c);
|
2000-08-01 20:29:35 +02:00
|
|
|
extern void pg_itoa(int16 i, char *a);
|
|
|
|
extern void pg_ltoa(int32 l, char *a);
|
1996-08-28 03:59:28 +02:00
|
|
|
|
|
|
|
/*
|
1997-09-07 07:04:48 +02:00
|
|
|
* Per-opclass comparison functions for new btrees. These are
|
2000-06-19 05:55:01 +02:00
|
|
|
* stored in pg_amproc and defined in access/nbtree/nbtcompare.c
|
1996-08-28 03:59:28 +02:00
|
|
|
*/
|
2000-06-05 09:29:25 +02:00
|
|
|
extern Datum btboolcmp(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum btint2cmp(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum btint4cmp(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum btint8cmp(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum btfloat4cmp(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum btfloat8cmp(PG_FUNCTION_ARGS);
|
2003-11-12 22:15:59 +01:00
|
|
|
extern Datum btint48cmp(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum btint84cmp(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum btint24cmp(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum btint42cmp(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum btint28cmp(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum btint82cmp(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum btfloat48cmp(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum btfloat84cmp(PG_FUNCTION_ARGS);
|
2000-06-05 09:29:25 +02:00
|
|
|
extern Datum btoidcmp(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum btoidvectorcmp(PG_FUNCTION_ARGS);
|
2000-06-09 03:11:16 +02:00
|
|
|
extern Datum btabstimecmp(PG_FUNCTION_ARGS);
|
2003-08-17 21:58:06 +02:00
|
|
|
extern Datum btreltimecmp(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum bttintervalcmp(PG_FUNCTION_ARGS);
|
2000-06-05 09:29:25 +02:00
|
|
|
extern Datum btcharcmp(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum btnamecmp(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum bttextcmp(PG_FUNCTION_ARGS);
|
2003-05-15 17:50:21 +02:00
|
|
|
extern Datum btname_pattern_cmp(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum bttext_pattern_cmp(PG_FUNCTION_ARGS);
|
1996-08-28 03:59:28 +02:00
|
|
|
|
|
|
|
/* float.c */
|
2002-11-08 18:37:52 +01:00
|
|
|
extern int extra_float_digits;
|
|
|
|
|
2000-08-01 20:29:35 +02:00
|
|
|
extern Datum float4in(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum float4out(PG_FUNCTION_ARGS);
|
2003-05-09 23:19:50 +02:00
|
|
|
extern Datum float4recv(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum float4send(PG_FUNCTION_ARGS);
|
2000-08-01 20:29:35 +02:00
|
|
|
extern Datum float8in(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum float8out(PG_FUNCTION_ARGS);
|
2003-05-09 23:19:50 +02:00
|
|
|
extern Datum float8recv(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum float8send(PG_FUNCTION_ARGS);
|
2000-08-01 20:29:35 +02:00
|
|
|
extern Datum float4abs(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum float4um(PG_FUNCTION_ARGS);
|
2001-06-07 02:09:32 +02:00
|
|
|
extern Datum float4up(PG_FUNCTION_ARGS);
|
2000-08-01 20:29:35 +02:00
|
|
|
extern Datum float4larger(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum float4smaller(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum float8abs(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum float8um(PG_FUNCTION_ARGS);
|
2001-06-07 02:09:32 +02:00
|
|
|
extern Datum float8up(PG_FUNCTION_ARGS);
|
2000-08-01 20:29:35 +02:00
|
|
|
extern Datum float8larger(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum float8smaller(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum float4pl(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum float4mi(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum float4mul(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum float4div(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum float8pl(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum float8mi(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum float8mul(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum float8div(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum float4eq(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum float4ne(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum float4lt(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum float4le(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum float4gt(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum float4ge(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum float8eq(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum float8ne(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum float8lt(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum float8le(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum float8gt(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum float8ge(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum ftod(PG_FUNCTION_ARGS);
|
2000-06-13 09:35:40 +02:00
|
|
|
extern Datum i4tod(PG_FUNCTION_ARGS);
|
2000-06-05 09:29:25 +02:00
|
|
|
extern Datum i2tod(PG_FUNCTION_ARGS);
|
2000-08-01 20:29:35 +02:00
|
|
|
extern Datum dtof(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum dtoi4(PG_FUNCTION_ARGS);
|
2000-06-05 09:29:25 +02:00
|
|
|
extern Datum dtoi2(PG_FUNCTION_ARGS);
|
2000-06-13 09:35:40 +02:00
|
|
|
extern Datum i4tof(PG_FUNCTION_ARGS);
|
2000-06-05 09:29:25 +02:00
|
|
|
extern Datum i2tof(PG_FUNCTION_ARGS);
|
2000-08-01 20:29:35 +02:00
|
|
|
extern Datum ftoi4(PG_FUNCTION_ARGS);
|
2000-06-05 09:29:25 +02:00
|
|
|
extern Datum ftoi2(PG_FUNCTION_ARGS);
|
2000-07-06 07:48:31 +02:00
|
|
|
extern Datum text_float8(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum text_float4(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum float8_text(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum float4_text(PG_FUNCTION_ARGS);
|
2000-08-01 20:29:35 +02:00
|
|
|
extern Datum dround(PG_FUNCTION_ARGS);
|
2002-10-19 04:08:19 +02:00
|
|
|
extern Datum dceil(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum dfloor(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum dsign(PG_FUNCTION_ARGS);
|
2000-08-01 20:29:35 +02:00
|
|
|
extern Datum dtrunc(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum dsqrt(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum dcbrt(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum dpow(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum dexp(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum dlog1(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum dlog10(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum dacos(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum dasin(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum datan(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum datan2(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum dcos(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum dcot(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum dsin(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum dtan(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum degrees(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum dpi(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum radians(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum drandom(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum setseed(PG_FUNCTION_ARGS);
|
2000-07-17 05:05:41 +02:00
|
|
|
extern Datum float8_accum(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum float4_accum(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum float8_avg(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum float8_variance(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum float8_stddev(PG_FUNCTION_ARGS);
|
2000-08-01 20:29:35 +02:00
|
|
|
extern Datum float48pl(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum float48mi(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum float48mul(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum float48div(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum float84pl(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum float84mi(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum float84mul(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum float84div(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum float48eq(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum float48ne(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum float48lt(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum float48le(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum float48gt(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum float48ge(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum float84eq(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum float84ne(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum float84lt(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum float84le(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum float84gt(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum float84ge(PG_FUNCTION_ARGS);
|
1996-08-28 03:59:28 +02:00
|
|
|
|
|
|
|
/* misc.c */
|
2000-06-05 09:29:25 +02:00
|
|
|
extern Datum nullvalue(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum nonnullvalue(PG_FUNCTION_ARGS);
|
2002-08-20 06:46:00 +02:00
|
|
|
extern Datum current_database(PG_FUNCTION_ARGS);
|
1997-04-27 21:24:16 +02:00
|
|
|
|
1996-08-28 03:59:28 +02:00
|
|
|
/* not_in.c */
|
2000-06-09 03:11:16 +02:00
|
|
|
extern Datum int4notin(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum oidnotin(PG_FUNCTION_ARGS);
|
1996-08-28 03:59:28 +02:00
|
|
|
|
|
|
|
/* oid.c */
|
2000-06-05 09:29:25 +02:00
|
|
|
extern Datum oidin(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum oidout(PG_FUNCTION_ARGS);
|
2003-05-09 17:44:42 +02:00
|
|
|
extern Datum oidrecv(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum oidsend(PG_FUNCTION_ARGS);
|
2000-06-05 09:29:25 +02:00
|
|
|
extern Datum oideq(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum oidne(PG_FUNCTION_ARGS);
|
2000-11-21 04:23:21 +01:00
|
|
|
extern Datum oidlt(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum oidle(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum oidge(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum oidgt(PG_FUNCTION_ARGS);
|
2001-08-15 00:21:59 +02:00
|
|
|
extern Datum oidlarger(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum oidsmaller(PG_FUNCTION_ARGS);
|
2000-11-21 04:23:21 +01:00
|
|
|
extern Datum oid_text(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum text_oid(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum oidvectorin(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum oidvectorout(PG_FUNCTION_ARGS);
|
2003-05-09 17:44:42 +02:00
|
|
|
extern Datum oidvectorrecv(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum oidvectorsend(PG_FUNCTION_ARGS);
|
2000-06-05 09:29:25 +02:00
|
|
|
extern Datum oidvectoreq(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum oidvectorne(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum oidvectorlt(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum oidvectorle(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum oidvectorge(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum oidvectorgt(PG_FUNCTION_ARGS);
|
1996-08-28 03:59:28 +02:00
|
|
|
|
2002-08-22 02:01:51 +02:00
|
|
|
/* pseudotypes.c */
|
|
|
|
extern Datum record_in(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum record_out(PG_FUNCTION_ARGS);
|
2003-05-09 00:19:58 +02:00
|
|
|
extern Datum record_recv(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum record_send(PG_FUNCTION_ARGS);
|
2002-08-22 02:01:51 +02:00
|
|
|
extern Datum cstring_in(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum cstring_out(PG_FUNCTION_ARGS);
|
2003-05-13 20:03:08 +02:00
|
|
|
extern Datum cstring_recv(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum cstring_send(PG_FUNCTION_ARGS);
|
2002-08-22 02:01:51 +02:00
|
|
|
extern Datum any_in(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum any_out(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum anyarray_in(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum anyarray_out(PG_FUNCTION_ARGS);
|
2003-05-13 20:03:08 +02:00
|
|
|
extern Datum anyarray_recv(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum anyarray_send(PG_FUNCTION_ARGS);
|
2002-08-22 02:01:51 +02:00
|
|
|
extern Datum void_in(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum void_out(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum trigger_in(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum trigger_out(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum language_handler_in(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum language_handler_out(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum internal_in(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum internal_out(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum opaque_in(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum opaque_out(PG_FUNCTION_ARGS);
|
2003-04-09 01:20:04 +02:00
|
|
|
extern Datum anyelement_in(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum anyelement_out(PG_FUNCTION_ARGS);
|
2002-08-22 02:01:51 +02:00
|
|
|
|
1996-08-28 03:59:28 +02:00
|
|
|
/* regexp.c */
|
2000-07-06 07:48:31 +02:00
|
|
|
extern Datum nameregexeq(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum nameregexne(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum textregexeq(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum textregexne(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum nameicregexeq(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum nameicregexne(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum texticregexeq(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum texticregexne(PG_FUNCTION_ARGS);
|
2002-06-11 17:44:38 +02:00
|
|
|
extern Datum textregexsubstr(PG_FUNCTION_ARGS);
|
2002-09-22 19:27:25 +02:00
|
|
|
extern Datum similar_escape(PG_FUNCTION_ARGS);
|
2003-02-06 21:25:33 +01:00
|
|
|
extern const char *assign_regex_flavor(const char *value,
|
2003-08-04 02:43:34 +02:00
|
|
|
bool doit, bool interactive);
|
1996-08-28 03:59:28 +02:00
|
|
|
|
|
|
|
/* regproc.c */
|
2000-06-05 09:29:25 +02:00
|
|
|
extern Datum regprocin(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum regprocout(PG_FUNCTION_ARGS);
|
2003-05-13 01:08:52 +02:00
|
|
|
extern Datum regprocrecv(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum regprocsend(PG_FUNCTION_ARGS);
|
2002-04-25 04:56:56 +02:00
|
|
|
extern Datum regprocedurein(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum regprocedureout(PG_FUNCTION_ARGS);
|
2003-05-13 01:08:52 +02:00
|
|
|
extern Datum regprocedurerecv(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum regproceduresend(PG_FUNCTION_ARGS);
|
2002-04-25 04:56:56 +02:00
|
|
|
extern Datum regoperin(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum regoperout(PG_FUNCTION_ARGS);
|
2003-05-13 01:08:52 +02:00
|
|
|
extern Datum regoperrecv(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum regopersend(PG_FUNCTION_ARGS);
|
2002-04-25 04:56:56 +02:00
|
|
|
extern Datum regoperatorin(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum regoperatorout(PG_FUNCTION_ARGS);
|
2003-05-13 01:08:52 +02:00
|
|
|
extern Datum regoperatorrecv(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum regoperatorsend(PG_FUNCTION_ARGS);
|
2002-04-25 04:56:56 +02:00
|
|
|
extern Datum regclassin(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum regclassout(PG_FUNCTION_ARGS);
|
2003-05-13 01:08:52 +02:00
|
|
|
extern Datum regclassrecv(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum regclasssend(PG_FUNCTION_ARGS);
|
2002-04-25 04:56:56 +02:00
|
|
|
extern Datum regtypein(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum regtypeout(PG_FUNCTION_ARGS);
|
2003-05-13 01:08:52 +02:00
|
|
|
extern Datum regtyperecv(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum regtypesend(PG_FUNCTION_ARGS);
|
2002-06-20 19:19:08 +02:00
|
|
|
extern List *stringToQualifiedNameList(const char *string, const char *caller);
|
2002-07-30 00:14:11 +02:00
|
|
|
extern char *format_procedure(Oid procedure_oid);
|
|
|
|
extern char *format_operator(Oid operator_oid);
|
1996-08-28 03:59:28 +02:00
|
|
|
|
1999-10-04 01:55:40 +02:00
|
|
|
/* ruleutils.c */
|
2000-07-06 07:48:31 +02:00
|
|
|
extern Datum pg_get_ruledef(PG_FUNCTION_ARGS);
|
2003-07-31 00:56:24 +02:00
|
|
|
extern Datum pg_get_ruledef_ext(PG_FUNCTION_ARGS);
|
2000-07-06 07:48:31 +02:00
|
|
|
extern Datum pg_get_viewdef(PG_FUNCTION_ARGS);
|
2003-07-31 00:56:24 +02:00
|
|
|
extern Datum pg_get_viewdef_ext(PG_FUNCTION_ARGS);
|
2002-04-18 22:01:11 +02:00
|
|
|
extern Datum pg_get_viewdef_name(PG_FUNCTION_ARGS);
|
2003-07-31 00:56:24 +02:00
|
|
|
extern Datum pg_get_viewdef_name_ext(PG_FUNCTION_ARGS);
|
2000-06-09 03:11:16 +02:00
|
|
|
extern Datum pg_get_indexdef(PG_FUNCTION_ARGS);
|
2003-07-31 00:56:24 +02:00
|
|
|
extern Datum pg_get_indexdef_ext(PG_FUNCTION_ARGS);
|
2003-03-20 19:58:02 +01:00
|
|
|
extern Datum pg_get_triggerdef(PG_FUNCTION_ARGS);
|
2002-08-17 01:01:21 +02:00
|
|
|
extern Datum pg_get_constraintdef(PG_FUNCTION_ARGS);
|
2003-07-31 00:56:24 +02:00
|
|
|
extern Datum pg_get_constraintdef_ext(PG_FUNCTION_ARGS);
|
2000-06-13 09:35:40 +02:00
|
|
|
extern Datum pg_get_userbyid(PG_FUNCTION_ARGS);
|
2001-07-16 07:07:00 +02:00
|
|
|
extern Datum pg_get_expr(PG_FUNCTION_ARGS);
|
2003-07-31 00:56:24 +02:00
|
|
|
extern Datum pg_get_expr_ext(PG_FUNCTION_ARGS);
|
2001-02-14 22:35:07 +01:00
|
|
|
extern char *deparse_expression(Node *expr, List *dpcontext,
|
2002-09-20 00:48:34 +02:00
|
|
|
bool forceprefix, bool showimplicit);
|
2002-03-22 03:56:37 +01:00
|
|
|
extern List *deparse_context_for(const char *aliasname, Oid relid);
|
2002-03-12 01:52:10 +01:00
|
|
|
extern List *deparse_context_for_plan(int outer_varno, Node *outercontext,
|
2002-09-04 22:31:48 +02:00
|
|
|
int inner_varno, Node *innercontext,
|
|
|
|
List *rtable);
|
2002-05-12 22:10:05 +02:00
|
|
|
extern Node *deparse_context_for_rte(RangeTblEntry *rte);
|
2002-03-12 01:52:10 +01:00
|
|
|
extern Node *deparse_context_for_subplan(const char *name, List *tlist,
|
2002-09-04 22:31:48 +02:00
|
|
|
List *rtable);
|
2002-04-25 04:56:56 +02:00
|
|
|
extern const char *quote_identifier(const char *ident);
|
|
|
|
extern char *quote_qualified_identifier(const char *namespace,
|
2002-09-04 22:31:48 +02:00
|
|
|
const char *ident);
|
1999-10-04 01:55:40 +02:00
|
|
|
|
1996-08-28 03:59:28 +02:00
|
|
|
/* tid.c */
|
2000-08-03 18:35:08 +02:00
|
|
|
extern Datum tidin(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum tidout(PG_FUNCTION_ARGS);
|
2003-05-13 01:08:52 +02:00
|
|
|
extern Datum tidrecv(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum tidsend(PG_FUNCTION_ARGS);
|
2000-08-03 18:35:08 +02:00
|
|
|
extern Datum tideq(PG_FUNCTION_ARGS);
|
2000-06-09 03:11:16 +02:00
|
|
|
extern Datum currtid_byreloid(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum currtid_byrelname(PG_FUNCTION_ARGS);
|
2003-05-13 01:08:52 +02:00
|
|
|
extern void setLastTid(const ItemPointer tid);
|
1997-03-12 22:28:14 +01:00
|
|
|
|
1996-11-10 04:06:38 +01:00
|
|
|
/* varchar.c */
|
2000-06-13 09:35:40 +02:00
|
|
|
extern Datum bpcharin(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum bpcharout(PG_FUNCTION_ARGS);
|
2003-05-13 01:08:52 +02:00
|
|
|
extern Datum bpcharrecv(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum bpcharsend(PG_FUNCTION_ARGS);
|
2000-06-13 09:35:40 +02:00
|
|
|
extern Datum bpchar(PG_FUNCTION_ARGS);
|
2000-06-05 09:29:25 +02:00
|
|
|
extern Datum char_bpchar(PG_FUNCTION_ARGS);
|
2000-07-29 05:26:51 +02:00
|
|
|
extern Datum name_bpchar(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum bpchar_name(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum bpchareq(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum bpcharne(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum bpcharlt(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum bpcharle(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum bpchargt(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum bpcharge(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum bpcharcmp(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum bpcharlen(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum bpcharoctetlen(PG_FUNCTION_ARGS);
|
2000-06-19 05:55:01 +02:00
|
|
|
extern Datum hashbpchar(PG_FUNCTION_ARGS);
|
1997-12-16 16:55:17 +01:00
|
|
|
|
2000-06-13 09:35:40 +02:00
|
|
|
extern Datum varcharin(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum varcharout(PG_FUNCTION_ARGS);
|
2003-05-13 01:08:52 +02:00
|
|
|
extern Datum varcharrecv(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum varcharsend(PG_FUNCTION_ARGS);
|
2000-06-13 09:35:40 +02:00
|
|
|
extern Datum varchar(PG_FUNCTION_ARGS);
|
1996-08-28 03:59:28 +02:00
|
|
|
|
|
|
|
/* varlena.c */
|
2000-07-06 01:12:09 +02:00
|
|
|
extern Datum textin(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum textout(PG_FUNCTION_ARGS);
|
2003-05-09 17:44:42 +02:00
|
|
|
extern Datum textrecv(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum textsend(PG_FUNCTION_ARGS);
|
2000-07-06 07:48:31 +02:00
|
|
|
extern Datum textcat(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum texteq(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum textne(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum text_lt(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum text_le(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum text_gt(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum text_ge(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum text_larger(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum text_smaller(PG_FUNCTION_ARGS);
|
2003-05-15 17:50:21 +02:00
|
|
|
extern Datum text_pattern_eq(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum text_pattern_ne(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum text_pattern_lt(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum text_pattern_le(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum text_pattern_gt(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum text_pattern_ge(PG_FUNCTION_ARGS);
|
2000-07-06 07:48:31 +02:00
|
|
|
extern Datum textlen(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum textoctetlen(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum textpos(PG_FUNCTION_ARGS);
|
2000-06-13 09:35:40 +02:00
|
|
|
extern Datum text_substr(PG_FUNCTION_ARGS);
|
2002-08-22 05:24:01 +02:00
|
|
|
extern Datum text_substr_no_len(PG_FUNCTION_ARGS);
|
2000-07-06 07:48:31 +02:00
|
|
|
extern Datum name_text(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum text_name(PG_FUNCTION_ARGS);
|
|
|
|
extern int varstr_cmp(char *arg1, int len1, char *arg2, int len2);
|
2002-03-30 02:02:42 +01:00
|
|
|
extern List *textToQualifiedNameList(text *textval, const char *caller);
|
2002-04-01 05:34:27 +02:00
|
|
|
extern bool SplitIdentifierString(char *rawstring, char separator,
|
2002-09-04 22:31:48 +02:00
|
|
|
List **namelist);
|
2002-08-22 05:24:01 +02:00
|
|
|
extern Datum replace_text(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum split_text(PG_FUNCTION_ARGS);
|
2003-06-27 02:33:26 +02:00
|
|
|
extern Datum text_to_array(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum array_to_text(PG_FUNCTION_ARGS);
|
2002-08-22 05:24:01 +02:00
|
|
|
extern Datum to_hex32(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum to_hex64(PG_FUNCTION_ARGS);
|
2002-12-06 06:20:28 +01:00
|
|
|
extern Datum md5_text(PG_FUNCTION_ARGS);
|
1997-12-16 16:55:17 +01:00
|
|
|
|
2002-04-24 04:12:53 +02:00
|
|
|
extern Datum unknownin(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum unknownout(PG_FUNCTION_ARGS);
|
2003-05-09 17:44:42 +02:00
|
|
|
extern Datum unknownrecv(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum unknownsend(PG_FUNCTION_ARGS);
|
2002-04-24 04:12:53 +02:00
|
|
|
|
2000-07-29 05:26:51 +02:00
|
|
|
extern Datum byteain(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum byteaout(PG_FUNCTION_ARGS);
|
2003-05-09 17:44:42 +02:00
|
|
|
extern Datum bytearecv(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum byteasend(PG_FUNCTION_ARGS);
|
2000-07-29 05:26:51 +02:00
|
|
|
extern Datum byteaoctetlen(PG_FUNCTION_ARGS);
|
2000-06-13 09:35:40 +02:00
|
|
|
extern Datum byteaGetByte(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum byteaGetBit(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum byteaSetByte(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum byteaSetBit(PG_FUNCTION_ARGS);
|
2001-07-12 00:14:03 +02:00
|
|
|
extern Datum binary_encode(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum binary_decode(PG_FUNCTION_ARGS);
|
2001-08-13 20:45:36 +02:00
|
|
|
extern Datum byteaeq(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum byteane(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum bytealt(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum byteale(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum byteagt(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum byteage(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum byteacmp(PG_FUNCTION_ARGS);
|
2001-09-14 19:46:40 +02:00
|
|
|
extern Datum byteacat(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum byteapos(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum bytea_substr(PG_FUNCTION_ARGS);
|
2002-08-22 05:24:01 +02:00
|
|
|
extern Datum bytea_substr_no_len(PG_FUNCTION_ARGS);
|
1996-08-28 03:59:28 +02:00
|
|
|
|
2000-07-06 07:48:31 +02:00
|
|
|
/* version.c */
|
|
|
|
extern Datum pgsql_version(PG_FUNCTION_ARGS);
|
|
|
|
|
2003-05-13 01:08:52 +02:00
|
|
|
/* xid.c */
|
|
|
|
extern Datum xidin(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum xidout(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum xidrecv(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum xidsend(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum xideq(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum xid_age(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum cidin(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum cidout(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum cidrecv(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum cidsend(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum cideq(PG_FUNCTION_ARGS);
|
|
|
|
|
1996-11-10 04:06:38 +01:00
|
|
|
/* like.c */
|
2000-07-06 07:48:31 +02:00
|
|
|
extern Datum namelike(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum namenlike(PG_FUNCTION_ARGS);
|
2000-09-15 20:45:31 +02:00
|
|
|
extern Datum nameiclike(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum nameicnlike(PG_FUNCTION_ARGS);
|
2000-07-06 07:48:31 +02:00
|
|
|
extern Datum textlike(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum textnlike(PG_FUNCTION_ARGS);
|
2000-09-15 20:45:31 +02:00
|
|
|
extern Datum texticlike(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum texticnlike(PG_FUNCTION_ARGS);
|
2001-09-14 19:46:40 +02:00
|
|
|
extern Datum bytealike(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum byteanlike(PG_FUNCTION_ARGS);
|
2000-09-15 20:45:31 +02:00
|
|
|
extern Datum like_escape(PG_FUNCTION_ARGS);
|
2001-09-14 19:46:40 +02:00
|
|
|
extern Datum like_escape_bytea(PG_FUNCTION_ARGS);
|
1996-11-10 04:06:38 +01:00
|
|
|
|
1997-03-09 21:41:02 +01:00
|
|
|
/* oracle_compat.c */
|
2000-07-06 07:48:31 +02:00
|
|
|
extern Datum lower(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum upper(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum initcap(PG_FUNCTION_ARGS);
|
2000-06-13 09:35:40 +02:00
|
|
|
extern Datum lpad(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum rpad(PG_FUNCTION_ARGS);
|
2000-07-06 07:48:31 +02:00
|
|
|
extern Datum btrim(PG_FUNCTION_ARGS);
|
2003-05-24 00:33:23 +02:00
|
|
|
extern Datum btrim1(PG_FUNCTION_ARGS);
|
2001-09-14 19:46:40 +02:00
|
|
|
extern Datum byteatrim(PG_FUNCTION_ARGS);
|
2000-07-06 07:48:31 +02:00
|
|
|
extern Datum ltrim(PG_FUNCTION_ARGS);
|
2003-05-24 00:33:23 +02:00
|
|
|
extern Datum ltrim1(PG_FUNCTION_ARGS);
|
2000-07-06 07:48:31 +02:00
|
|
|
extern Datum rtrim(PG_FUNCTION_ARGS);
|
2003-05-24 00:33:23 +02:00
|
|
|
extern Datum rtrim1(PG_FUNCTION_ARGS);
|
2000-07-06 07:48:31 +02:00
|
|
|
extern Datum translate(PG_FUNCTION_ARGS);
|
2003-08-08 23:42:59 +02:00
|
|
|
extern Datum chr (PG_FUNCTION_ARGS);
|
2000-06-13 09:35:40 +02:00
|
|
|
extern Datum repeat(PG_FUNCTION_ARGS);
|
2000-07-06 07:48:31 +02:00
|
|
|
extern Datum ascii(PG_FUNCTION_ARGS);
|
1997-03-09 21:41:02 +01:00
|
|
|
|
1998-10-03 07:41:01 +02:00
|
|
|
/* inet_net_ntop.c */
|
2000-08-04 01:07:51 +02:00
|
|
|
extern char *inet_net_ntop(int af, const void *src, int bits,
|
2001-03-22 05:01:46 +01:00
|
|
|
char *dst, size_t size);
|
2000-08-04 01:07:51 +02:00
|
|
|
extern char *inet_cidr_ntop(int af, const void *src, int bits,
|
2001-03-22 05:01:46 +01:00
|
|
|
char *dst, size_t size);
|
1998-10-03 07:41:01 +02:00
|
|
|
|
|
|
|
/* inet_net_pton.c */
|
2001-03-22 05:01:46 +01:00
|
|
|
extern int inet_net_pton(int af, const char *src,
|
|
|
|
void *dst, size_t size);
|
1998-10-03 07:41:01 +02:00
|
|
|
|
1998-10-22 22:40:50 +02:00
|
|
|
/* network.c */
|
2000-08-04 01:07:51 +02:00
|
|
|
extern Datum inet_in(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum inet_out(PG_FUNCTION_ARGS);
|
2003-05-13 20:03:08 +02:00
|
|
|
extern Datum inet_recv(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum inet_send(PG_FUNCTION_ARGS);
|
2000-08-04 01:07:51 +02:00
|
|
|
extern Datum cidr_in(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum cidr_out(PG_FUNCTION_ARGS);
|
2003-05-13 20:03:08 +02:00
|
|
|
extern Datum cidr_recv(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum cidr_send(PG_FUNCTION_ARGS);
|
2000-08-04 01:07:51 +02:00
|
|
|
extern Datum network_cmp(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum network_lt(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum network_le(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum network_eq(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum network_ge(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum network_gt(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum network_ne(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum network_sub(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum network_subeq(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum network_sup(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum network_supeq(PG_FUNCTION_ARGS);
|
2000-07-06 07:48:31 +02:00
|
|
|
extern Datum network_network(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum network_netmask(PG_FUNCTION_ARGS);
|
2003-03-22 00:18:52 +01:00
|
|
|
extern Datum network_hostmask(PG_FUNCTION_ARGS);
|
2000-08-04 01:07:51 +02:00
|
|
|
extern Datum network_masklen(PG_FUNCTION_ARGS);
|
2003-06-25 00:21:24 +02:00
|
|
|
extern Datum network_family(PG_FUNCTION_ARGS);
|
2000-07-06 07:48:31 +02:00
|
|
|
extern Datum network_broadcast(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum network_host(PG_FUNCTION_ARGS);
|
2000-11-10 21:13:27 +01:00
|
|
|
extern Datum network_show(PG_FUNCTION_ARGS);
|
2000-12-22 19:00:24 +01:00
|
|
|
extern Datum network_abbrev(PG_FUNCTION_ARGS);
|
2001-06-10 00:16:18 +02:00
|
|
|
extern double convert_network_to_scalar(Datum value, Oid typid);
|
2001-06-13 23:09:00 +02:00
|
|
|
extern Datum text_cidr(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum text_inet(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum inet_set_masklen(PG_FUNCTION_ARGS);
|
2001-06-17 04:05:20 +02:00
|
|
|
extern Datum network_scan_first(Datum in);
|
|
|
|
extern Datum network_scan_last(Datum in);
|
1998-10-03 07:41:01 +02:00
|
|
|
|
|
|
|
/* mac.c */
|
2000-08-04 01:07:51 +02:00
|
|
|
extern Datum macaddr_in(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum macaddr_out(PG_FUNCTION_ARGS);
|
2003-05-13 20:03:08 +02:00
|
|
|
extern Datum macaddr_recv(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum macaddr_send(PG_FUNCTION_ARGS);
|
2000-08-04 01:07:51 +02:00
|
|
|
extern Datum macaddr_cmp(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum macaddr_lt(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum macaddr_le(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum macaddr_eq(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum macaddr_ge(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum macaddr_gt(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum macaddr_ne(PG_FUNCTION_ARGS);
|
2000-08-23 08:04:49 +02:00
|
|
|
extern Datum macaddr_trunc(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum macaddr_text(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum text_macaddr(PG_FUNCTION_ARGS);
|
2000-12-09 00:57:03 +01:00
|
|
|
extern Datum hashmacaddr(PG_FUNCTION_ARGS);
|
1998-10-03 07:41:01 +02:00
|
|
|
|
1998-12-30 20:56:35 +01:00
|
|
|
/* numeric.c */
|
2000-06-13 09:35:40 +02:00
|
|
|
extern Datum numeric_in(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum numeric_out(PG_FUNCTION_ARGS);
|
2003-05-13 01:08:52 +02:00
|
|
|
extern Datum numeric_recv(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum numeric_send(PG_FUNCTION_ARGS);
|
2000-06-13 09:35:40 +02:00
|
|
|
extern Datum numeric(PG_FUNCTION_ARGS);
|
2000-07-29 05:26:51 +02:00
|
|
|
extern Datum numeric_abs(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum numeric_uminus(PG_FUNCTION_ARGS);
|
2001-06-07 02:09:32 +02:00
|
|
|
extern Datum numeric_uplus(PG_FUNCTION_ARGS);
|
2000-07-29 05:26:51 +02:00
|
|
|
extern Datum numeric_sign(PG_FUNCTION_ARGS);
|
2000-06-13 09:35:40 +02:00
|
|
|
extern Datum numeric_round(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum numeric_trunc(PG_FUNCTION_ARGS);
|
2000-07-29 05:26:51 +02:00
|
|
|
extern Datum numeric_ceil(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum numeric_floor(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum numeric_cmp(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum numeric_eq(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum numeric_ne(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum numeric_gt(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum numeric_ge(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum numeric_lt(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum numeric_le(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum numeric_add(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum numeric_sub(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum numeric_mul(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum numeric_div(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum numeric_mod(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum numeric_inc(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum numeric_smaller(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum numeric_larger(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum numeric_sqrt(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum numeric_exp(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum numeric_ln(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum numeric_log(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum numeric_power(PG_FUNCTION_ARGS);
|
2000-06-13 09:35:40 +02:00
|
|
|
extern Datum int4_numeric(PG_FUNCTION_ARGS);
|
2000-07-29 05:26:51 +02:00
|
|
|
extern Datum numeric_int4(PG_FUNCTION_ARGS);
|
2000-07-17 05:05:41 +02:00
|
|
|
extern Datum int8_numeric(PG_FUNCTION_ARGS);
|
2000-07-29 05:26:51 +02:00
|
|
|
extern Datum numeric_int8(PG_FUNCTION_ARGS);
|
2000-06-05 09:29:25 +02:00
|
|
|
extern Datum int2_numeric(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum numeric_int2(PG_FUNCTION_ARGS);
|
2000-07-29 05:26:51 +02:00
|
|
|
extern Datum float8_numeric(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum numeric_float8(PG_FUNCTION_ARGS);
|
2001-10-14 01:32:34 +02:00
|
|
|
extern Datum numeric_float8_no_overflow(PG_FUNCTION_ARGS);
|
2000-07-29 05:26:51 +02:00
|
|
|
extern Datum float4_numeric(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum numeric_float4(PG_FUNCTION_ARGS);
|
Extend pg_cast castimplicit column to a three-way value; this allows us
to be flexible about assignment casts without introducing ambiguity in
operator/function resolution. Introduce a well-defined promotion hierarchy
for numeric datatypes (int2->int4->int8->numeric->float4->float8).
Change make_const to initially label numeric literals as int4, int8, or
numeric (never float8 anymore).
Explicitly mark Func and RelabelType nodes to indicate whether they came
from a function call, explicit cast, or implicit cast; use this to do
reverse-listing more accurately and without so many heuristics.
Explicit casts to char, varchar, bit, varbit will truncate or pad without
raising an error (the pre-7.2 behavior), while assigning to a column without
any explicit cast will still raise an error for wrong-length data like 7.3.
This more nearly follows the SQL spec than 7.2 behavior (we should be
reporting a 'completion condition' in the explicit-cast cases, but we have
no mechanism for that, so just do silent truncation).
Fix some problems with enforcement of typmod for array elements;
it didn't work at all in 'UPDATE ... SET array[n] = foo', for example.
Provide a generalized array_length_coerce() function to replace the
specialized per-array-type functions that used to be needed (and were
missing for NUMERIC as well as all the datetime types).
Add missing conversions int8<->float4, text<->numeric, oid<->int8.
initdb forced.
2002-09-18 23:35:25 +02:00
|
|
|
extern Datum text_numeric(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum numeric_text(PG_FUNCTION_ARGS);
|
2000-07-17 05:05:41 +02:00
|
|
|
extern Datum numeric_accum(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int2_accum(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int4_accum(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int8_accum(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum numeric_avg(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum numeric_variance(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum numeric_stddev(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int2_sum(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int4_sum(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int8_sum(PG_FUNCTION_ARGS);
|
2001-08-15 00:21:59 +02:00
|
|
|
extern Datum int2_avg_accum(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int4_avg_accum(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum int8_avg(PG_FUNCTION_ARGS);
|
1998-12-30 20:56:35 +01:00
|
|
|
|
1999-09-30 16:54:24 +02:00
|
|
|
/* ri_triggers.c */
|
2000-05-29 03:59:17 +02:00
|
|
|
extern Datum RI_FKey_check_ins(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum RI_FKey_check_upd(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum RI_FKey_noaction_del(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum RI_FKey_noaction_upd(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum RI_FKey_cascade_del(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum RI_FKey_cascade_upd(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum RI_FKey_restrict_del(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum RI_FKey_restrict_upd(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum RI_FKey_setnull_del(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum RI_FKey_setnull_upd(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum RI_FKey_setdefault_del(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum RI_FKey_setdefault_upd(PG_FUNCTION_ARGS);
|
1998-10-03 07:41:01 +02:00
|
|
|
|
2002-09-03 23:45:44 +02:00
|
|
|
/* encoding support functions */
|
2000-06-13 09:35:40 +02:00
|
|
|
extern Datum getdatabaseencoding(PG_FUNCTION_ARGS);
|
Commit Karel's patch.
-------------------------------------------------------------------
Subject: Re: [PATCHES] encoding names
From: Karel Zak <zakkr@zf.jcu.cz>
To: Peter Eisentraut <peter_e@gmx.net>
Cc: pgsql-patches <pgsql-patches@postgresql.org>
Date: Fri, 31 Aug 2001 17:24:38 +0200
On Thu, Aug 30, 2001 at 01:30:40AM +0200, Peter Eisentraut wrote:
> > - convert encoding 'name' to 'id'
>
> I thought we decided not to add functions returning "new" names until we
> know exactly what the new names should be, and pending schema
Ok, the patch not to add functions.
> better
>
> ...(): encoding name too long
Fixed.
I found new bug in command/variable.c in parse_client_encoding(), nobody
probably never see this error:
if (pg_set_client_encoding(encoding))
{
elog(ERROR, "Conversion between %s and %s is not supported",
value, GetDatabaseEncodingName());
}
because pg_set_client_encoding() returns -1 for error and 0 as true.
It's fixed too.
IMHO it can be apply.
Karel
PS:
* following files are renamed:
src/utils/mb/Unicode/KOI8_to_utf8.map -->
src/utils/mb/Unicode/koi8r_to_utf8.map
src/utils/mb/Unicode/WIN_to_utf8.map -->
src/utils/mb/Unicode/win1251_to_utf8.map
src/utils/mb/Unicode/utf8_to_KOI8.map -->
src/utils/mb/Unicode/utf8_to_koi8r.map
src/utils/mb/Unicode/utf8_to_WIN.map -->
src/utils/mb/Unicode/utf8_to_win1251.map
* new file:
src/utils/mb/encname.c
* removed file:
src/utils/mb/common.c
--
Karel Zak <zakkr@zf.jcu.cz>
http://home.zf.jcu.cz/~zakkr/
C, PostgreSQL, PHP, WWW, http://docs.linux.cz, http://mape.jcu.cz
2001-09-06 06:57:30 +02:00
|
|
|
extern Datum database_character_set(PG_FUNCTION_ARGS);
|
2001-10-13 18:34:08 +02:00
|
|
|
extern Datum pg_client_encoding(PG_FUNCTION_ARGS);
|
2000-06-13 09:35:40 +02:00
|
|
|
extern Datum PG_encoding_to_char(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum PG_char_to_encoding(PG_FUNCTION_ARGS);
|
Commit Karel's patch.
-------------------------------------------------------------------
Subject: Re: [PATCHES] encoding names
From: Karel Zak <zakkr@zf.jcu.cz>
To: Peter Eisentraut <peter_e@gmx.net>
Cc: pgsql-patches <pgsql-patches@postgresql.org>
Date: Fri, 31 Aug 2001 17:24:38 +0200
On Thu, Aug 30, 2001 at 01:30:40AM +0200, Peter Eisentraut wrote:
> > - convert encoding 'name' to 'id'
>
> I thought we decided not to add functions returning "new" names until we
> know exactly what the new names should be, and pending schema
Ok, the patch not to add functions.
> better
>
> ...(): encoding name too long
Fixed.
I found new bug in command/variable.c in parse_client_encoding(), nobody
probably never see this error:
if (pg_set_client_encoding(encoding))
{
elog(ERROR, "Conversion between %s and %s is not supported",
value, GetDatabaseEncodingName());
}
because pg_set_client_encoding() returns -1 for error and 0 as true.
It's fixed too.
IMHO it can be apply.
Karel
PS:
* following files are renamed:
src/utils/mb/Unicode/KOI8_to_utf8.map -->
src/utils/mb/Unicode/koi8r_to_utf8.map
src/utils/mb/Unicode/WIN_to_utf8.map -->
src/utils/mb/Unicode/win1251_to_utf8.map
src/utils/mb/Unicode/utf8_to_KOI8.map -->
src/utils/mb/Unicode/utf8_to_koi8r.map
src/utils/mb/Unicode/utf8_to_WIN.map -->
src/utils/mb/Unicode/utf8_to_win1251.map
* new file:
src/utils/mb/encname.c
* removed file:
src/utils/mb/common.c
--
Karel Zak <zakkr@zf.jcu.cz>
http://home.zf.jcu.cz/~zakkr/
C, PostgreSQL, PHP, WWW, http://docs.linux.cz, http://mape.jcu.cz
2001-09-06 06:57:30 +02:00
|
|
|
extern Datum PG_character_set_name(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum PG_character_set_id(PG_FUNCTION_ARGS);
|
2001-08-15 09:07:40 +02:00
|
|
|
extern Datum pg_convert(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum pg_convert2(PG_FUNCTION_ARGS);
|
2000-06-13 09:35:40 +02:00
|
|
|
|
2000-07-09 23:30:21 +02:00
|
|
|
/* format_type.c */
|
2000-07-07 21:24:43 +02:00
|
|
|
extern Datum format_type(PG_FUNCTION_ARGS);
|
2001-10-25 07:50:21 +02:00
|
|
|
extern char *format_type_be(Oid type_oid);
|
|
|
|
extern char *format_type_with_typemod(Oid type_oid, int32 typemod);
|
2000-07-09 23:30:21 +02:00
|
|
|
extern Datum oidvectortypes(PG_FUNCTION_ARGS);
|
2000-08-25 20:05:54 +02:00
|
|
|
extern int32 type_maximum_size(Oid type_oid, int32 typemod);
|
2000-07-07 21:24:43 +02:00
|
|
|
|
2000-09-05 22:25:14 +02:00
|
|
|
/* quote.c */
|
|
|
|
extern Datum quote_ident(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum quote_literal(PG_FUNCTION_ARGS);
|
2001-10-28 07:26:15 +01:00
|
|
|
|
2002-07-20 07:49:28 +02:00
|
|
|
/* guc.c */
|
|
|
|
extern Datum show_config_by_name(PG_FUNCTION_ARGS);
|
|
|
|
extern Datum set_config_by_name(PG_FUNCTION_ARGS);
|
2002-08-15 04:51:27 +02:00
|
|
|
extern Datum show_all_settings(PG_FUNCTION_ARGS);
|
2002-07-20 07:49:28 +02:00
|
|
|
|
2002-08-29 02:17:06 +02:00
|
|
|
/* lockfuncs.c */
|
|
|
|
extern Datum pg_lock_status(PG_FUNCTION_ARGS);
|
|
|
|
|
2002-08-06 16:11:06 +02:00
|
|
|
/* catalog/pg_conversion.c */
|
2002-11-02 19:41:22 +01:00
|
|
|
extern Datum pg_convert_using(PG_FUNCTION_ARGS);
|
2002-08-06 16:11:06 +02:00
|
|
|
|
2001-11-05 18:46:40 +01:00
|
|
|
#endif /* BUILTINS_H */
|