ext/duckdb/result.c in duckdb-0.0.5 vs ext/duckdb/result.c in duckdb-0.0.6

- old
+ new

@@ -14,41 +14,48 @@ { rubyDuckDBResult *ctx = xcalloc((size_t)1, sizeof(rubyDuckDBResult)); return Data_Wrap_Struct(klass, NULL, deallocate, ctx); } -static VALUE to_ruby_obj_boolean(duckdb_result *result, size_t col_idx, size_t row_idx) { +static VALUE to_ruby_obj_boolean(duckdb_result *result, index_t col_idx, index_t row_idx) +{ bool bval = duckdb_value_boolean(result, col_idx, row_idx); return bval ? Qtrue : Qnil; } -static VALUE to_ruby_obj_smallint(duckdb_result *result, size_t col_idx, size_t row_idx) { +static VALUE to_ruby_obj_smallint(duckdb_result *result, index_t col_idx, index_t row_idx) +{ int16_t i16val = duckdb_value_int16(result, col_idx, row_idx); return INT2FIX(i16val); } -static VALUE to_ruby_obj_integer(duckdb_result *result, size_t col_idx, size_t row_idx) { +static VALUE to_ruby_obj_integer(duckdb_result *result, index_t col_idx, index_t row_idx) +{ int32_t i32val = duckdb_value_int32(result, col_idx, row_idx); return INT2NUM(i32val); } -static VALUE to_ruby_obj_bigint(duckdb_result *result, size_t col_idx, size_t row_idx) { +static VALUE to_ruby_obj_bigint(duckdb_result *result, index_t col_idx, index_t row_idx) +{ int64_t i64val = duckdb_value_int64(result, col_idx, row_idx); return rb_int2big(i64val); } -static VALUE to_ruby_obj_float(duckdb_result *result, size_t col_idx, size_t row_idx) { +static VALUE to_ruby_obj_float(duckdb_result *result, index_t col_idx, index_t row_idx) +{ float fval = duckdb_value_float(result, col_idx, row_idx); return DBL2NUM(fval); } -static VALUE to_ruby_obj_double(duckdb_result *result, size_t col_idx, size_t row_idx) { +static VALUE to_ruby_obj_double(duckdb_result *result, index_t col_idx, index_t row_idx) +{ double dval = duckdb_value_double(result, col_idx, row_idx); return DBL2NUM(dval); } -static VALUE to_ruby_obj(duckdb_result *result, size_t col_idx, size_t row_idx) { +static VALUE to_ruby_obj(duckdb_result *result, index_t col_idx, index_t row_idx) +{ char *p; VALUE obj = Qnil; if (result->columns[col_idx].nullmask[row_idx]) { return obj; } @@ -71,39 +78,43 @@ free(p); } return obj; } -static VALUE row_array(rubyDuckDBResult *ctx, size_t row_idx) { - size_t col_idx; +static VALUE row_array(rubyDuckDBResult *ctx, index_t row_idx) +{ + index_t col_idx; VALUE ary = rb_ary_new2(ctx->result.column_count); for(col_idx = 0; col_idx < ctx->result.column_count; col_idx++) { rb_ary_store(ary, col_idx, to_ruby_obj(&(ctx->result), col_idx, row_idx)); } return ary; } -static VALUE duckdb_result_row_size(VALUE oDuckDBResult, VALUE args, VALUE obj) { +static VALUE duckdb_result_row_size(VALUE oDuckDBResult, VALUE args, VALUE obj) +{ rubyDuckDBResult *ctx; Data_Get_Struct(oDuckDBResult, rubyDuckDBResult, ctx); return LONG2FIX(ctx->result.row_count); } -static VALUE duckdb_result_each(VALUE oDuckDBResult) { +static VALUE duckdb_result_each(VALUE oDuckDBResult) +{ rubyDuckDBResult *ctx; - size_t row_idx = 0; + index_t row_idx = 0; RETURN_SIZED_ENUMERATOR(oDuckDBResult, 0, 0, duckdb_result_row_size); Data_Get_Struct(oDuckDBResult, rubyDuckDBResult, ctx); for (row_idx = 0; row_idx < ctx->result.row_count; row_idx++) { rb_yield(row_array(ctx, row_idx)); } return oDuckDBResult; } -VALUE create_result(void) { +VALUE create_result(void) +{ return allocate(cDuckDBResult); } void init_duckdb_result(void) {