PAB3-DB-Driver-Postgres
view release on metacpan or search on metacpan
Postgres.xs view on Meta::CPAN
# ******************************************************************************/
void
fetch_names( resid )
void * resid;
PREINIT:
dMY_CXT;
MY_RES *res;
const char *name;
int num_fields, i;
PPCODE:
switch( my_stmt_or_result( &MY_CXT, resid ) ) {
case MY_TYPE_RES:
res = (MY_RES *) resid;
break;
case MY_TYPE_STMT:
res = ( (MY_STMT *) resid )->res;
break;
}
if( res != NULL ) {
res = (MY_RES *) resid;
Postgres.xs view on Meta::CPAN
void
fetch_field( resid, offset = -1 )
void * resid;
long offset;
PREINIT:
dMY_CXT;
MY_RES *res = NULL;
const char *tmps;
UV tmpu;
PPCODE:
switch( my_stmt_or_result( &MY_CXT, resid ) ) {
case MY_TYPE_RES:
res = (MY_RES *) resid;
break;
case MY_TYPE_STMT:
res = ( (MY_STMT *) resid )->res;
break;
}
if( res != NULL ) {
if( offset >= 0 ) {
Postgres.xs view on Meta::CPAN
# ******************************************************************************/
void
fetch_row( resid )
void * resid;
PREINIT:
dMY_CXT;
DWORD i, l;
MY_RES *res;
const char *val;
PPCODE:
switch( my_stmt_or_result( &MY_CXT, resid ) ) {
case MY_TYPE_RES:
res = (MY_RES *) resid;
break;
case MY_TYPE_STMT:
res = ( (MY_STMT *) resid )->res;
break;
}
if( res != NULL ) {
if( res->rowpos < res->numrows ) {
Postgres.xs view on Meta::CPAN
# ******************************************************************************/
void
fetch_col( resid )
void * resid;
PREINIT:
dMY_CXT;
MY_RES *res;
DWORD i, l;
const char *val;
PPCODE:
switch( my_stmt_or_result( &MY_CXT, resid ) ) {
case MY_TYPE_RES:
res = (MY_RES *) resid;
break;
case MY_TYPE_STMT:
res = ( (MY_STMT *) resid )->res;
break;
}
if( res != NULL ) {
EXTEND( SP, res->numrows );
Postgres.xs view on Meta::CPAN
# ******************************************************************************/
void
fetch_hash( resid )
void * resid;
PREINIT:
dMY_CXT;
MY_RES *res;
DWORD i, l;
const char *val, *name;
PPCODE:
switch( my_stmt_or_result( &MY_CXT, resid ) ) {
case MY_TYPE_RES:
res = (MY_RES *) resid;
break;
case MY_TYPE_STMT:
res = ( (MY_STMT *) resid )->res;
break;
}
if( res != NULL ) {
if( res->rowpos < res->numrows ) {
Postgres.xs view on Meta::CPAN
# * fetch_lengths( resid )
# ******************************************************************************/
void
fetch_lengths( resid )
void * resid;
PREINIT:
dMY_CXT;
MY_RES *res;
DWORD i, s;
PPCODE:
switch( my_stmt_or_result( &MY_CXT, resid ) ) {
case MY_TYPE_RES:
res = (MY_RES *) resid;
break;
case MY_TYPE_STMT:
res = ( (MY_STMT *) resid )->res;
break;
}
if( res != NULL ) {
EXTEND( SP, res->numfields );
Postgres.xs view on Meta::CPAN
void
show_catalogs( linkid = 0, wild = 0 )
void * linkid;
const char *wild;
PREINIT:
dMY_CXT;
MY_CON *con;
PGresult *pres;
DWORD numrows, i, l;
const char *val;
PPCODE:
con = my_con_verify( &MY_CXT, linkid );
if( con == NULL ) goto error;
pres = PQexec( con->con, "select datname from pg_database" );
if( PQresultStatus( pres ) == PGRES_TUPLES_OK ) {
numrows = PQntuples( pres );
for( i = 0; i < numrows; i ++ ) {
l = PQgetlength( pres, i, 0 );
val = PQgetvalue( pres, i, 0 );
XPUSHs( sv_2mortal( newSVpvn( val, l ) ) );
}
Postgres.xs view on Meta::CPAN
const char *db = NULL;
const char *schema = NULL;
const char *wild = NULL;
MY_CON *con;
char sql[1024], *p1;
DWORD numrows, i, l, dbl;
int itemp = 0;
const char *val;
AV *av;
PGresult *res;
PPCODE:
if( items < 0 || items > 4 )
Perl_croak( aTHX_ "Usage: " __PACKAGE__ "::show_tables(linkid = 0, schema = NULL, db = NULL, wild = NULL)" );
if( SvIOK( ST( itemp ) ) ) {
linkid = INT2PTR( void *, SvIV( ST( itemp ) ) );
itemp ++;
}
if( itemp < items ) {
schema = (const char *) SvPV_nolen( ST( itemp ) );
itemp ++;
}
( run in 0.724 second using v1.01-cache-2.11-cpan-5511b514fd6 )