Net-Drizzle
view release on metacpan or search on metacpan
Result.xs.mt view on Meta::CPAN
}
drizzle_result_calc_row_size(result, fields, sizes);
Safefree(sizes);
Safefree(fields);
RETVAL = SvREFCNT_inc(self);
OUTPUT:
RETVAL
=item $result->fields_write(...);
Send a fields over a connection
=cut
SV*
fields_write(SV * self, ...)
CODE:
drizzle_result_st *result = XS_STATE(net_result*, self)->result;
int i;
for (i=1; i<items; i++) { /* 1 means "skip SV* self" */
size_t size;
drizzle_field_t field;
field = SvPV(ST(i), size);
drizzle_return_t ret = drizzle_field_write(result, field, size, size);
if (ret != DRIZZLE_RETURN_OK) {
drizzle_con_st * con = drizzle_result_drizzle_con(result);
drizzle_st * drizzle = drizzle_con_drizzle(con);
Perl_croak(aTHX_ "drizzle_column_create:%s\n", drizzle_error(drizzle));
}
}
RETVAL = SvREFCNT_inc(self);
OUTPUT:
RETVAL
=item my $row_number = $result->row_read;
Get next row number for unbuffered results. Use the $result->field* functions
to read individual fields after this function succeeds.
=cut
uint64_t
row_read(net_result *result)
CODE:
drizzle_return_t ret;
uint64_t cur = drizzle_row_read(result->result, &ret);
if (ret != DRIZZLE_RETURN_OK) {
drizzle_con_st * con = drizzle_result_drizzle_con(result->result);
drizzle_st * drizzle = drizzle_con_drizzle(con);
Perl_croak(aTHX_ "drizzle_column_create:%s\n", drizzle_error(drizzle));
}
RETVAL = cur;
OUTPUT:
RETVAL
=item my ($ret, $field) = $res->field_buffer();
Buffer one field.
=cut
void
field_buffer(net_result *result)
PPCODE:
/* my ($ret, $field) = $res->field_buffer(); */
drizzle_return_t ret;
size_t total;
drizzle_field_t field = drizzle_field_buffer(result->result, &total, &ret);
mXPUSHi(ret);
mXPUSHs(field != NULL ? newSVpv(field, total) : newSV(0));
XSRETURN(2);
=back
=head2 METHODS for servers
=over 4
=item $result->set_eof();
Set EOF for a result.
=cut
SV *
set_eof(SV *self_sv, bool eof)
CODE:
net_result * self_result = XS_STATE(net_result *, self_sv);
drizzle_result_st *result = self_result->result;
drizzle_result_set_eof(result, eof);
RETVAL = SvREFCNT_inc_simple(self_sv);
OUTPUT:
RETVAL
=item $result->write($flush);
Write result packet.
=cut
SV *
write(SV *self_sv, bool flush)
CODE:
net_result * self_result = XS_STATE(net_result *, self_sv);
drizzle_result_st *result = self_result->result;
drizzle_con_st * con = drizzle_result_drizzle_con(result);
drizzle_result_write(con, result, flush);
RETVAL = SvREFCNT_inc(self_sv);
OUTPUT:
RETVAL
=item $result->row_write();
Write next row.
=cut
void
row_write(net_result *result)
CODE:
drizzle_row_write(result->result);
void
DESTROY(net_result *self)
CODE:
LOG("DESTROY result 0x%X, drizzle->refcnt=%d\n", (unsigned int)self->drizzle, (int)SvREFCNT(self->drizzle));
( run in 1.025 second using v1.01-cache-2.11-cpan-5511b514fd6 )