From 7bfb924aea0a459540a58db002f5a6b00842ff08 Mon Sep 17 00:00:00 2001 From: Bryan Henderson Date: Sun, 5 Jan 1997 21:20:34 +0000 Subject: [PATCH] Silence compiler warnings, fix error in complex compare function. --- src/tutorial/C-code/complex.c | 23 ++++++++++++++++++++++- src/tutorial/C-code/funcs.c | 21 +++++++++++++++++++++ 2 files changed, 43 insertions(+), 1 deletion(-) diff --git a/src/tutorial/C-code/complex.c b/src/tutorial/C-code/complex.c index e554b7fcfb..8c83665c80 100644 --- a/src/tutorial/C-code/complex.c +++ b/src/tutorial/C-code/complex.c @@ -1,3 +1,9 @@ +/****************************************************************************** + This file contains routines that can be bound to a Postgres backend and + called by the backend in the process of processing queries. The calling + format for these routines is dictated by Postgres architecture. +******************************************************************************/ + #include /* do not include libpq-fe.h for backend-loaded functions*/ /* #include "libpq-fe.h" */ @@ -11,6 +17,20 @@ typedef struct Complex { double y; } Complex; +/* These prototypes declare the requirements that Postgres places on these + user written functions. +*/ +Complex * complex_in(char *str); +char * complex_out(Complex *complex); +Complex * complex_add(Complex *a, Complex *b); +bool complex_abs_lt(Complex *a, Complex *b); +bool complex_abs_le(Complex *a, Complex *b); +bool complex_abs_eq(Complex *a, Complex *b); +bool complex_abs_ge(Complex *a, Complex *b); +bool complex_abs_gt(Complex *a, Complex *b); +int4 complex_abs_cmp(Complex *a, Complex *b); + + /***************************************************************************** * Input/Output functions *****************************************************************************/ @@ -48,7 +68,7 @@ complex_out(Complex *complex) return(NULL); result = (char *) palloc(60); - sprintf(result, "(%lg,%lg)", complex->x, complex->y); + sprintf(result, "(%g,%g)", complex->x, complex->y); return(result); } @@ -131,6 +151,7 @@ complex_abs_cmp(Complex *a, Complex *b) * POSTGRES crashing, it is impossible to tell whether the bug is in your * code or POSTGRES's. */ +void test_main(void); void test_main() { diff --git a/src/tutorial/C-code/funcs.c b/src/tutorial/C-code/funcs.c index f91b4d6205..a721b2bbfd 100644 --- a/src/tutorial/C-code/funcs.c +++ b/src/tutorial/C-code/funcs.c @@ -1,8 +1,29 @@ +/****************************************************************************** + These are user-defined functions that can be bound to a Postgres backend + and called by Postgres to execute SQL functions of the same name. + + The calling format for these functions is defined by the CREATE FUNCTION + SQL statement that binds them to the backend. +*****************************************************************************/ + #include #include #include "postgres.h" /* for char16, etc. */ #include "utils/palloc.h" /* for palloc */ #include "libpq-fe.h" /* for TUPLE */ +#include "executor/executor.h" /* for GetAttributeByName() */ + +/* The following prototypes declare what we assume the user declares to + Postgres in his CREATE FUNCTION statement. +*/ + +int add_one(int arg); +char16 * concat16(char16 *arg1, char16 *arg2); +text * copytext(text *t); +bool c_overpaid(TUPLE t, /* the current instance of EMP */ + int4 limit); + + int add_one(int arg)