Class: DuckDB::ExtractedStatements

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/duckdb/extracted_statements.rb,
ext/duckdb/extracted_statements.c

Instance Method Summary collapse

Constructor Details

#initialize(con, sql) ⇒ ExtractedStatements

Returns a new instance of ExtractedStatements.



7
8
9
10
# File 'lib/duckdb/extracted_statements.rb', line 7

def initialize(con, sql)
  @con = con
  _initialize(con, sql)
end

Instance Method Details

#destroyObject



66
67
68
69
70
71
72
73
74
# File 'ext/duckdb/extracted_statements.c', line 66

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;
}

#eachObject



12
13
14
15
16
17
18
# File 'lib/duckdb/extracted_statements.rb', line 12

def each
  return to_enum(__method__) { size } unless block_given?

  size.times do |i|
    yield prepared_statement(@con, i)
  end
end

#prepared_statement(con, index) ⇒ Object



84
85
86
87
88
89
90
91
92
93
94
95
# File 'ext/duckdb/extracted_statements.c', line 84

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));
}

#sizeObject



76
77
78
79
80
81
82
# File 'ext/duckdb/extracted_statements.c', line 76

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);
}