* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
+ * notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
+ * must display the following acknowledgement:
* This product includes software developed by the University of
* California, Berkeley and its contributors.
* 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
#if defined(LIBC_SCCS) && !defined(lint)
static char sccsid[] = "@(#)system.c 8.1 (Berkeley) 6/4/93";
-#endif /* LIBC_SCCS and not lint */
+#endif /* LIBC_SCCS and not lint */
#include <sys/types.h>
#include <sys/wait.h>
#include <paths.h>
#include <errno.h>
-int system(const char *command);
+int system(const char *command);
int
system(const char *command)
{
- pid_t pid;
- int pstat;
- struct sigaction ign, intact, quitact;
- sigset_t newsigblock, oldsigblock;
+ pid_t pid;
+ int pstat;
+ struct sigaction ign,
+ intact,
+ quitact;
+ sigset_t newsigblock,
+ oldsigblock;
- if (!command) /* just checking... */
- return(1);
+ if (!command) /* just checking... */
+ return (1);
/*
- * Ignore SIGINT and SIGQUIT, block SIGCHLD. Remember to save
- * existing signal dispositions.
+ * Ignore SIGINT and SIGQUIT, block SIGCHLD. Remember to save existing
+ * signal dispositions.
*/
ign.sa_handler = SIG_IGN;
- (void)sigemptyset(&ign.sa_mask);
+ (void) sigemptyset(&ign.sa_mask);
ign.sa_flags = 0;
- (void)sigaction(SIGINT, &ign, &intact);
- (void)sigaction(SIGQUIT, &ign, &quitact);
- (void)sigemptyset(&newsigblock);
- (void)sigaddset(&newsigblock, SIGCHLD);
- (void)sigprocmask(SIG_BLOCK, &newsigblock, &oldsigblock);
- switch(pid = fork()) {
- case -1: /* error */
- break;
- case 0: /* child */
- /*
- * Restore original signal dispositions and exec the command.
- */
- (void)sigaction(SIGINT, &intact, NULL);
- (void)sigaction(SIGQUIT, &quitact, NULL);
- (void)sigprocmask(SIG_SETMASK, &oldsigblock, NULL);
- execl(_PATH_BSHELL, "sh", "-c", command, (char *)NULL);
- _exit(127);
- default: /* parent */
- do {
- pid = wait4(pid, &pstat, 0, (struct rusage *)0);
- } while (pid == -1 && errno == EINTR);
- break;
+ (void) sigaction(SIGINT, &ign, &intact);
+ (void) sigaction(SIGQUIT, &ign, &quitact);
+ (void) sigemptyset(&newsigblock);
+ (void) sigaddset(&newsigblock, SIGCHLD);
+ (void) sigprocmask(SIG_BLOCK, &newsigblock, &oldsigblock);
+ switch (pid = fork())
+ {
+ case -1: /* error */
+ break;
+ case 0: /* child */
+
+ /*
+ * Restore original signal dispositions and exec the command.
+ */
+ (void) sigaction(SIGINT, &intact, NULL);
+ (void) sigaction(SIGQUIT, &quitact, NULL);
+ (void) sigprocmask(SIG_SETMASK, &oldsigblock, NULL);
+ execl(_PATH_BSHELL, "sh", "-c", command, (char *) NULL);
+ _exit(127);
+ default: /* parent */
+ do
+ {
+ pid = wait4(pid, &pstat, 0, (struct rusage *) 0);
+ } while (pid == -1 && errno == EINTR);
+ break;
}
- (void)sigaction(SIGINT, &intact, NULL);
- (void)sigaction(SIGQUIT, &quitact, NULL);
- (void)sigprocmask(SIG_SETMASK, &oldsigblock, NULL);
- return(pid == -1 ? -1 : pstat);
+ (void) sigaction(SIGINT, &intact, NULL);
+ (void) sigaction(SIGQUIT, &quitact, NULL);
+ (void) sigprocmask(SIG_SETMASK, &oldsigblock, NULL);
+ return (pid == -1 ? -1 : pstat);
}
/*
- * $Id: aix.h,v 1.9 2001/11/05 17:46:27 momjian Exp $
+ * $Id: aix.h,v 1.10 2001/11/08 20:37:52 momjian Exp $
*
* @(#)dlfcn.h 1.4 revision of 95/04/25 09:36:52
* This is an unpublished work copyright (c) 1992 HELIOS Software GmbH
* To be able to intialize, a library may provide a dl_info structure
* that contains functions to be called to initialize and terminate.
*/
- struct dl_info
- {
- void (*init) (void);
- void (*fini) (void);
- };
+struct dl_info
+{
+ void (*init) (void);
+ void (*fini) (void);
+};
#if __STDC__ || defined(_IBMR2)
- void *dlopen(const char *path, int mode);
- void *dlsym(void *handle, const char *symbol);
- char *dlerror(void);
- int dlclose(void *handle);
+void *dlopen(const char *path, int mode);
+void *dlsym(void *handle, const char *symbol);
+char *dlerror(void);
+int dlclose(void *handle);
#else
- void *dlopen();
- void *dlsym();
- char *dlerror();
- int dlclose();
+void *dlopen();
+void *dlsym();
+char *dlerror();
+int dlclose();
#endif
#ifdef __cplusplus
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/port/qnx4/Attic/sem.h,v 1.6 2001/11/05 17:46:27 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/port/qnx4/Attic/sem.h,v 1.7 2001/11/08 20:37:52 momjian Exp $
*
*-------------------------------------------------------------------------
*/
* There is one semaphore structure for each semaphore in the system.
*/
- struct sem
- {
- ushort_t semval; /* semaphore text map address */
- pid_t sempid; /* pid of last operation */
- ushort_t semncnt; /* # awaiting semval > cval */
- ushort_t semzcnt; /* # awaiting semval = 0 */
- };
+struct sem
+{
+ ushort_t semval; /* semaphore text map address */
+ pid_t sempid; /* pid of last operation */
+ ushort_t semncnt; /* # awaiting semval > cval */
+ ushort_t semzcnt; /* # awaiting semval = 0 */
+};
/*
* User semaphore template for semop system calls.
*/
- struct sembuf
- {
- ushort_t sem_num; /* semaphore # */
- short sem_op; /* semaphore operation */
- short sem_flg; /* operation flags */
- };
+struct sembuf
+{
+ ushort_t sem_num; /* semaphore # */
+ short sem_op; /* semaphore operation */
+ short sem_flg; /* operation flags */
+};
- extern int semctl(int semid, int semnum, int cmd, /* ... */ union semun arg);
- extern int semget(key_t key, int nsems, int semflg);
- extern int semop(int semid, struct sembuf * sops, size_t nsops);
+extern int semctl(int semid, int semnum, int cmd, /* ... */ union semun arg);
+extern int semget(key_t key, int nsems, int semflg);
+extern int semop(int semid, struct sembuf * sops, size_t nsops);
#ifdef __cplusplus
}
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/port/qnx4/Attic/shm.h,v 1.6 2001/11/05 17:46:27 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/port/qnx4/Attic/shm.h,v 1.7 2001/11/08 20:37:52 momjian Exp $
*
*-------------------------------------------------------------------------
*/
#define SHM_R 0400 /* read permission */
#define SHM_W 0200 /* write permission */
- struct shmid_ds
- {
- int dummy;
- int shm_nattch;
- };
-
- extern void *shmat(int shmid, const void *shmaddr, int shmflg);
- extern int shmdt(const void *addr);
- extern int shmctl(int shmid, int cmd, struct shmid_ds * buf);
- extern int shmget(key_t key, size_t size, int flags);
+struct shmid_ds
+{
+ int dummy;
+ int shm_nattch;
+};
+
+extern void *shmat(int shmid, const void *shmaddr, int shmflg);
+extern int shmdt(const void *addr);
+extern int shmctl(int shmid, int cmd, struct shmid_ds * buf);
+extern int shmget(key_t key, size_t size, int flags);
#ifdef __cplusplus
}
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/storage/lmgr/proc.c,v 1.115 2001/11/06 00:38:26 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/storage/lmgr/proc.c,v 1.116 2001/11/08 20:37:52 momjian Exp $
*
*-------------------------------------------------------------------------
*/
/*
* Compute size for ProcGlobal structure. Note we need one more sema
* besides those used for regular backends; this is accounted for in
- * the PROC_SEM_MAP_ENTRIES macro. (We do it that way so that other
+ * the PROC_SEM_MAP_ENTRIES macro. (We do it that way so that other
* modules that use PROC_SEM_MAP_ENTRIES(maxBackends) to size data
* structures don't have to know about this explicitly.)
*/
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $Id: tgRecipe.h,v 1.21 2001/11/05 17:46:28 momjian Exp $
+ * $Id: tgRecipe.h,v 1.22 2001/11/08 20:37:52 momjian Exp $
*
*-------------------------------------------------------------------------
*/
y;
} Point; /* this should match whatever is in
+ *
*
*
* geo-decls.h */
*
* spi.h
*
- * $Id: spi.h,v 1.32 2001/11/05 19:41:56 tgl Exp $
+ * $Id: spi.h,v 1.33 2001/11/08 20:37:52 momjian Exp $
*
*-------------------------------------------------------------------------
*/
extern HeapTuple SPI_copytuple(HeapTuple tuple);
extern TupleDesc SPI_copytupledesc(TupleDesc tupdesc);
extern TupleTableSlot *SPI_copytupleintoslot(HeapTuple tuple,
- TupleDesc tupdesc);
+ TupleDesc tupdesc);
extern HeapTuple SPI_modifytuple(Relation rel, HeapTuple tuple, int natts,
int *attnum, Datum *Values, char *Nulls);
extern int SPI_fnumber(TupleDesc tupdesc, char *fname);
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/include/port/darwin/Attic/sem.h,v 1.5 2001/11/05 17:46:35 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/include/port/darwin/Attic/sem.h,v 1.6 2001/11/08 20:37:52 momjian Exp $
*
*-------------------------------------------------------------------------
*/
* There is one semaphore structure for each semaphore in the system.
*/
- struct sem
- {
- ushort_t semval; /* semaphore text map address */
- pid_t sempid; /* pid of last operation */
- ushort_t semncnt; /* # awaiting semval > cval */
- ushort_t semzcnt; /* # awaiting semval = 0 */
- };
+struct sem
+{
+ ushort_t semval; /* semaphore text map address */
+ pid_t sempid; /* pid of last operation */
+ ushort_t semncnt; /* # awaiting semval > cval */
+ ushort_t semzcnt; /* # awaiting semval = 0 */
+};
/*
* User semaphore template for semop system calls.
*/
- struct sembuf
- {
- ushort_t sem_num; /* semaphore # */
- short sem_op; /* semaphore operation */
- short sem_flg; /* operation flags */
- };
+struct sembuf
+{
+ ushort_t sem_num; /* semaphore # */
+ short sem_op; /* semaphore operation */
+ short sem_flg; /* operation flags */
+};
- extern int semctl(int semid, int semnum, int cmd, /* ... */ union semun arg);
- extern int semget(key_t key, int nsems, int semflg);
- extern int semop(int semid, struct sembuf * sops, size_t nsops);
+extern int semctl(int semid, int semnum, int cmd, /* ... */ union semun arg);
+extern int semget(key_t key, int nsems, int semflg);
+extern int semop(int semid, struct sembuf * sops, size_t nsops);
#ifdef __cplusplus
}
{
#endif
- void ECPGdebug(int, FILE *);
- bool ECPGstatus(int, const char *);
- bool ECPGsetcommit(int, const char *, const char *);
- bool ECPGsetconn(int, const char *);
- bool ECPGconnect(int, const char *, const char *, const char *, const char *, int);
- bool ECPGdo(int, const char *, char *,...);
- bool ECPGtrans(int, const char *, const char *);
- bool ECPGdisconnect(int, const char *);
- bool ECPGprepare(int, char *, char *);
- bool ECPGdeallocate(int, char *);
- bool ECPGdeallocate_all(int);
- char *ECPGprepared_statement(char *);
-
- void ECPGlog(const char *format,...);
-
- /* print an error message */
- void sqlprint(void);
+void ECPGdebug(int, FILE *);
+bool ECPGstatus(int, const char *);
+bool ECPGsetcommit(int, const char *, const char *);
+bool ECPGsetconn(int, const char *);
+bool ECPGconnect(int, const char *, const char *, const char *, const char *, int);
+bool ECPGdo(int, const char *, char *,...);
+bool ECPGtrans(int, const char *, const char *);
+bool ECPGdisconnect(int, const char *);
+bool ECPGprepare(int, char *, char *);
+bool ECPGdeallocate(int, char *);
+bool ECPGdeallocate_all(int);
+char *ECPGprepared_statement(char *);
+
+void ECPGlog(const char *format,...);
+
+ /* print an error message */
+void sqlprint(void);
/* define this for simplicity as well as compatibility */
/* dynamic SQL */
- bool ECPGdo_descriptor(int line, const char *connection,
- const char *descriptor, const char *query);
- bool ECPGdeallocate_desc(int line, const char *name);
- bool ECPGallocate_desc(int line, const char *name);
- void ECPGraise(int line, int code, const char *str);
- bool ECPGget_desc_header(int, char *, int *);
- bool ECPGget_desc(int, char *, int,...);
+bool ECPGdo_descriptor(int line, const char *connection,
+ const char *descriptor, const char *query);
+bool ECPGdeallocate_desc(int line, const char *name);
+bool ECPGallocate_desc(int line, const char *name);
+void ECPGraise(int line, int code, const char *str);
+bool ECPGget_desc_header(int, char *, int *);
+bool ECPGget_desc(int, char *, int,...);
#ifdef __cplusplus
}
-
#endif
{
#endif
- enum ECPGttype
- {
- ECPGt_char = 1, ECPGt_unsigned_char, ECPGt_short, ECPGt_unsigned_short,
- ECPGt_int, ECPGt_unsigned_int, ECPGt_long, ECPGt_unsigned_long,
- ECPGt_bool,
- ECPGt_float, ECPGt_double,
- ECPGt_varchar, ECPGt_varchar2,
- ECPGt_array,
- ECPGt_struct,
- ECPGt_union,
- ECPGt_char_variable,
- ECPGt_EOIT, /* End of insert types. */
- ECPGt_EORT, /* End of result types. */
- ECPGt_NO_INDICATOR, /* no indicator */
- ECPGt_long_long, ECPGt_unsigned_long_long,
- ECPGt_descriptor /* sql descriptor, no C variable */
- };
+enum ECPGttype
+{
+ ECPGt_char = 1, ECPGt_unsigned_char, ECPGt_short, ECPGt_unsigned_short,
+ ECPGt_int, ECPGt_unsigned_int, ECPGt_long, ECPGt_unsigned_long,
+ ECPGt_bool,
+ ECPGt_float, ECPGt_double,
+ ECPGt_varchar, ECPGt_varchar2,
+ ECPGt_array,
+ ECPGt_struct,
+ ECPGt_union,
+ ECPGt_char_variable,
+ ECPGt_EOIT, /* End of insert types. */
+ ECPGt_EORT, /* End of result types. */
+ ECPGt_NO_INDICATOR, /* no indicator */
+ ECPGt_long_long, ECPGt_unsigned_long_long,
+ ECPGt_descriptor /* sql descriptor, no C variable */
+};
- /* descriptor items */
- enum ECPGdtype
- {
- ECPGd_count = 1,
- ECPGd_data,
- ECPGd_di_code,
- ECPGd_di_precision,
- ECPGd_indicator,
- ECPGd_key_member,
- ECPGd_length,
- ECPGd_name,
- ECPGd_nullable,
- ECPGd_octet,
- ECPGd_precision,
- ECPGd_ret_length,
- ECPGd_ret_octet,
- ECPGd_scale,
- ECPGd_type,
- ECPGd_EODT, /* End of descriptor types. */
- ECPGd_cardinality
- };
+ /* descriptor items */
+enum ECPGdtype
+{
+ ECPGd_count = 1,
+ ECPGd_data,
+ ECPGd_di_code,
+ ECPGd_di_precision,
+ ECPGd_indicator,
+ ECPGd_key_member,
+ ECPGd_length,
+ ECPGd_name,
+ ECPGd_nullable,
+ ECPGd_octet,
+ ECPGd_precision,
+ ECPGd_ret_length,
+ ECPGd_ret_octet,
+ ECPGd_scale,
+ ECPGd_type,
+ ECPGd_EODT, /* End of descriptor types. */
+ ECPGd_cardinality
+};
#define IS_SIMPLE_TYPE(type) (((type) >= ECPGt_char && (type) <= ECPGt_varchar2) || ((type)>=ECPGt_long_long && (type) <= ECPGt_unsigned_long_long))
#ifdef __cplusplus
}
-
#endif
{
#endif
- struct sqlca
+struct sqlca
+{
+ char sqlcaid[8];
+ long sqlabc;
+ long sqlcode;
+ struct
{
- char sqlcaid[8];
- long sqlabc;
- long sqlcode;
- struct
- {
- int sqlerrml;
- char sqlerrmc[SQLERRMC_LEN];
- } sqlerrm;
- char sqlerrp[8];
- long sqlerrd[6];
- /* Element 0: empty */
- /* 1: OID of processed tuple if applicable */
- /* 2: number of rows processed */
- /* after an INSERT, UPDATE or */
- /* DELETE statement */
- /* 3: empty */
- /* 4: empty */
- /* 5: empty */
- char sqlwarn[8];
- /* Element 0: set to 'W' if at least one other is 'W' */
- /* 1: if 'W' at least one character string */
- /* value was truncated when it was */
- /* stored into a host variable. */
-
- /*
- * 2: if 'W' a (hopefully) non-fatal notice occured
- */ /* 3: empty */
- /* 4: empty */
- /* 5: empty */
- /* 6: empty */
- /* 7: empty */
-
- char sqlext[8];
- };
-
- extern DLLIMPORT struct sqlca sqlca;
+ int sqlerrml;
+ char sqlerrmc[SQLERRMC_LEN];
+ } sqlerrm;
+ char sqlerrp[8];
+ long sqlerrd[6];
+ /* Element 0: empty */
+ /* 1: OID of processed tuple if applicable */
+ /* 2: number of rows processed */
+ /* after an INSERT, UPDATE or */
+ /* DELETE statement */
+ /* 3: empty */
+ /* 4: empty */
+ /* 5: empty */
+ char sqlwarn[8];
+ /* Element 0: set to 'W' if at least one other is 'W' */
+ /* 1: if 'W' at least one character string */
+ /* value was truncated when it was */
+ /* stored into a host variable. */
+
+ /*
+ * 2: if 'W' a (hopefully) non-fatal notice occured
+ */ /* 3: empty */
+ /* 4: empty */
+ /* 5: empty */
+ /* 6: empty */
+ /* 7: empty */
+
+ char sqlext[8];
+};
+
+extern DLLIMPORT struct sqlca sqlca;
#ifdef __cplusplus
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-misc.c,v 1.61 2001/11/08 04:05:13 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-misc.c,v 1.62 2001/11/08 20:37:52 momjian Exp $
*
*-------------------------------------------------------------------------
*/
{
printfPQExpBuffer(&conn->errorMessage,
libpq_gettext("could not flush enough data (space available: %d, space needed %d)\n"),
- (int) Max(conn->outBufSize - conn->outCount, 0),
+ (int) Max(conn->outBufSize - conn->outCount, 0),
(int) nbytes);
return EOF;
}
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $Id: libpq-fe.h,v 1.79 2001/11/05 17:46:37 momjian Exp $
+ * $Id: libpq-fe.h,v 1.80 2001/11/08 20:37:52 momjian Exp $
*
*-------------------------------------------------------------------------
*/
/* Application-visible enum types */
- typedef enum
- {
- /*
- * Although you may decide to change this list in some way, values
- * which become unused should never be removed, nor should
- * constants be redefined - that would break compatibility with
- * existing code.
- */
- CONNECTION_OK,
- CONNECTION_BAD,
- /* Non-blocking mode only below here */
-
- /*
- * The existence of these should never be relied upon - they
- * should only be used for user feedback or similar purposes.
- */
- CONNECTION_STARTED, /* Waiting for connection to be made. */
- CONNECTION_MADE, /* Connection OK; waiting to send. */
- CONNECTION_AWAITING_RESPONSE, /* Waiting for a response from the
+typedef enum
+{
+ /*
+ * Although you may decide to change this list in some way, values
+ * which become unused should never be removed, nor should constants
+ * be redefined - that would break compatibility with existing code.
+ */
+ CONNECTION_OK,
+ CONNECTION_BAD,
+ /* Non-blocking mode only below here */
+
+ /*
+ * The existence of these should never be relied upon - they should
+ * only be used for user feedback or similar purposes.
+ */
+ CONNECTION_STARTED, /* Waiting for connection to be made. */
+ CONNECTION_MADE, /* Connection OK; waiting to send. */
+ CONNECTION_AWAITING_RESPONSE, /* Waiting for a response from the
* postmaster. */
- CONNECTION_AUTH_OK, /* Received authentication; waiting for
+ CONNECTION_AUTH_OK, /* Received authentication; waiting for
* backend startup. */
- CONNECTION_SETENV /* Negotiating environment. */
- } ConnStatusType;
+ CONNECTION_SETENV /* Negotiating environment. */
+} ConnStatusType;
- typedef enum
- {
- PGRES_POLLING_FAILED = 0,
- PGRES_POLLING_READING, /* These two indicate that one may */
- PGRES_POLLING_WRITING, /* use select before polling again. */
- PGRES_POLLING_OK,
- PGRES_POLLING_ACTIVE /* Can call poll function immediately. */
- } PostgresPollingStatusType;
-
- typedef enum
- {
- PGRES_EMPTY_QUERY = 0,
- PGRES_COMMAND_OK, /* a query command that doesn't return
+typedef enum
+{
+ PGRES_POLLING_FAILED = 0,
+ PGRES_POLLING_READING, /* These two indicate that one may */
+ PGRES_POLLING_WRITING, /* use select before polling again. */
+ PGRES_POLLING_OK,
+ PGRES_POLLING_ACTIVE /* Can call poll function immediately. */
+} PostgresPollingStatusType;
+
+typedef enum
+{
+ PGRES_EMPTY_QUERY = 0,
+ PGRES_COMMAND_OK, /* a query command that doesn't return
* anything was executed properly by the
* backend */
- PGRES_TUPLES_OK, /* a query command that returns tuples was
+ PGRES_TUPLES_OK, /* a query command that returns tuples was
* executed properly by the backend,
* PGresult contains the result tuples */
- PGRES_COPY_OUT, /* Copy Out data transfer in progress */
- PGRES_COPY_IN, /* Copy In data transfer in progress */
- PGRES_BAD_RESPONSE, /* an unexpected response was recv'd from
+ PGRES_COPY_OUT, /* Copy Out data transfer in progress */
+ PGRES_COPY_IN, /* Copy In data transfer in progress */
+ PGRES_BAD_RESPONSE, /* an unexpected response was recv'd from
* the backend */
- PGRES_NONFATAL_ERROR,
- PGRES_FATAL_ERROR
- } ExecStatusType;
+ PGRES_NONFATAL_ERROR,
+ PGRES_FATAL_ERROR
+} ExecStatusType;
/* PGconn encapsulates a connection to the backend.
* The contents of this struct are not supposed to be known to applications.
*/
- typedef struct pg_conn PGconn;
+typedef struct pg_conn PGconn;
/* PGresult encapsulates the result of a query (or more precisely, of a single
* SQL command --- a query string given to PQsendQuery can contain multiple
* commands and thus return multiple PGresult objects).
* The contents of this struct are not supposed to be known to applications.
*/
- typedef struct pg_result PGresult;
+typedef struct pg_result PGresult;
/* PGnotify represents the occurrence of a NOTIFY message.
* Ideally this would be an opaque typedef, but it's so simple that it's
* NOTE: in Postgres 6.4 and later, the be_pid is the notifying backend's,
* whereas in earlier versions it was always your own backend's PID.
*/
- typedef struct pgNotify
- {
- char relname[NAMEDATALEN]; /* name of relation
- * containing data */
- int be_pid; /* process id of backend */
- } PGnotify;
+typedef struct pgNotify
+{
+ char relname[NAMEDATALEN]; /* name of relation containing
+ * data */
+ int be_pid; /* process id of backend */
+} PGnotify;
/* PQnoticeProcessor is the function type for the notice-message callback.
*/
- typedef void (*PQnoticeProcessor) (void *arg, const char *message);
+typedef void (*PQnoticeProcessor) (void *arg, const char *message);
/* Print options for PQprint() */
- typedef char pqbool;
+typedef char pqbool;
- typedef struct _PQprintOpt
- {
- pqbool header; /* print output field headings and row
+typedef struct _PQprintOpt
+{
+ pqbool header; /* print output field headings and row
* count */
- pqbool align; /* fill align the fields */
- pqbool standard; /* old brain dead format */
- pqbool html3; /* output html tables */
- pqbool expanded; /* expand tables */
- pqbool pager; /* use pager for output if needed */
- char *fieldSep; /* field separator */
- char *tableOpt; /* insert to HTML <table ...> */
- char *caption; /* HTML <caption> */
- char **fieldName; /* null terminated array of repalcement
+ pqbool align; /* fill align the fields */
+ pqbool standard; /* old brain dead format */
+ pqbool html3; /* output html tables */
+ pqbool expanded; /* expand tables */
+ pqbool pager; /* use pager for output if needed */
+ char *fieldSep; /* field separator */
+ char *tableOpt; /* insert to HTML <table ...> */
+ char *caption; /* HTML <caption> */
+ char **fieldName; /* null terminated array of repalcement
* field names */
- } PQprintOpt;
+} PQprintOpt;
/* ----------------
* Structure for the conninfo parameter definitions returned by PQconndefaults
* will release both the val strings and the PQconninfoOption array itself.
* ----------------
*/
- typedef struct _PQconninfoOption
- {
- char *keyword; /* The keyword of the option */
- char *envvar; /* Fallback environment variable name */
- char *compiled; /* Fallback compiled in default value */
- char *val; /* Option's current value, or NULL */
- char *label; /* Label for field in connect dialog */
- char *dispchar; /* Character to display for this field in
+typedef struct _PQconninfoOption
+{
+ char *keyword; /* The keyword of the option */
+ char *envvar; /* Fallback environment variable name */
+ char *compiled; /* Fallback compiled in default value */
+ char *val; /* Option's current value, or NULL */
+ char *label; /* Label for field in connect dialog */
+ char *dispchar; /* Character to display for this field in
* a connect dialog. Values are: ""
* Display entered value as is "*"
* Password field - hide value "D" Debug
* option - don't show by default */
- int dispsize; /* Field size in characters for dialog */
- } PQconninfoOption;
+ int dispsize; /* Field size in characters for dialog */
+} PQconninfoOption;
/* ----------------
* PQArgBlock -- structure for PQfn() arguments
* ----------------
*/
- typedef struct
+typedef struct
+{
+ int len;
+ int isint;
+ union
{
- int len;
- int isint;
- union
- {
- int *ptr; /* can't use void (dec compiler barfs) */
- int integer;
- } u;
- } PQArgBlock;
+ int *ptr; /* can't use void (dec compiler barfs) */
+ int integer;
+ } u;
+} PQArgBlock;
/* ----------------
* Exported functions of libpq
/* make a new client connection to the backend */
/* Asynchronous (non-blocking) */
- extern PGconn *PQconnectStart(const char *conninfo);
- extern PostgresPollingStatusType PQconnectPoll(PGconn *conn);
+extern PGconn *PQconnectStart(const char *conninfo);
+extern PostgresPollingStatusType PQconnectPoll(PGconn *conn);
/* Synchronous (blocking) */
- extern PGconn *PQconnectdb(const char *conninfo);
- extern PGconn *PQsetdbLogin(const char *pghost, const char *pgport,
- const char *pgoptions, const char *pgtty,
- const char *dbName,
- const char *login, const char *pwd);
+extern PGconn *PQconnectdb(const char *conninfo);
+extern PGconn *PQsetdbLogin(const char *pghost, const char *pgport,
+ const char *pgoptions, const char *pgtty,
+ const char *dbName,
+ const char *login, const char *pwd);
#define PQsetdb(M_PGHOST,M_PGPORT,M_PGOPT,M_PGTTY,M_DBNAME) \
PQsetdbLogin(M_PGHOST, M_PGPORT, M_PGOPT, M_PGTTY, M_DBNAME, NULL, NULL)
/* close the current connection and free the PGconn data structure */
- extern void PQfinish(PGconn *conn);
+extern void PQfinish(PGconn *conn);
/* get info about connection options known to PQconnectdb */
- extern PQconninfoOption *PQconndefaults(void);
+extern PQconninfoOption *PQconndefaults(void);
/* free the data structure returned by PQconndefaults() */
- extern void PQconninfoFree(PQconninfoOption *connOptions);
+extern void PQconninfoFree(PQconninfoOption *connOptions);
/*
* close the current connection and restablish a new one with the same
* parameters
*/
/* Asynchronous (non-blocking) */
- extern int PQresetStart(PGconn *conn);
- extern PostgresPollingStatusType PQresetPoll(PGconn *conn);
+extern int PQresetStart(PGconn *conn);
+extern PostgresPollingStatusType PQresetPoll(PGconn *conn);
/* Synchronous (blocking) */
- extern void PQreset(PGconn *conn);
+extern void PQreset(PGconn *conn);
/* issue a cancel request */
- extern int PQrequestCancel(PGconn *conn);
+extern int PQrequestCancel(PGconn *conn);
/* Accessor functions for PGconn objects */
- extern char *PQdb(const PGconn *conn);
- extern char *PQuser(const PGconn *conn);
- extern char *PQpass(const PGconn *conn);
- extern char *PQhost(const PGconn *conn);
- extern char *PQport(const PGconn *conn);
- extern char *PQtty(const PGconn *conn);
- extern char *PQoptions(const PGconn *conn);
- extern ConnStatusType PQstatus(const PGconn *conn);
- extern char *PQerrorMessage(const PGconn *conn);
- extern int PQsocket(const PGconn *conn);
- extern int PQbackendPID(const PGconn *conn);
- extern int PQclientEncoding(const PGconn *conn);
- extern int PQsetClientEncoding(PGconn *conn, const char *encoding);
+extern char *PQdb(const PGconn *conn);
+extern char *PQuser(const PGconn *conn);
+extern char *PQpass(const PGconn *conn);
+extern char *PQhost(const PGconn *conn);
+extern char *PQport(const PGconn *conn);
+extern char *PQtty(const PGconn *conn);
+extern char *PQoptions(const PGconn *conn);
+extern ConnStatusType PQstatus(const PGconn *conn);
+extern char *PQerrorMessage(const PGconn *conn);
+extern int PQsocket(const PGconn *conn);
+extern int PQbackendPID(const PGconn *conn);
+extern int PQclientEncoding(const PGconn *conn);
+extern int PQsetClientEncoding(PGconn *conn, const char *encoding);
#ifdef USE_SSL
/* Get the SSL structure associated with a connection */
- extern SSL *PQgetssl(PGconn *conn);
+extern SSL *PQgetssl(PGconn *conn);
#endif
/* Enable/disable tracing */
- extern void PQtrace(PGconn *conn, FILE *debug_port);
- extern void PQuntrace(PGconn *conn);
+extern void PQtrace(PGconn *conn, FILE *debug_port);
+extern void PQuntrace(PGconn *conn);
/* Override default notice processor */
- extern PQnoticeProcessor PQsetNoticeProcessor(PGconn *conn,
- PQnoticeProcessor proc,
- void *arg);
+extern PQnoticeProcessor PQsetNoticeProcessor(PGconn *conn,
+ PQnoticeProcessor proc,
+ void *arg);
/* === in fe-exec.c === */
/* Quoting strings before inclusion in queries. */
- extern size_t PQescapeString(char *to, const char *from, size_t length);
- extern unsigned char *PQescapeBytea(unsigned char *bintext, size_t binlen,
- size_t *bytealen);
+extern size_t PQescapeString(char *to, const char *from, size_t length);
+extern unsigned char *PQescapeBytea(unsigned char *bintext, size_t binlen,
+ size_t *bytealen);
/* Simple synchronous query */
- extern PGresult *PQexec(PGconn *conn, const char *query);
- extern PGnotify *PQnotifies(PGconn *conn);
- extern void PQfreeNotify(PGnotify *notify);
+extern PGresult *PQexec(PGconn *conn, const char *query);
+extern PGnotify *PQnotifies(PGconn *conn);
+extern void PQfreeNotify(PGnotify *notify);
/* Interface for multiple-result or asynchronous queries */
- extern int PQsendQuery(PGconn *conn, const char *query);
- extern PGresult *PQgetResult(PGconn *conn);
+extern int PQsendQuery(PGconn *conn, const char *query);
+extern PGresult *PQgetResult(PGconn *conn);
/* Routines for managing an asychronous query */
- extern int PQisBusy(PGconn *conn);
- extern int PQconsumeInput(PGconn *conn);
+extern int PQisBusy(PGconn *conn);
+extern int PQconsumeInput(PGconn *conn);
/* Routines for copy in/out */
- extern int PQgetline(PGconn *conn, char *string, int length);
- extern int PQputline(PGconn *conn, const char *string);
- extern int PQgetlineAsync(PGconn *conn, char *buffer, int bufsize);
- extern int PQputnbytes(PGconn *conn, const char *buffer, int nbytes);
- extern int PQendcopy(PGconn *conn);
+extern int PQgetline(PGconn *conn, char *string, int length);
+extern int PQputline(PGconn *conn, const char *string);
+extern int PQgetlineAsync(PGconn *conn, char *buffer, int bufsize);
+extern int PQputnbytes(PGconn *conn, const char *buffer, int nbytes);
+extern int PQendcopy(PGconn *conn);
/* Set blocking/nonblocking connection to the backend */
- extern int PQsetnonblocking(PGconn *conn, int arg);
- extern int PQisnonblocking(const PGconn *conn);
+extern int PQsetnonblocking(PGconn *conn, int arg);
+extern int PQisnonblocking(const PGconn *conn);
/* Force the write buffer to be written (or at least try) */
- extern int PQflush(PGconn *conn);
+extern int PQflush(PGconn *conn);
/*
* "Fast path" interface --- not really recommended for application
* use
*/
- extern PGresult *PQfn(PGconn *conn,
- int fnid,
- int *result_buf,
- int *result_len,
- int result_is_int,
- const PQArgBlock *args,
- int nargs);
+extern PGresult *PQfn(PGconn *conn,
+ int fnid,
+ int *result_buf,
+ int *result_len,
+ int result_is_int,
+ const PQArgBlock *args,
+ int nargs);
/* Accessor functions for PGresult objects */
- extern ExecStatusType PQresultStatus(const PGresult *res);
- extern char *PQresStatus(ExecStatusType status);
- extern char *PQresultErrorMessage(const PGresult *res);
- extern int PQntuples(const PGresult *res);
- extern int PQnfields(const PGresult *res);
- extern int PQbinaryTuples(const PGresult *res);
- extern char *PQfname(const PGresult *res, int field_num);
- extern int PQfnumber(const PGresult *res, const char *field_name);
- extern Oid PQftype(const PGresult *res, int field_num);
- extern int PQfsize(const PGresult *res, int field_num);
- extern int PQfmod(const PGresult *res, int field_num);
- extern char *PQcmdStatus(PGresult *res);
- extern char *PQoidStatus(const PGresult *res); /* old and ugly */
- extern Oid PQoidValue(const PGresult *res); /* new and improved */
- extern char *PQcmdTuples(PGresult *res);
- extern char *PQgetvalue(const PGresult *res, int tup_num, int field_num);
- extern int PQgetlength(const PGresult *res, int tup_num, int field_num);
- extern int PQgetisnull(const PGresult *res, int tup_num, int field_num);
+extern ExecStatusType PQresultStatus(const PGresult *res);
+extern char *PQresStatus(ExecStatusType status);
+extern char *PQresultErrorMessage(const PGresult *res);
+extern int PQntuples(const PGresult *res);
+extern int PQnfields(const PGresult *res);
+extern int PQbinaryTuples(const PGresult *res);
+extern char *PQfname(const PGresult *res, int field_num);
+extern int PQfnumber(const PGresult *res, const char *field_name);
+extern Oid PQftype(const PGresult *res, int field_num);
+extern int PQfsize(const PGresult *res, int field_num);
+extern int PQfmod(const PGresult *res, int field_num);
+extern char *PQcmdStatus(PGresult *res);
+extern char *PQoidStatus(const PGresult *res); /* old and ugly */
+extern Oid PQoidValue(const PGresult *res); /* new and improved */
+extern char *PQcmdTuples(PGresult *res);
+extern char *PQgetvalue(const PGresult *res, int tup_num, int field_num);
+extern int PQgetlength(const PGresult *res, int tup_num, int field_num);
+extern int PQgetisnull(const PGresult *res, int tup_num, int field_num);
/* Delete a PGresult */
- extern void PQclear(PGresult *res);
+extern void PQclear(PGresult *res);
/*
* Make an empty PGresult with given status (some apps find this
* useful). If conn is not NULL and status indicates an error, the
* conn's errorMessage is copied.
*/
- extern PGresult *PQmakeEmptyPGresult(PGconn *conn, ExecStatusType status);
+extern PGresult *PQmakeEmptyPGresult(PGconn *conn, ExecStatusType status);
/* === in fe-print.c === */
- extern void PQprint(FILE *fout, /* output stream */
- const PGresult *res,
- const PQprintOpt *ps); /* option structure */
+extern void
+PQprint(FILE *fout, /* output stream */
+ const PGresult *res,
+ const PQprintOpt *ps); /* option structure */
/*
* really old printing routines
*/
- extern void PQdisplayTuples(const PGresult *res,
- FILE *fp, /* where to send the
- * output */
- int fillAlign, /* pad the fields with
- * spaces */
- const char *fieldSep, /* field separator */
- int printHeader, /* display headers? */
- int quiet);
-
- extern void PQprintTuples(const PGresult *res,
- FILE *fout, /* output stream */
- int printAttName, /* print attribute names */
- int terseOutput, /* delimiter bars */
- int width); /* width of column, if
- * 0, use variable width */
+extern void
+PQdisplayTuples(const PGresult *res,
+ FILE *fp, /* where to send the output */
+ int fillAlign, /* pad the fields with spaces */
+ const char *fieldSep, /* field separator */
+ int printHeader, /* display headers? */
+ int quiet);
+
+extern void
+PQprintTuples(const PGresult *res,
+ FILE *fout, /* output stream */
+ int printAttName, /* print attribute names */
+ int terseOutput, /* delimiter bars */
+ int width); /* width of column, if 0, use variable
+ * width */
/* === in fe-lobj.c === */
/* Large-object access routines */
- extern int lo_open(PGconn *conn, Oid lobjId, int mode);
- extern int lo_close(PGconn *conn, int fd);
- extern int lo_read(PGconn *conn, int fd, char *buf, size_t len);
- extern int lo_write(PGconn *conn, int fd, char *buf, size_t len);
- extern int lo_lseek(PGconn *conn, int fd, int offset, int whence);
- extern Oid lo_creat(PGconn *conn, int mode);
- extern int lo_tell(PGconn *conn, int fd);
- extern int lo_unlink(PGconn *conn, Oid lobjId);
- extern Oid lo_import(PGconn *conn, const char *filename);
- extern int lo_export(PGconn *conn, Oid lobjId, const char *filename);
+extern int lo_open(PGconn *conn, Oid lobjId, int mode);
+extern int lo_close(PGconn *conn, int fd);
+extern int lo_read(PGconn *conn, int fd, char *buf, size_t len);
+extern int lo_write(PGconn *conn, int fd, char *buf, size_t len);
+extern int lo_lseek(PGconn *conn, int fd, int offset, int whence);
+extern Oid lo_creat(PGconn *conn, int mode);
+extern int lo_tell(PGconn *conn, int fd);
+extern int lo_unlink(PGconn *conn, Oid lobjId);
+extern Oid lo_import(PGconn *conn, const char *filename);
+extern int lo_export(PGconn *conn, Oid lobjId, const char *filename);
/* === in fe-misc.c === */
/* Determine length of multibyte encoded char at *s */
- extern int PQmblen(const unsigned char *s, int encoding);
+extern int PQmblen(const unsigned char *s, int encoding);
/* Get encoding id from environment variable PGCLIENTENCODING */
- extern int PQenv2encoding(void);
+extern int PQenv2encoding(void);
#ifdef __cplusplus
}
{
#endif
- DWORD
- GetPrivateProfileString(const char *theSection, /* section name */
- const char *theKey, /* search key name */
- const char *theDefault, /* default value if not
- * found */
- char *theReturnBuffer, /* return valuse stored
- * here */
- size_t theBufferLength, /* byte length of return
- * buffer */
- const char *theIniFileName); /* pathname of ini file
- * to search */
-
- DWORD
- WritePrivateProfileString(const char *theSection, /* section name */
- const char *theKey, /* write key name */
- const char *theBuffer, /* input buffer */
- const char *theIniFileName); /* pathname of ini file
- * to write */
+DWORD
+GetPrivateProfileString(const char *theSection, /* section name */
+ const char *theKey, /* search key name */
+ const char *theDefault, /* default value if not
+ * found */
+ char *theReturnBuffer, /* return valuse stored
+ * here */
+ size_t theBufferLength, /* byte length of return
+ * buffer */
+ const char *theIniFileName); /* pathname of ini file
+ * to search */
+
+DWORD
+WritePrivateProfileString(const char *theSection, /* section name */
+ const char *theKey, /* write key name */
+ const char *theBuffer, /* input buffer */
+ const char *theIniFileName); /* pathname of ini file
+ * to write */
#ifdef __cplusplus
}
{
#endif
- RETCODE SQL_API SQLAllocConnect(HENV henv,
- HDBC FAR * phdbc);
- RETCODE SQL_API SQLAllocEnv(HENV FAR * phenv);
- RETCODE SQL_API SQLAllocStmt(HDBC hdbc,
- HSTMT FAR * phstmt);
- RETCODE SQL_API SQLBindCol(HSTMT hstmt,
- UWORD icol,
- SWORD fCType,
- PTR rgbValue,
- SDWORD cbValueMax,
- SDWORD FAR * pcbValue);
-
- RETCODE SQL_API SQLCancel(HSTMT hstmt);
-
- RETCODE SQL_API SQLColAttributes(HSTMT hstmt,
- UWORD icol,
- UWORD fDescType,
- PTR rgbDesc,
- SWORD cbDescMax,
- SWORD FAR * pcbDesc,
- SDWORD FAR * pfDesc);
-
- RETCODE SQL_API SQLConnect(HDBC hdbc,
- UCHAR FAR * szDSN,
- SWORD cbDSN,
- UCHAR FAR * szUID,
- SWORD cbUID,
- UCHAR FAR * szAuthStr,
- SWORD cbAuthStr);
-
- RETCODE SQL_API SQLDescribeCol(HSTMT hstmt,
- UWORD icol,
- UCHAR FAR * szColName,
- SWORD cbColNameMax,
- SWORD FAR * pcbColName,
- SWORD FAR * pfSqlType,
- UDWORD FAR * pcbColDef,
- SWORD FAR * pibScale,
- SWORD FAR * pfNullable);
-
- RETCODE SQL_API SQLDisconnect(HDBC hdbc);
-
- RETCODE SQL_API SQLError(HENV henv,
- HDBC hdbc,
- HSTMT hstmt,
- UCHAR FAR * szSqlState,
- SDWORD FAR * pfNativeError,
- UCHAR FAR * szErrorMsg,
- SWORD cbErrorMsgMax,
- SWORD FAR * pcbErrorMsg);
-
- RETCODE SQL_API SQLExecDirect(HSTMT hstmt,
- UCHAR FAR * szSqlStr,
- SDWORD cbSqlStr);
-
- RETCODE SQL_API SQLExecute(HSTMT hstmt);
-
- RETCODE SQL_API SQLFetch(HSTMT hstmt);
-
- RETCODE SQL_API SQLFreeConnect(HDBC hdbc);
-
- RETCODE SQL_API SQLFreeEnv(HENV henv);
-
- RETCODE SQL_API SQLFreeStmt(HSTMT hstmt,
- UWORD fOption);
-
- RETCODE SQL_API SQLGetCursorName(HSTMT hstmt,
- UCHAR FAR * szCursor,
- SWORD cbCursorMax,
- SWORD FAR * pcbCursor);
-
- RETCODE SQL_API SQLNumResultCols(HSTMT hstmt,
- SWORD FAR * pccol);
-
- RETCODE SQL_API SQLPrepare(HSTMT hstmt,
- UCHAR FAR * szSqlStr,
- SDWORD cbSqlStr);
-
- RETCODE SQL_API SQLRowCount(HSTMT hstmt,
- SDWORD FAR * pcrow);
-
- RETCODE SQL_API SQLSetCursorName(HSTMT hstmt,
- UCHAR FAR * szCursor,
- SWORD cbCursor);
-
- RETCODE SQL_API SQLTransact(HENV henv,
- HDBC hdbc,
- UWORD fType);
-
- RETCODE SQL_API SQLSetParam(HSTMT hstmt,
- UWORD ipar,
- SWORD fCType,
- SWORD fSqlType,
- UDWORD cbColDef,
- SWORD ibScale,
- PTR rgbValue,
- SDWORD FAR * pcbValue);
-
- RETCODE SQL_API SQLDataSources(HENV henv,
- UWORD Direction, UCHAR FAR * ServerName,
- WORD BufferLength1, WORD *NameLength1,
- UCHAR FAR * Description, WORD BufferLength2,
- WORD *NameLength2);
+RETCODE SQL_API SQLAllocConnect(HENV henv,
+ HDBC FAR * phdbc);
+RETCODE SQL_API SQLAllocEnv(HENV FAR * phenv);
+RETCODE SQL_API SQLAllocStmt(HDBC hdbc,
+ HSTMT FAR * phstmt);
+RETCODE SQL_API SQLBindCol(HSTMT hstmt,
+ UWORD icol,
+ SWORD fCType,
+ PTR rgbValue,
+ SDWORD cbValueMax,
+ SDWORD FAR * pcbValue);
+
+RETCODE SQL_API SQLCancel(HSTMT hstmt);
+
+RETCODE SQL_API SQLColAttributes(HSTMT hstmt,
+ UWORD icol,
+ UWORD fDescType,
+ PTR rgbDesc,
+ SWORD cbDescMax,
+ SWORD FAR * pcbDesc,
+ SDWORD FAR * pfDesc);
+
+RETCODE SQL_API SQLConnect(HDBC hdbc,
+ UCHAR FAR * szDSN,
+ SWORD cbDSN,
+ UCHAR FAR * szUID,
+ SWORD cbUID,
+ UCHAR FAR * szAuthStr,
+ SWORD cbAuthStr);
+
+RETCODE SQL_API SQLDescribeCol(HSTMT hstmt,
+ UWORD icol,
+ UCHAR FAR * szColName,
+ SWORD cbColNameMax,
+ SWORD FAR * pcbColName,
+ SWORD FAR * pfSqlType,
+ UDWORD FAR * pcbColDef,
+ SWORD FAR * pibScale,
+ SWORD FAR * pfNullable);
+
+RETCODE SQL_API SQLDisconnect(HDBC hdbc);
+
+RETCODE SQL_API SQLError(HENV henv,
+ HDBC hdbc,
+ HSTMT hstmt,
+ UCHAR FAR * szSqlState,
+ SDWORD FAR * pfNativeError,
+ UCHAR FAR * szErrorMsg,
+ SWORD cbErrorMsgMax,
+ SWORD FAR * pcbErrorMsg);
+
+RETCODE SQL_API SQLExecDirect(HSTMT hstmt,
+ UCHAR FAR * szSqlStr,
+ SDWORD cbSqlStr);
+
+RETCODE SQL_API SQLExecute(HSTMT hstmt);
+
+RETCODE SQL_API SQLFetch(HSTMT hstmt);
+
+RETCODE SQL_API SQLFreeConnect(HDBC hdbc);
+
+RETCODE SQL_API SQLFreeEnv(HENV henv);
+
+RETCODE SQL_API SQLFreeStmt(HSTMT hstmt,
+ UWORD fOption);
+
+RETCODE SQL_API SQLGetCursorName(HSTMT hstmt,
+ UCHAR FAR * szCursor,
+ SWORD cbCursorMax,
+ SWORD FAR * pcbCursor);
+
+RETCODE SQL_API SQLNumResultCols(HSTMT hstmt,
+ SWORD FAR * pccol);
+
+RETCODE SQL_API SQLPrepare(HSTMT hstmt,
+ UCHAR FAR * szSqlStr,
+ SDWORD cbSqlStr);
+
+RETCODE SQL_API SQLRowCount(HSTMT hstmt,
+ SDWORD FAR * pcrow);
+
+RETCODE SQL_API SQLSetCursorName(HSTMT hstmt,
+ UCHAR FAR * szCursor,
+ SWORD cbCursor);
+
+RETCODE SQL_API SQLTransact(HENV henv,
+ HDBC hdbc,
+ UWORD fType);
+
+RETCODE SQL_API SQLSetParam(HSTMT hstmt,
+ UWORD ipar,
+ SWORD fCType,
+ SWORD fSqlType,
+ UDWORD cbColDef,
+ SWORD ibScale,
+ PTR rgbValue,
+ SDWORD FAR * pcbValue);
+
+RETCODE SQL_API SQLDataSources(HENV henv,
+ UWORD Direction, UCHAR FAR * ServerName,
+ WORD BufferLength1, WORD *NameLength1,
+ UCHAR FAR * Description, WORD BufferLength2,
+ WORD *NameLength2);
#ifdef __cplusplus
}
{
#endif
- RETCODE SQL_API SQLSetConnectOption(HDBC, UWORD, UDWORD);
- RETCODE SQL_API SQLNumResultCols(HSTMT, SWORD FAR *);
+RETCODE SQL_API SQLSetConnectOption(HDBC, UWORD, UDWORD);
+RETCODE SQL_API SQLNumResultCols(HSTMT, SWORD FAR *);
/*
* function prototypes previously missing from isqlext.h
*/
- RETCODE SQL_API SQLColumns(HSTMT hstmt,
- UCHAR FAR * szTableQualifier,
- SWORD cbTableQualifier,
- UCHAR FAR * szTableOwner,
- SWORD cbTableOwner,
- UCHAR FAR * szTableName,
- SWORD cbTableName,
- UCHAR FAR * szColumnName,
- SWORD cbColumnName);
-
- RETCODE SQL_API SQLDriverConnect(HDBC hdbc,
- HWND hwnd,
- UCHAR FAR * szConnStrIn,
- SWORD cbConnStrIn,
- UCHAR FAR * szConnStrOut,
- SWORD cbConnStrOutMax,
- SWORD FAR * pcbConnStrOut,
- UWORD fDriverCompletion);
-
- RETCODE SQL_API SQLGetConnectOption(HDBC hdbc,
- UWORD fOption,
- PTR pvParam);
-
- RETCODE SQL_API SQLGetData(HSTMT hstmt,
- UWORD icol,
- SWORD fCType,
- PTR rgbValue,
- SDWORD cbValueMax,
- SDWORD FAR * pcbValue);
-
- RETCODE SQL_API SQLGetFunctions(HDBC hdbc,
- UWORD fFunction,
- UWORD FAR * pfExists);
-
- RETCODE SQL_API SQLGetInfo(HDBC hdbc,
- UWORD fInfoType,
- PTR rgbInfoValue,
- SWORD cbInfoValueMax,
- SWORD FAR * pcbInfoValue);
-
- RETCODE SQL_API SQLGetStmtOption(HSTMT hstmt,
- UWORD fOption,
- PTR pvParam);
-
- RETCODE SQL_API SQLGetTypeInfo(HSTMT hstmt,
- SWORD fSqlType);
-
- RETCODE SQL_API SQLParamData(HSTMT hstmt,
- PTR FAR * prgbValue);
-
- RETCODE SQL_API SQLPutData(HSTMT hstmt,
- PTR rgbValue,
- SDWORD cbValue);
-
- RETCODE SQL_API SQLSetStmtOption(HSTMT hstmt,
- UWORD fOption,
- UDWORD vParam);
-
- RETCODE SQL_API SQLSpecialColumns(HSTMT hstmt,
- UWORD fColType,
- UCHAR FAR * szTableQualifier,
- SWORD cbTableQualifier,
- UCHAR FAR * szTableOwner,
- SWORD cbTableOwner,
- UCHAR FAR * szTableName,
- SWORD cbTableName,
- UWORD fScope,
- UWORD fNullable);
-
- RETCODE SQL_API SQLStatistics(HSTMT hstmt,
- UCHAR FAR * szTableQualifier,
- SWORD cbTableQualifier,
- UCHAR FAR * szTableOwner,
- SWORD cbTableOwner,
- UCHAR FAR * szTableName,
- SWORD cbTableName,
- UWORD fUnique,
- UWORD fAccuracy);
-
- RETCODE SQL_API SQLTables(HSTMT hstmt,
- UCHAR FAR * szTableQualifier,
- SWORD cbTableQualifier,
- UCHAR FAR * szTableOwner,
- SWORD cbTableOwner,
- UCHAR FAR * szTableName,
- SWORD cbTableName,
- UCHAR FAR * szTableType,
- SWORD cbTableType);
-
- RETCODE SQL_API SQLBrowseConnect(HDBC hdbc,
- UCHAR FAR * szConnStrIn,
- SWORD cbConnStrIn,
- UCHAR FAR * szConnStrOut,
- SWORD cbConnStrOutMax,
- SWORD FAR * pcbConnStrOut);
-
- RETCODE SQL_API SQLColumnPrivileges(HSTMT hstmt,
- UCHAR FAR * szTableQualifier,
- SWORD cbTableQualifier,
- UCHAR FAR * szTableOwner,
- SWORD cbTableOwner,
- UCHAR FAR * szTableName,
- SWORD cbTableName,
- UCHAR FAR * szColumnName,
- SWORD cbColumnName);
-
- RETCODE SQL_API SQLDescribeParam(HSTMT hstmt,
- UWORD ipar,
- SWORD FAR * pfSqlType,
- UDWORD FAR * pcbColDef,
- SWORD FAR * pibScale,
- SWORD FAR * pfNullable);
-
- RETCODE SQL_API SQLExtendedFetch(HSTMT hstmt,
- UWORD fFetchType,
- SDWORD irow,
- UDWORD FAR * pcrow,
- UWORD FAR * rgfRowStatus);
-
- RETCODE SQL_API SQLForeignKeys(HSTMT hstmt,
- UCHAR FAR * szPkTableQualifier,
- SWORD cbPkTableQualifier,
- UCHAR FAR * szPkTableOwner,
- SWORD cbPkTableOwner,
- UCHAR FAR * szPkTableName,
- SWORD cbPkTableName,
- UCHAR FAR * szFkTableQualifier,
- SWORD cbFkTableQualifier,
- UCHAR FAR * szFkTableOwner,
- SWORD cbFkTableOwner,
- UCHAR FAR * szFkTableName,
- SWORD cbFkTableName);
-
- RETCODE SQL_API SQLMoreResults(HSTMT hstmt);
-
- RETCODE SQL_API SQLNativeSql(HDBC hdbc,
- UCHAR FAR * szSqlStrIn,
- SDWORD cbSqlStrIn,
- UCHAR FAR * szSqlStr,
- SDWORD cbSqlStrMax,
- SDWORD FAR * pcbSqlStr);
-
- RETCODE SQL_API SQLNumParams(HSTMT hstmt,
- SWORD FAR * pcpar);
-
- RETCODE SQL_API SQLParamOptions(HSTMT hstmt,
- UDWORD crow,
- UDWORD FAR * pirow);
-
- RETCODE SQL_API SQLPrimaryKeys(HSTMT hstmt,
- UCHAR FAR * szTableQualifier,
- SWORD cbTableQualifier,
- UCHAR FAR * szTableOwner,
- SWORD cbTableOwner,
- UCHAR FAR * szTableName,
- SWORD cbTableName);
-
- RETCODE SQL_API SQLProcedureColumns(HSTMT hstmt,
- UCHAR FAR * szProcQualifier,
- SWORD cbProcQualifier,
- UCHAR FAR * szProcOwner,
- SWORD cbProcOwner,
- UCHAR FAR * szProcName,
- SWORD cbProcName,
- UCHAR FAR * szColumnName,
- SWORD cbColumnName);
-
- RETCODE SQL_API SQLProcedures(HSTMT hstmt,
- UCHAR FAR * szProcQualifier,
- SWORD cbProcQualifier,
- UCHAR FAR * szProcOwner,
- SWORD cbProcOwner,
- UCHAR FAR * szProcName,
- SWORD cbProcName);
-
- RETCODE SQL_API SQLSetPos(HSTMT hstmt,
- UWORD irow,
- UWORD fOption,
- UWORD fLock);
-
- RETCODE SQL_API SQLTablePrivileges(HSTMT hstmt,
- UCHAR FAR * szTableQualifier,
- SWORD cbTableQualifier,
- UCHAR FAR * szTableOwner,
- SWORD cbTableOwner,
- UCHAR FAR * szTableName,
- SWORD cbTableName);
-
- RETCODE SQL_API SQLBindParameter(HSTMT hstmt,
- UWORD ipar,
- SWORD fParamType,
- SWORD fCType,
- SWORD fSqlType,
- UDWORD cbColDef,
- SWORD ibScale,
- PTR rgbValue,
- SDWORD cbValueMax,
- SDWORD FAR * pcbValue);
-
- RETCODE SQL_API SQLSetScrollOptions(HSTMT hstmt,
- UWORD fConcurrency,
- SDWORD crowKeyset,
- UWORD crowRowset);
+RETCODE SQL_API SQLColumns(HSTMT hstmt,
+ UCHAR FAR * szTableQualifier,
+ SWORD cbTableQualifier,
+ UCHAR FAR * szTableOwner,
+ SWORD cbTableOwner,
+ UCHAR FAR * szTableName,
+ SWORD cbTableName,
+ UCHAR FAR * szColumnName,
+ SWORD cbColumnName);
+
+RETCODE SQL_API SQLDriverConnect(HDBC hdbc,
+ HWND hwnd,
+ UCHAR FAR * szConnStrIn,
+ SWORD cbConnStrIn,
+ UCHAR FAR * szConnStrOut,
+ SWORD cbConnStrOutMax,
+ SWORD FAR * pcbConnStrOut,
+ UWORD fDriverCompletion);
+
+RETCODE SQL_API SQLGetConnectOption(HDBC hdbc,
+ UWORD fOption,
+ PTR pvParam);
+
+RETCODE SQL_API SQLGetData(HSTMT hstmt,
+ UWORD icol,
+ SWORD fCType,
+ PTR rgbValue,
+ SDWORD cbValueMax,
+ SDWORD FAR * pcbValue);
+
+RETCODE SQL_API SQLGetFunctions(HDBC hdbc,
+ UWORD fFunction,
+ UWORD FAR * pfExists);
+
+RETCODE SQL_API SQLGetInfo(HDBC hdbc,
+ UWORD fInfoType,
+ PTR rgbInfoValue,
+ SWORD cbInfoValueMax,
+ SWORD FAR * pcbInfoValue);
+
+RETCODE SQL_API SQLGetStmtOption(HSTMT hstmt,
+ UWORD fOption,
+ PTR pvParam);
+
+RETCODE SQL_API SQLGetTypeInfo(HSTMT hstmt,
+ SWORD fSqlType);
+
+RETCODE SQL_API SQLParamData(HSTMT hstmt,
+ PTR FAR * prgbValue);
+
+RETCODE SQL_API SQLPutData(HSTMT hstmt,
+ PTR rgbValue,
+ SDWORD cbValue);
+
+RETCODE SQL_API SQLSetStmtOption(HSTMT hstmt,
+ UWORD fOption,
+ UDWORD vParam);
+
+RETCODE SQL_API SQLSpecialColumns(HSTMT hstmt,
+ UWORD fColType,
+ UCHAR FAR * szTableQualifier,
+ SWORD cbTableQualifier,
+ UCHAR FAR * szTableOwner,
+ SWORD cbTableOwner,
+ UCHAR FAR * szTableName,
+ SWORD cbTableName,
+ UWORD fScope,
+ UWORD fNullable);
+
+RETCODE SQL_API SQLStatistics(HSTMT hstmt,
+ UCHAR FAR * szTableQualifier,
+ SWORD cbTableQualifier,
+ UCHAR FAR * szTableOwner,
+ SWORD cbTableOwner,
+ UCHAR FAR * szTableName,
+ SWORD cbTableName,
+ UWORD fUnique,
+ UWORD fAccuracy);
+
+RETCODE SQL_API SQLTables(HSTMT hstmt,
+ UCHAR FAR * szTableQualifier,
+ SWORD cbTableQualifier,
+ UCHAR FAR * szTableOwner,
+ SWORD cbTableOwner,
+ UCHAR FAR * szTableName,
+ SWORD cbTableName,
+ UCHAR FAR * szTableType,
+ SWORD cbTableType);
+
+RETCODE SQL_API SQLBrowseConnect(HDBC hdbc,
+ UCHAR FAR * szConnStrIn,
+ SWORD cbConnStrIn,
+ UCHAR FAR * szConnStrOut,
+ SWORD cbConnStrOutMax,
+ SWORD FAR * pcbConnStrOut);
+
+RETCODE SQL_API SQLColumnPrivileges(HSTMT hstmt,
+ UCHAR FAR * szTableQualifier,
+ SWORD cbTableQualifier,
+ UCHAR FAR * szTableOwner,
+ SWORD cbTableOwner,
+ UCHAR FAR * szTableName,
+ SWORD cbTableName,
+ UCHAR FAR * szColumnName,
+ SWORD cbColumnName);
+
+RETCODE SQL_API SQLDescribeParam(HSTMT hstmt,
+ UWORD ipar,
+ SWORD FAR * pfSqlType,
+ UDWORD FAR * pcbColDef,
+ SWORD FAR * pibScale,
+ SWORD FAR * pfNullable);
+
+RETCODE SQL_API SQLExtendedFetch(HSTMT hstmt,
+ UWORD fFetchType,
+ SDWORD irow,
+ UDWORD FAR * pcrow,
+ UWORD FAR * rgfRowStatus);
+
+RETCODE SQL_API SQLForeignKeys(HSTMT hstmt,
+ UCHAR FAR * szPkTableQualifier,
+ SWORD cbPkTableQualifier,
+ UCHAR FAR * szPkTableOwner,
+ SWORD cbPkTableOwner,
+ UCHAR FAR * szPkTableName,
+ SWORD cbPkTableName,
+ UCHAR FAR * szFkTableQualifier,
+ SWORD cbFkTableQualifier,
+ UCHAR FAR * szFkTableOwner,
+ SWORD cbFkTableOwner,
+ UCHAR FAR * szFkTableName,
+ SWORD cbFkTableName);
+
+RETCODE SQL_API SQLMoreResults(HSTMT hstmt);
+
+RETCODE SQL_API SQLNativeSql(HDBC hdbc,
+ UCHAR FAR * szSqlStrIn,
+ SDWORD cbSqlStrIn,
+ UCHAR FAR * szSqlStr,
+ SDWORD cbSqlStrMax,
+ SDWORD FAR * pcbSqlStr);
+
+RETCODE SQL_API SQLNumParams(HSTMT hstmt,
+ SWORD FAR * pcpar);
+
+RETCODE SQL_API SQLParamOptions(HSTMT hstmt,
+ UDWORD crow,
+ UDWORD FAR * pirow);
+
+RETCODE SQL_API SQLPrimaryKeys(HSTMT hstmt,
+ UCHAR FAR * szTableQualifier,
+ SWORD cbTableQualifier,
+ UCHAR FAR * szTableOwner,
+ SWORD cbTableOwner,
+ UCHAR FAR * szTableName,
+ SWORD cbTableName);
+
+RETCODE SQL_API SQLProcedureColumns(HSTMT hstmt,
+ UCHAR FAR * szProcQualifier,
+ SWORD cbProcQualifier,
+ UCHAR FAR * szProcOwner,
+ SWORD cbProcOwner,
+ UCHAR FAR * szProcName,
+ SWORD cbProcName,
+ UCHAR FAR * szColumnName,
+ SWORD cbColumnName);
+
+RETCODE SQL_API SQLProcedures(HSTMT hstmt,
+ UCHAR FAR * szProcQualifier,
+ SWORD cbProcQualifier,
+ UCHAR FAR * szProcOwner,
+ SWORD cbProcOwner,
+ UCHAR FAR * szProcName,
+ SWORD cbProcName);
+
+RETCODE SQL_API SQLSetPos(HSTMT hstmt,
+ UWORD irow,
+ UWORD fOption,
+ UWORD fLock);
+
+RETCODE SQL_API SQLTablePrivileges(HSTMT hstmt,
+ UCHAR FAR * szTableQualifier,
+ SWORD cbTableQualifier,
+ UCHAR FAR * szTableOwner,
+ SWORD cbTableOwner,
+ UCHAR FAR * szTableName,
+ SWORD cbTableName);
+
+RETCODE SQL_API SQLBindParameter(HSTMT hstmt,
+ UWORD ipar,
+ SWORD fParamType,
+ SWORD fCType,
+ SWORD fSqlType,
+ UDWORD cbColDef,
+ SWORD ibScale,
+ PTR rgbValue,
+ SDWORD cbValueMax,
+ SDWORD FAR * pcbValue);
+
+RETCODE SQL_API SQLSetScrollOptions(HSTMT hstmt,
+ UWORD fConcurrency,
+ SDWORD crowKeyset,
+ UWORD crowRowset);
#ifdef __cplusplus
* procedural language
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/pl/plpgsql/src/pl_exec.c,v 1.49 2001/11/05 19:41:56 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/pl/plpgsql/src/pl_exec.c,v 1.50 2001/11/08 20:37:52 momjian Exp $
*
* This software is copyrighted by Jan Wieck - Hamburg.
*
func->fn_rettypelem,
-1,
&fcinfo->isnull);
+
/*
* If the functions return type isn't by value, copy the value
* into upper executor memory context.