static VALUE
rlbug_query_summary_s_from_result( VALUE klass, VALUE query_result )
{
rlbug_query_result *result = rlbug_get_result( query_result );
lbug_query_summary *query_summary = ALLOC( lbug_query_summary );
VALUE query_summary_obj = rb_class_new_instance( 0, 0, klass );
/*
TODO Release the GIL
*/
if ( lbug_query_result_get_query_summary(&result->result, query_summary) != LbugSuccess ) {
xfree( query_summary );
query_summary = NULL;
rb_raise( rlbug_eQueryError, "Could not fetch the query summary." );
}
DEBUG_GC( ">>> allocated query summary %p\n", query_summary );
RTYPEDDATA_DATA( query_summary_obj ) = query_summary;
return query_summary_obj;
}