PostgreSQL Source Code git master
Data Structures | Macros | Typedefs | Functions
libpq-be-fe.h File Reference
#include "libpq-fe.h"
Include dependency graph for libpq-be-fe.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct   libpqsrv_PGresult
 

Macros

#define  PGresult   libpqsrv_PGresult
 
#define  PQclear   libpqsrv_PQclear
 
 
 
 
 
 
#define  PQntuples   libpqsrv_PQntuples
 
#define  PQnfields   libpqsrv_PQnfields
 
 
 
 
#define  PQfname   libpqsrv_PQfname
 
 

Typedefs

 

Functions

 
static void  libpqsrv_PQclear (libpqsrv_PGresult *bres)
 
 
 
 
static const char *  libpqsrv_PQresultErrorMessage (const libpqsrv_PGresult *res)
 
static char *  libpqsrv_PQresultErrorField (const libpqsrv_PGresult *res, int fieldcode)
 
static char *  libpqsrv_PQcmdStatus (const libpqsrv_PGresult *res)
 
static int  libpqsrv_PQntuples (const libpqsrv_PGresult *res)
 
static int  libpqsrv_PQnfields (const libpqsrv_PGresult *res)
 
static char *  libpqsrv_PQgetvalue (const libpqsrv_PGresult *res, int tup_num, int field_num)
 
static int  libpqsrv_PQgetlength (const libpqsrv_PGresult *res, int tup_num, int field_num)
 
static int  libpqsrv_PQgetisnull (const libpqsrv_PGresult *res, int tup_num, int field_num)
 
static char *  libpqsrv_PQfname (const libpqsrv_PGresult *res, int field_num)
 
static const char *  libpqsrv_PQcmdTuples (const libpqsrv_PGresult *res)
 

Macro Definition Documentation

PGresult

Definition at line 244 of file libpq-be-fe.h.

PQclear

#define PQclear   libpqsrv_PQclear

Definition at line 245 of file libpq-be-fe.h.

PQcmdStatus

#define PQcmdStatus   libpqsrv_PQcmdStatus

Definition at line 250 of file libpq-be-fe.h.

PQcmdTuples

#define PQcmdTuples   libpqsrv_PQcmdTuples

Definition at line 257 of file libpq-be-fe.h.

PQfname

#define PQfname   libpqsrv_PQfname

Definition at line 256 of file libpq-be-fe.h.

PQgetisnull

#define PQgetisnull   libpqsrv_PQgetisnull

Definition at line 255 of file libpq-be-fe.h.

PQgetlength

#define PQgetlength   libpqsrv_PQgetlength

Definition at line 254 of file libpq-be-fe.h.

PQgetResult

#define PQgetResult   libpqsrv_PQgetResult

Definition at line 246 of file libpq-be-fe.h.

PQgetvalue

#define PQgetvalue   libpqsrv_PQgetvalue

Definition at line 253 of file libpq-be-fe.h.

PQnfields

#define PQnfields   libpqsrv_PQnfields

Definition at line 252 of file libpq-be-fe.h.

PQntuples

#define PQntuples   libpqsrv_PQntuples

Definition at line 251 of file libpq-be-fe.h.

PQresultErrorField

#define PQresultErrorField   libpqsrv_PQresultErrorField

Definition at line 249 of file libpq-be-fe.h.

PQresultErrorMessage

#define PQresultErrorMessage   libpqsrv_PQresultErrorMessage

Definition at line 248 of file libpq-be-fe.h.

PQresultStatus

#define PQresultStatus   libpqsrv_PQresultStatus

Definition at line 247 of file libpq-be-fe.h.

Typedef Documentation

libpqsrv_PGresult

Function Documentation

libpqsrv_PGresultSetParent()

static libpqsrv_PGresult * libpqsrv_PGresultSetParent ( libpqsrv_PGresultbres,
MemoryContext  ctx 
)
inlinestatic

Definition at line 109 of file libpq-be-fe.h.

110{
111 libpqsrv_PGresult *newres;
112
113 /* We pass through a NULL result as-is */
114 if (bres == NULL)
115 return NULL;
116 /* Make a new wrapper in the target context, raising error on OOM */
117 newres = (libpqsrv_PGresult *)
119 /* Okay, set up the new wrapper */
120 newres->res = bres->res;
121 newres->ctx = ctx;
123 newres->cb.arg = bres->res;
125 /* Disarm and delete the old wrapper */
127 pfree(bres);
128 return newres;
129}
#define PQclear
Definition: libpq-be-fe.h:245
void MemoryContextUnregisterResetCallback(MemoryContext context, MemoryContextCallback *cb)
Definition: mcxt.c:604
void * MemoryContextAlloc(MemoryContext context, Size size)
Definition: mcxt.c:1229
void MemoryContextRegisterResetCallback(MemoryContext context, MemoryContextCallback *cb)
Definition: mcxt.c:579
void pfree(void *pointer)
Definition: mcxt.c:1594
void(* MemoryContextCallbackFunction)(void *arg)
Definition: palloc.h:45
MemoryContextCallbackFunction func
Definition: palloc.h:49
MemoryContextCallback cb
Definition: libpq-be-fe.h:48
MemoryContext ctx
Definition: libpq-be-fe.h:47
PGresult * res
Definition: libpq-be-fe.h:46

References MemoryContextCallback::arg, libpqsrv_PGresult::cb, libpqsrv_PGresult::ctx, MemoryContextCallback::func, MemoryContextAlloc(), MemoryContextRegisterResetCallback(), MemoryContextUnregisterResetCallback(), pfree(), PQclear, and libpqsrv_PGresult::res.

Referenced by execute_dml_stmt().

libpqsrv_PQclear()

static void libpqsrv_PQclear ( libpqsrv_PGresultbres )
inlinestatic

Definition at line 95 of file libpq-be-fe.h.

96{
97 if (bres)
98 {
100 PQclear(bres->res);
101 pfree(bres);
102 }
103}

References libpqsrv_PGresult::cb, libpqsrv_PGresult::ctx, MemoryContextUnregisterResetCallback(), pfree(), PQclear, and libpqsrv_PGresult::res.

libpqsrv_PQcmdStatus()

static char * libpqsrv_PQcmdStatus ( const libpqsrv_PGresultres )
inlinestatic

Definition at line 175 of file libpq-be-fe.h.

176{
177 if (!res)
178 return NULL;
179 return PQcmdStatus(res->res);
180}
#define PQcmdStatus
Definition: libpq-be-fe.h:250

References PQcmdStatus, and libpqsrv_PGresult::res.

libpqsrv_PQcmdTuples()

static const char * libpqsrv_PQcmdTuples ( const libpqsrv_PGresultres )
inlinestatic

Definition at line 231 of file libpq-be-fe.h.

232{
233 if (!res)
234 return "";
235 return PQcmdTuples(res->res);
236}
#define PQcmdTuples
Definition: libpq-be-fe.h:257

References PQcmdTuples, and libpqsrv_PGresult::res.

libpqsrv_PQfname()

static char * libpqsrv_PQfname ( const libpqsrv_PGresultres,
int  field_num 
)
inlinestatic

Definition at line 223 of file libpq-be-fe.h.

224{
225 if (!res)
226 return NULL;
227 return PQfname(res->res, field_num);
228}
#define PQfname
Definition: libpq-be-fe.h:256

References PQfname, and libpqsrv_PGresult::res.

libpqsrv_PQgetisnull()

static int libpqsrv_PQgetisnull ( const libpqsrv_PGresultres,
int  tup_num,
int  field_num 
)
inlinestatic

Definition at line 215 of file libpq-be-fe.h.

216{
217 if (!res)
218 return 1; /* pretend it is null */
219 return PQgetisnull(res->res, tup_num, field_num);
220}
#define PQgetisnull
Definition: libpq-be-fe.h:255

References PQgetisnull, and libpqsrv_PGresult::res.

libpqsrv_PQgetlength()

static int libpqsrv_PQgetlength ( const libpqsrv_PGresultres,
int  tup_num,
int  field_num 
)
inlinestatic

Definition at line 207 of file libpq-be-fe.h.

208{
209 if (!res)
210 return 0;
211 return PQgetlength(res->res, tup_num, field_num);
212}
#define PQgetlength
Definition: libpq-be-fe.h:254

References PQgetlength, and libpqsrv_PGresult::res.

libpqsrv_PQgetResult()

static libpqsrv_PGresult * libpqsrv_PQgetResult ( PGconnconn )
inlinestatic

Definition at line 138 of file libpq-be-fe.h.

139{
141}
#define PQgetResult
Definition: libpq-be-fe.h:246
static libpqsrv_PGresult * libpqsrv_PQwrap(PGresult *res)
Definition: libpq-be-fe.h:60
PGconn * conn
Definition: streamutil.c:52

References conn, libpqsrv_PQwrap(), and PQgetResult.

libpqsrv_PQgetvalue()

static char * libpqsrv_PQgetvalue ( const libpqsrv_PGresultres,
int  tup_num,
int  field_num 
)
inlinestatic

Definition at line 199 of file libpq-be-fe.h.

200{
201 if (!res)
202 return NULL;
203 return PQgetvalue(res->res, tup_num, field_num);
204}
#define PQgetvalue
Definition: libpq-be-fe.h:253

References PQgetvalue, and libpqsrv_PGresult::res.

libpqsrv_PQnfields()

static int libpqsrv_PQnfields ( const libpqsrv_PGresultres )
inlinestatic

Definition at line 191 of file libpq-be-fe.h.

192{
193 if (!res)
194 return 0;
195 return PQnfields(res->res);
196}
#define PQnfields
Definition: libpq-be-fe.h:252

References PQnfields, and libpqsrv_PGresult::res.

libpqsrv_PQntuples()

static int libpqsrv_PQntuples ( const libpqsrv_PGresultres )
inlinestatic

Definition at line 183 of file libpq-be-fe.h.

184{
185 if (!res)
186 return 0;
187 return PQntuples(res->res);
188}
#define PQntuples
Definition: libpq-be-fe.h:251

References PQntuples, and libpqsrv_PGresult::res.

libpqsrv_PQresultErrorField()

static char * libpqsrv_PQresultErrorField ( const libpqsrv_PGresultres,
int  fieldcode 
)
inlinestatic

Definition at line 167 of file libpq-be-fe.h.

168{
169 if (!res)
170 return NULL;
171 return PQresultErrorField(res->res, fieldcode);
172}
#define PQresultErrorField
Definition: libpq-be-fe.h:249

References PQresultErrorField, and libpqsrv_PGresult::res.

libpqsrv_PQresultErrorMessage()

static const char * libpqsrv_PQresultErrorMessage ( const libpqsrv_PGresultres )
inlinestatic

Definition at line 159 of file libpq-be-fe.h.

160{
161 if (!res)
162 return "";
163 return PQresultErrorMessage(res->res);
164}
#define PQresultErrorMessage
Definition: libpq-be-fe.h:248

References PQresultErrorMessage, and libpqsrv_PGresult::res.

libpqsrv_PQresultStatus()

static ExecStatusType libpqsrv_PQresultStatus ( const libpqsrv_PGresultres )
inlinestatic

Definition at line 151 of file libpq-be-fe.h.

152{
153 if (!res)
154 return PGRES_FATAL_ERROR;
155 return PQresultStatus(res->res);
156}
#define PQresultStatus
Definition: libpq-be-fe.h:247
@ PGRES_FATAL_ERROR
Definition: libpq-fe.h:136

References PGRES_FATAL_ERROR, PQresultStatus, and libpqsrv_PGresult::res.

libpqsrv_PQwrap()

static libpqsrv_PGresult * libpqsrv_PQwrap ( PGresultres )
inlinestatic

Definition at line 60 of file libpq-be-fe.h.

61{
64
65 /* We pass through a NULL result as-is, since there's nothing to free */
66 if (res == NULL)
67 return NULL;
68 /* Attempt to allocate the wrapper ... this had better not throw error */
69 bres = (libpqsrv_PGresult *)
71 sizeof(libpqsrv_PGresult),
73 /* If we failed to allocate a wrapper, free the PGresult before failing */
74 if (bres == NULL)
75 {
76 PQclear(res);
78 (errcode(ERRCODE_OUT_OF_MEMORY),
79 errmsg("out of memory")));
80 }
81 /* Okay, set up the wrapper */
82 bres->res = res;
83 bres->ctx = ctx;
85 bres->cb.arg = res;
87 return bres;
88}
int errcode(int sqlerrcode)
Definition: elog.c:854
int errmsg(const char *fmt,...)
Definition: elog.c:1071
#define ERROR
Definition: elog.h:39
#define ereport(elevel,...)
Definition: elog.h:150
#define MCXT_ALLOC_NO_OOM
Definition: fe_memutils.h:29
MemoryContext CurrentMemoryContext
Definition: mcxt.c:160
void * MemoryContextAllocExtended(MemoryContext context, Size size, int flags)
Definition: mcxt.c:1286

References MemoryContextCallback::arg, libpqsrv_PGresult::cb, libpqsrv_PGresult::ctx, CurrentMemoryContext, ereport, errcode(), errmsg(), ERROR, MemoryContextCallback::func, MCXT_ALLOC_NO_OOM, MemoryContextAllocExtended(), MemoryContextRegisterResetCallback(), PQclear, and libpqsrv_PGresult::res.

Referenced by libpqsrv_PQgetResult().

AltStyle によって変換されたページ (->オリジナル) /