aboutsummaryrefslogtreecommitdiff
path: root/src/include/utils/builtins.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/include/utils/builtins.h')
-rw-r--r--src/include/utils/builtins.h126
1 files changed, 92 insertions, 34 deletions
diff --git a/src/include/utils/builtins.h b/src/include/utils/builtins.h
index cabfa017739..39739fb6ebc 100644
--- a/src/include/utils/builtins.h
+++ b/src/include/utils/builtins.h
@@ -6,7 +6,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
- * $Id: builtins.h,v 1.6 1996/11/04 11:51:14 scrappy Exp $
+ * $Id: builtins.h,v 1.7 1996/11/10 03:06:18 momjian Exp $
*
* NOTES
* This should normally only be included by fmgr.h.
@@ -20,6 +20,7 @@
#include <storage/itemptr.h>
#include <utils/geo-decls.h>
+#include <utils/datetime.h>
#include <utils/nabstime.h>
#include <utils/rel.h>
@@ -183,41 +184,30 @@ extern int atof1(char *str, double *val);
* Per-opclass comparison functions for new btrees. These are
* stored in pg_amproc and defined in nbtree/
*/
-extern int32 btint2cmp();
-extern int32 btint4cmp();
-extern int32 btint24cmp();
-extern int32 btint42cmp();
-extern int32 btfloat4cmp();
-extern int32 btfloat8cmp();
-extern int32 btoidcmp();
-extern int32 btabstimecmp();
-extern int32 btcharcmp();
-extern int32 btchar16cmp();
-extern int32 bttextcmp();
-
-/*
- * RTree code.
- * Defined in access/index-rtree/
- */
-extern char *rtinsert();
-extern char *rtdelete();
-extern char *rtgettuple();
-extern char *rtbeginscan();
-extern void rtendscan();
-extern void rtreebuild();
-extern void rtmarkpos();
-extern void rtrestrpos();
-extern void rtrescan();
-extern void rtbuild();
+extern int32 btint2cmp(int16 a, int16 b);
+extern int32 btint4cmp(int32 a, int32 b);
+extern int32 btint24cmp(int16 a, int32 b);
+extern int32 btint42cmp(int32 a, int16 b);
+extern int32 btfloat4cmp(float32 a, float32 b);
+extern int32 btfloat8cmp(float64 a, float64 b);
+extern int32 btoidcmp(Oid a, Oid b);
+extern int32 btabstimecmp(AbsoluteTime a, AbsoluteTime b);
+extern int32 btcharcmp(char a, char b);
+extern int32 btchar2cmp(uint16 a, uint16 b);
+extern int32 btchar4cmp(uint32 a, uint32 b);
+extern int32 btchar8cmp(char *a, char *b);
+extern int32 btchar16cmp(char *a, char *b);
+extern int32 btnamecmp(NameData *a, NameData *b);
+extern int32 bttextcmp(struct varlena *a, struct varlena *b);
/* support routines for the rtree access method, by opclass */
-extern BOX *rt_box_union();
-extern BOX *rt_box_inter();
-extern float *rt_box_size();
-extern float *rt_bigbox_size();
-extern float *rt_poly_size();
-extern POLYGON *rt_poly_union();
-extern POLYGON *rt_poly_inter();
+extern BOX *rt_box_union(BOX *a,BOX *b);
+extern BOX *rt_box_inter(BOX *a, BOX *b);
+extern void rt_box_size(BOX *a, float *size);
+extern void rt_bigbox_size(BOX *a,float *size);
+extern void rt_poly_size(POLYGON *a, float *size);
+extern POLYGON *rt_poly_union(POLYGON *a, POLYGON *b);
+extern POLYGON *rt_poly_inter(POLYGON *a, POLYGON *b);
/* projection utilities */
/* extern char *GetAttributeByName();
@@ -259,6 +249,7 @@ extern int32 intervalov(TimeInterval i1, TimeInterval i2);
extern AbsoluteTime intervalstart(TimeInterval i);
extern AbsoluteTime intervalend(TimeInterval i);
extern int isreltime(char *timestring, int *sign, long *quantity, int *unitnr);
+extern text *timeofday(void);
/* dt.c */
extern int32 dtin(char *datetime);
@@ -338,6 +329,8 @@ extern long float84ge(float64 arg1, float32 arg2);
/* misc.c */
extern bool NullValue(Datum value, bool *isNull);
extern bool NonNullValue(Datum value, bool *isNull);
+extern bool oidrand(Oid o, int32 X);
+extern bool oidsrand(int32 X);
extern int32 userfntest(int i);
/* not_in.c */
@@ -353,6 +346,8 @@ extern char *oidout(Oid o);
extern int32 oideq(Oid arg1, Oid arg2);
extern int32 oidne(Oid arg1, Oid arg2);
extern int32 oid8eq(Oid arg1[], Oid arg2[]);
+extern bool oideqint4(Oid arg1, int32 arg2);
+extern bool int4eqoid(int32 arg1, Oid arg2);
/* regexp.c */
extern bool char2regexeq(uint16 arg1, struct varlena *p);
@@ -363,6 +358,8 @@ extern bool char8regexeq(char *s, struct varlena *p);
extern bool char8regexne(char *s, struct varlena *p);
extern bool char16regexeq(char *s, struct varlena *p);
extern bool char16regexne(char *s, struct varlena *p);
+extern bool nameregexeq(NameData *n, struct varlena *p);
+extern bool nameregexne(NameData *s, struct varlena *p);
extern bool textregexeq(struct varlena *s, struct varlena *p);
extern bool textregexne(struct varlena *s, struct varlena *p);
extern bool char2icregexeq(uint16 arg1, struct varlena *p);
@@ -399,10 +396,33 @@ extern float64 hashsel(Oid operatorOid, Oid indrelid, AttrNumber attributeNumber
extern float64 hashnpage(Oid operatorOid, Oid indrelid, AttrNumber attributeNumber, char *constValue, int32 constFlag, int32 nIndexKeys, Oid indexrelid);
extern float64 rtsel(Oid operatorOid, Oid indrelid, AttrNumber attributeNumber, char *constValue, int32 constFlag, int32 nIndexKeys, Oid indexrelid);
extern float64 rtnpage(Oid operatorOid, Oid indrelid, AttrNumber attributeNumber, char *constValue, int32 constFlag, int32 nIndexKeys, Oid indexrelid);
+extern float64 gistsel(Oid operatorObjectId, Oid indrelid, AttrNumber attributeNumber, char *constValue, int32 constFlag, int32 nIndexKeys, Oid indexrelid);
+extern float64 gistnpage(Oid operatorObjectId, Oid indrelid, AttrNumber attributeNumber, char *constValue, int32 constFlag, int32 nIndexKeys, Oid indexrelid);
/* tid.c */
extern ItemPointer tidin(char *str);
extern char *tidout(ItemPointer itemPtr);
+/* varchar.c */
+extern char *bpcharin(char *s, int dummy, int typlen);
+extern char *bpcharout(char *s);
+extern char *varcharin(char *s, int dummy, int typlen);
+extern char *varcharout(char *s);
+extern int32 bpchareq(char *arg1, char *arg2);
+extern int32 bpcharne(char *arg1, char *arg2);
+extern int32 bpcharlt(char *arg1, char *arg2);
+extern int32 bpcharle(char *arg1, char *arg2);
+extern int32 bpchargt(char *arg1, char *arg2);
+extern int32 bpcharge(char *arg1, char *arg2);
+extern int32 bpcharcmp(char *arg1, char *arg2);
+extern int32 varchareq(char *arg1, char *arg2);
+extern int32 varcharne(char *arg1, char *arg2);
+extern int32 varcharlt(char *arg1, char *arg2);
+extern int32 varcharle(char *arg1, char *arg2);
+extern int32 varchargt(char *arg1, char *arg2);
+extern int32 varcharge(char *arg1, char *arg2);
+extern int32 varcharcmp(char *arg1, char *arg2);
+extern uint32 hashbpchar(struct varlena *key);
+extern uint32 hashvarchar(struct varlena *key);
/* varlena.c */
extern struct varlena *byteain(char *inputText);
@@ -410,6 +430,8 @@ extern struct varlena *shove_bytes(unsigned char *stuff, int len);
extern char *byteaout(struct varlena *vlena);
extern struct varlena *textin(char *inputText);
extern char *textout(struct varlena *vlena);
+extern int textlen (text* t);
+extern text *textcat(text* t1, text* t2);
extern int32 texteq(struct varlena *arg1, struct varlena *arg2);
extern int32 textne(struct varlena *arg1, struct varlena *arg2);
extern int32 text_lt(struct varlena *arg1, struct varlena *arg2);
@@ -422,6 +444,42 @@ extern int32 byteaGetBit(struct varlena *v, int32 n);
extern struct varlena *byteaSetByte(struct varlena *v, int32 n, int32 newByte);
extern struct varlena *byteaSetBit(struct varlena *v, int32 n, int32 newBit);
+/* datetimes.c */
+extern int4 date_in(char *datestr);
+extern char *date_out(int4 dateVal);
+extern int date_eq(int4 dateVal1, int4 dateVal2);
+extern int date_ne(int4 dateVal1, int4 dateVal2);
+extern int date_lt(int4 dateVal1, int4 dateVal2);
+extern int date_le(int4 dateVal1, int4 dateVal2);
+extern int date_gt(int4 dateVal1, int4 dateVal2);
+extern int date_ge(int4 dateVal1, int4 dateVal2);
+extern int date_cmp(int4 dateVal1, int4 dateVal2);
+extern char *time_in(char *timestr);
+extern char *time_out(TimeADT *time);
+extern int time_eq(TimeADT *time1, TimeADT *time2);
+extern int time_ne(TimeADT *time1, TimeADT *time2);
+extern int time_lt(TimeADT *time1, TimeADT *time2);
+extern int time_le(TimeADT *time1, TimeADT *time2);
+extern int time_gt(TimeADT *time1, TimeADT *time2);
+extern int time_ge(TimeADT *time1, TimeADT *time2);
+extern int time_cmp(TimeADT *time1, TimeADT *time2);
+extern int32 int42reltime(int32 timevalue);
+
+/* like.c */
+extern bool char2like(uint16 arg1, struct varlena *p);
+extern bool char2nlike(uint16 arg1, struct varlena *p);
+extern bool char4like(uint32 arg1, struct varlena *p);
+extern bool char4nlike(uint32 arg1, struct varlena *p);
+extern bool char8like(char *s, struct varlena *p);
+extern bool char8nlike(char *s, struct varlena *p);
+extern bool char16like(char *s, struct varlena *p);
+extern bool char16nlike(char *s, struct varlena *p);
+extern bool namelike(NameData *n, struct varlena *p);
+extern bool namenlike(NameData *s, struct varlena *p);
+extern bool textlike(struct varlena *s, struct varlena *p);
+extern bool textnlike(struct varlena *s, struct varlena *p);
+extern int like(char *text, char *p);
+
/* acl.c */
#endif /* BUILTINS_H */