DBD-Teradata
view release on metacpan or search on metacpan
Teradata.xs view on Meta::CPAN
return Error_Fail->Code;
}
MODULE = DBD::Teradata PACKAGE = DBD::Teradata::Cli
void
tdxs_set_debug(dbc, val)
SV * dbc
SV * val
PPCODE:
dbc_ctxptr_t dbcp = INT2PTR(dbc_ctxptr_t, SvUV(dbc));
dbcp->debug = SvTRUE(val) ? SvIV(val) : 0;
ST(0) = &PL_sv_yes;
XSRETURN(1);
void
tdxs_init_dbcarea(debug)
SV * debug
PPCODE:
dbc_ctxptr_t dbc_ctx = NULL;
DBCAREA *dbcp = NULL;
SV *dbcarea = NULL;
I32 result;
char *cnta = NULL;
Newz(0, dbc_ctx, 1, dbc_ctx_t);
dbcp = &dbc_ctx->dbc;
dbc_ctx->debug = SvTRUE(debug) ? SvIV(debug) : 0;
ST(0) = sv_2mortal(newSVuv(PTR2UV(dbc_ctx)));
dbcp->total_len = sizeof (DBCAREA);
Teradata.xs view on Meta::CPAN
void
tdxs_get_connection(dbcarea, logonstr, mode, runstring, logonsrc, charset)
SV * dbcarea
SV * logonstr
SV * mode
SV * runstring
SV * logonsrc
SV * charset
PPCODE:
I32 result;
STRLEN logonlen;
STRLEN runlen;
STRLEN logonsrclen;
char *mymode;
char *cnta = NULL;
dbc_ctxptr_t dbc_ctx = INT2PTR(dbc_ctxptr_t, SvUV(dbcarea));
DBCAREA *dbcp = &dbc_ctx->dbc;
byte charsetcode = (byte)(SvIV(charset));
char relstr[7];
Teradata.xs view on Meta::CPAN
PUSHs(sv_2mortal(newSVpv(verstr, strlen(verstr))));
PUSHs(sv_2mortal(newSViv(mylsn)));
PUSHs(sv_2mortal(newSViv(0)));
PUSHs(&PL_sv_undef);
XSRETURN(5);
void
tdxs_get_tdat_release(dbc)
SV *dbc
PPCODE:
dbc_ctx_t *dbc_ctx = (dbc_ctx_t *)SvIV(dbc);
DBCAREA *dbcp = &dbc_ctx->dbc;
char relstr[7];
char verstr[15];
I32 result;
char cnta[1];
DBCHREL(&result, cnta, dbcp->i_sess_id, relstr, verstr);
ST(0) = sv_2mortal(newSVpv(verstr, strlen(verstr)));
XSRETURN(1);
void
tdxs_cleanup(dbc, errstr)
SV *dbc
SV *errstr
PPCODE:
dbc_ctxptr_t dbc_ctx = INT2PTR(dbc_ctxptr_t, SvUV(dbc));
DBCAREA *dbcp = &dbc_ctx->dbc;
I32 result;
char *cnta = NULL;
dbcp->func = DBFDSC;
DBCHCL (&result, cnta, dbcp);
if (result != EM_OK)
sv_setpv(errstr, dbcp->msg_text);
Teradata.xs view on Meta::CPAN
XSRETURN(1);
void
tdxs_send_request(dbc, len, keepresp, buffer, resplen)
SV * dbc
SV * len
SV * keepresp
SV * buffer
SV * resplen
PPCODE:
STRLEN buflen;
STRLEN rlen;
char *buf = SvPV(buffer, buflen) + TDAT_HDR_SZ;
dbc_ctxptr_t dbc_ctx = INT2PTR(dbc_ctxptr_t, SvUV(dbc));
DBCAREA *dbcp = &dbc_ctx->dbc;
I32 result;
char *cnta = NULL;
buflen = SvIV(len);
buflen -= TDAT_HDR_SZ;
Teradata.xs view on Meta::CPAN
printf("send_request: request sent; reqid %i\n", dbcp->o_req_id);
PUSHs(sv_2mortal(newSViv(dbcp->o_req_id)));
PUSHs(sv_2mortal(newSViv(0)));
PUSHs(&PL_sv_undef);
XSRETURN(2);
void
tdxs_wait_for_response()
PPCODE:
I32 result = EM_OK;
I32 sessid = 0;
I32 token = 0;
char *cnta = NULL;
DBCHWAT(&result, cnta, &sessid, &token);
EXTEND(SP, 3);
if (result != EM_OK) {
PUSHs(&PL_sv_undef);
PUSHs(sv_2mortal(newSViv(result)));
PUSHs(&PL_sv_undef);
Teradata.xs view on Meta::CPAN
XSRETURN(3);
void
tdxs_get_response(dbc, buffer, reqid, keepresp, wait_for_resp)
SV *dbc
SV *buffer
SV *reqid
SV *keepresp
SV *wait_for_resp
PPCODE:
dbc_ctx_t *dbc_ctx = (dbc_ctx_t *)SvIV(dbc);
DBCAREA *dbcp = &dbc_ctx->dbc;
I32 result;
char *cnta = NULL;
char *fullbuf = NULL;
SV *newbuf = NULL;
if (dbc_ctx->debug > 2)
printf("get_response: dbcp is %p\n", dbcp);
dbcp->i_req_id = SvIV(reqid);
Teradata.xs view on Meta::CPAN
sv_catpvn(buffer, dbcp->fet_data_ptr, dbcp->fet_ret_data_len);
PUSHs(sv_2mortal(newSViv(0)));
PUSHs(&PL_sv_undef);
XSRETURN(2);
void
tdxs_end_request(dbc, reqid)
SV *dbc
int reqid
PPCODE:
dbc_ctxptr_t dbc_ctx = INT2PTR(dbc_ctxptr_t, SvUV(dbc));
DBCAREA *dbcp = &dbc_ctx->dbc;
I32 result = EM_OK;
char *cnta = NULL;
if (dbc_ctx->debug)
printf("EndReq: End request for %d\n", reqid);
dbcp->i_req_id = reqid;
dbcp->func = DBFERQ;
DBCHCL (&result, cnta, dbcp);
Teradata.xs view on Meta::CPAN
PUSHs(sv_2mortal(newSViv(0)));
PUSHs(&PL_sv_undef);
XSRETURN(2);
void
tdxs_abort_request(dbc, reqid)
SV * dbc
int reqid
PPCODE:
dbc_ctxptr_t dbc_ctx = INT2PTR(dbc_ctxptr_t, SvUV(dbc));
DBCAREA *dbcp = &dbc_ctx->dbc;
I32 result = EM_OK;
char *cnta = NULL;
if (dbc_ctx->debug)
printf("AbortReq: Abort request for %d\n", reqid);
dbcp->i_req_id = reqid;
dbcp->func = DBFABT;
DBCHCL (&result, cnta, dbcp);
Teradata.xs view on Meta::CPAN
PUSHs(sv_2mortal(newSViv(0)));
PUSHs(&PL_sv_undef);
XSRETURN(2);
void
tdxs_test_leak(dbc, buffer, count)
SV * dbc
SV * buffer
SV * count
PPCODE:
STRLEN buflen;
char *buf = SvPV(buffer, buflen) + TDAT_HDR_SZ;
dbc_ctx_t *dbc_ctx = (dbc_ctx_t *)SvIV(dbc);
DBCAREA *dbcp = &dbc_ctx->dbc;
I32 result;
char *cnta = NULL;
int i = SvIV(count);
buflen -= TDAT_HDR_SZ;
( run in 0.578 second using v1.01-cache-2.11-cpan-71847e10f99 )