Postgres
view release on metacpan or search on metacpan
Postgres.xs view on Meta::CPAN
CODE:
RETVAL=PQfsize(q->res,field);
OUTPUT:
RETVAL
char *
query_getvalue(q,tuple,field)
QUERY *q;
int tuple;
int field;
PROTOTYPE: $$$
CODE:
RETVAL=PQgetvalue(q->res,tuple,field);
OUTPUT:
RETVAL
int
query_getlength(q,tuple,field)
QUERY *q;
int tuple;
int field;
PROTOTYPE: $$$
CODE:
RETVAL=PQgetlength(q->res,tuple,field);
OUTPUT:
RETVAL
int
query_getisnull(q,tuple,field)
QUERY *q;
int tuple;
int field;
PROTOTYPE: $$$
CODE:
RETVAL=PQgetisnull(q->res,tuple,field);
OUTPUT:
RETVAL
char *
query_cmdStatus(q)
QUERY *q;
PROTOTYPE: $
CODE:
RETVAL=PQcmdStatus(q->res);
OUTPUT:
RETVAL
char *
query_oidStatus(q)
QUERY *q;
PROTOTYPE: $
CODE:
RETVAL=PQoidStatus(q->res);
OUTPUT:
RETVAL
void
query_fetchrow(q)
QUERY *q;
PROTOTYPE: $
PPCODE:
if (q && q->res) {
int cols = PQnfields(q->res);
/* return empty list when no more data */
if (PQntuples(q->res) > q->cur_row) { /* out of tuples to return */
int cur_col = 0;
EXTEND(sp,cols);
while(cur_col < cols) {
if (PQgetisnull(q->res,q->cur_row,cur_col))
PUSHs(&sv_undef);
else {
char *val = PQgetvalue(q->res,q->cur_row,cur_col);
PUSHs(sv_2mortal((SV*)newSVpv(val,0)));
}
++cur_col;
} /* while */
++q->cur_row; /* go to next row */
} /* tuples to return */
/* else just drop through and return empty list */
} /* if q */
( run in 2.593 seconds using v1.01-cache-2.11-cpan-5511b514fd6 )