class DuckDB::ExtractedStatementsImpl
Public Class Methods
Source
static VALUE duckdb_extracted_statements_initialize(VALUE self, VALUE con, VALUE query) {
rubyDuckDBConnection *pcon;
rubyDuckDBExtractedStatements *ctx;
char *pquery;
const char *error;
if (rb_obj_is_kind_of(con, cDuckDBConnection) != Qtrue) {
rb_raise(rb_eTypeError, "1st argument must be DuckDB::Connection");
}
pquery = StringValuePtr(query);
pcon = get_struct_connection(con);
TypedData_Get_Struct(self, rubyDuckDBExtractedStatements, &extract_statements_data_type, ctx);
ctx->num_statements = duckdb_extract_statements(pcon->con, pquery, &(ctx->extracted_statements));
if (ctx->num_statements == 0) {
error = duckdb_extract_statements_error(ctx->extracted_statements);
rb_raise(eDuckDBError, "%s", error ? error : "Failed to extract statements(Database connection closed?).");
}
return self;
}
Public Instance Methods
Source
static VALUE duckdb_extracted_statements_destroy(VALUE self) {
rubyDuckDBExtractedStatements *ctx;
TypedData_Get_Struct(self, rubyDuckDBExtractedStatements, &extract_statements_data_type, ctx);
duckdb_destroy_extracted(&(ctx->extracted_statements));
return Qnil;
}
Source
static VALUE duckdb_extracted_statements_prepared_statement(VALUE self, VALUE con, VALUE index) {
rubyDuckDBConnection *pcon;
rubyDuckDBExtractedStatements *ctx;
if (rb_obj_is_kind_of(con, cDuckDBConnection) != Qtrue) {
rb_raise(rb_eTypeError, "1st argument must be DuckDB::Connection");
}
pcon = get_struct_connection(con);
TypedData_Get_Struct(self, rubyDuckDBExtractedStatements, &extract_statements_data_type, ctx);
return rbduckdb_prepared_statement_new(pcon->con, ctx->extracted_statements, NUM2ULL(index));
}
Source
static VALUE duckdb_extracted_statements_size(VALUE self) {
rubyDuckDBExtractedStatements *ctx;
TypedData_Get_Struct(self, rubyDuckDBExtractedStatements, &extract_statements_data_type, ctx);
return ULL2NUM(ctx->num_statements);
}