extralite-bundle 2.10 → 2.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/test-bundle.yml +1 -1
- data/CHANGELOG.md +5 -0
- data/ext/extralite/common.c +3 -3
- data/ext/extralite/database.c +9 -3
- data/ext/extralite/extralite.h +1 -1
- data/ext/extralite/query.c +2 -2
- data/gemspec.rb +1 -1
- data/lib/extralite/version.rb +1 -1
- data/test/test_database.rb +12 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1542a432d7813d5bcdc27667661e0a1d2c1f0f85716c9c3b7ceebb6b6452baa6
|
4
|
+
data.tar.gz: 5ae2a6c6ed93943f964aaf472da3d14ae09c12ab42da94e1d3a635ae699d1f61
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5a704616c0b2641461a3d565e503694d7ebfe30619afbfafd71bbda481f8f962c87b9fb8f15b0266c6ff49a79f504bbef767937d97bbd15dd96a7fef1215f74c
|
7
|
+
data.tar.gz: 9c3d99dd4a328b00100c1118840022a167f3fc7a863a52fcfa0d07e09c2859043300e66b77edfb9e69a8583e07577daed411c2fd623431d4bd3807a1cdd382da
|
data/CHANGELOG.md
CHANGED
data/ext/extralite/common.c
CHANGED
@@ -629,7 +629,7 @@ static inline VALUE batch_run_array(query_ctx *ctx, enum batch_mode batch_mode)
|
|
629
629
|
for (int i = 0; i < count; i++) {
|
630
630
|
sqlite3_reset(ctx->stmt);
|
631
631
|
sqlite3_clear_bindings(ctx->stmt);
|
632
|
-
Database_issue_query(ctx->db, ctx->
|
632
|
+
Database_issue_query(ctx->db, ctx->stmt);
|
633
633
|
bind_all_parameters_from_object(ctx->stmt, RARRAY_AREF(ctx->params, i));
|
634
634
|
|
635
635
|
batch_iterate(ctx, batch_mode, &rows);
|
@@ -666,7 +666,7 @@ static VALUE batch_run_each_iter(RB_BLOCK_CALL_FUNC_ARGLIST(yield_value, vctx))
|
|
666
666
|
|
667
667
|
sqlite3_reset(each_ctx->ctx->stmt);
|
668
668
|
sqlite3_clear_bindings(each_ctx->ctx->stmt);
|
669
|
-
Database_issue_query(each_ctx->ctx->db, each_ctx->ctx->
|
669
|
+
Database_issue_query(each_ctx->ctx->db, each_ctx->ctx->stmt);
|
670
670
|
bind_all_parameters_from_object(each_ctx->ctx->stmt, yield_value);
|
671
671
|
|
672
672
|
batch_iterate(each_ctx->ctx, each_ctx->batch_mode, &rows);
|
@@ -712,7 +712,7 @@ static inline VALUE batch_run_proc(query_ctx *ctx, enum batch_mode batch_mode) {
|
|
712
712
|
|
713
713
|
sqlite3_reset(ctx->stmt);
|
714
714
|
sqlite3_clear_bindings(ctx->stmt);
|
715
|
-
Database_issue_query(ctx->db, ctx->
|
715
|
+
Database_issue_query(ctx->db, ctx->stmt);
|
716
716
|
bind_all_parameters_from_object(ctx->stmt, params);
|
717
717
|
|
718
718
|
batch_iterate(ctx, batch_mode, &rows);
|
data/ext/extralite/database.c
CHANGED
@@ -289,14 +289,16 @@ static inline VALUE Database_perform_query(int argc, VALUE *argv, VALUE self, VA
|
|
289
289
|
|
290
290
|
sql = rb_funcall(argv[0], ID_strip, 0);
|
291
291
|
if (RSTRING_LEN(sql) == 0) return Qnil;
|
292
|
+
// sql = argv[0];
|
292
293
|
|
293
|
-
Database_issue_query(db, sql);
|
294
294
|
prepare_multi_stmt(DB_GVL_MODE(db), db->sqlite3_db, &stmt, sql);
|
295
295
|
RB_GC_GUARD(sql);
|
296
296
|
|
297
297
|
if (stmt == NULL) return Qnil;
|
298
298
|
|
299
299
|
bind_all_parameters(stmt, argc - 1, argv + 1);
|
300
|
+
Database_issue_query(db, stmt);
|
301
|
+
|
300
302
|
query_ctx ctx = QUERY_CTX(
|
301
303
|
self, sql, db, stmt, Qnil, transform,
|
302
304
|
query_mode, ROW_YIELD_OR_MODE(ROW_MULTI), ALL_ROWS
|
@@ -1102,8 +1104,12 @@ static inline enum progress_handler_mode symbol_to_progress_mode(VALUE mode) {
|
|
1102
1104
|
rb_raise(eArgumentError, "Invalid progress handler mode");
|
1103
1105
|
}
|
1104
1106
|
|
1105
|
-
inline void Database_issue_query(Database_t *db,
|
1106
|
-
if (db->trace_proc != Qnil)
|
1107
|
+
inline void Database_issue_query(Database_t *db, sqlite3_stmt *stmt) {
|
1108
|
+
if (db->trace_proc != Qnil) {
|
1109
|
+
VALUE sql = rb_str_new_cstr(sqlite3_expanded_sql(stmt));
|
1110
|
+
rb_funcall(db->trace_proc, ID_call, 1, sql);
|
1111
|
+
RB_GC_GUARD(sql);
|
1112
|
+
}
|
1107
1113
|
switch (db->progress_handler.mode) {
|
1108
1114
|
case PROGRESS_AT_LEAST_ONCE:
|
1109
1115
|
case PROGRESS_ONCE:
|
data/ext/extralite/extralite.h
CHANGED
@@ -180,7 +180,7 @@ void bind_all_parameters_from_object(sqlite3_stmt *stmt, VALUE obj);
|
|
180
180
|
int stmt_iterate(query_ctx *ctx);
|
181
181
|
VALUE cleanup_stmt(query_ctx *ctx);
|
182
182
|
|
183
|
-
void Database_issue_query(Database_t *db,
|
183
|
+
void Database_issue_query(Database_t *db, sqlite3_stmt *stmt);
|
184
184
|
sqlite3 *Database_sqlite3_db(VALUE self);
|
185
185
|
enum gvl_mode Database_prepare_gvl_mode(Database_t *db);
|
186
186
|
Database_t *self_to_database(VALUE self);
|
data/ext/extralite/query.c
CHANGED
@@ -123,7 +123,7 @@ VALUE Query_initialize(VALUE self, VALUE db, VALUE sql, VALUE mode) {
|
|
123
123
|
static inline void query_reset(Query_t *query) {
|
124
124
|
if (!query->stmt)
|
125
125
|
prepare_single_stmt(DB_GVL_MODE(query), query->sqlite3_db, &query->stmt, query->sql);
|
126
|
-
Database_issue_query(query->db_struct, query->
|
126
|
+
Database_issue_query(query->db_struct, query->stmt);
|
127
127
|
sqlite3_reset(query->stmt);
|
128
128
|
query->eof = 0;
|
129
129
|
}
|
@@ -131,7 +131,7 @@ static inline void query_reset(Query_t *query) {
|
|
131
131
|
static inline void query_reset_and_bind(Query_t *query, int argc, VALUE * argv) {
|
132
132
|
if (!query->stmt)
|
133
133
|
prepare_single_stmt(DB_GVL_MODE(query), query->sqlite3_db, &query->stmt, query->sql);
|
134
|
-
Database_issue_query(query->db_struct, query->
|
134
|
+
Database_issue_query(query->db_struct, query->stmt);
|
135
135
|
sqlite3_reset(query->stmt);
|
136
136
|
query->eof = 0;
|
137
137
|
if (argc > 0) {
|
data/gemspec.rb
CHANGED
@@ -15,7 +15,7 @@ def common_spec(s)
|
|
15
15
|
s.rdoc_options = ['--title', 'Extralite', '--main', 'README.md']
|
16
16
|
s.extra_rdoc_files = ['README.md']
|
17
17
|
s.require_paths = ['lib']
|
18
|
-
s.required_ruby_version = '>= 3.
|
18
|
+
s.required_ruby_version = '>= 3.2'
|
19
19
|
|
20
20
|
s.add_development_dependency 'rake-compiler', '1.2.9'
|
21
21
|
s.add_development_dependency 'minitest', '5.25.4'
|
data/lib/extralite/version.rb
CHANGED
data/test/test_database.rb
CHANGED
@@ -1245,6 +1245,18 @@ class ScenarioTest < Minitest::Test
|
|
1245
1245
|
@db.query('select 4')
|
1246
1246
|
assert_equal ['select 1', 'select 2', 'select 3'], sqls
|
1247
1247
|
end
|
1248
|
+
|
1249
|
+
def test_database_trace_expanded_sql
|
1250
|
+
sqls = []
|
1251
|
+
@db.trace { |sql| sqls << sql }
|
1252
|
+
|
1253
|
+
@db.query('select ?, ?, ?', 1, '2', 3)
|
1254
|
+
assert_equal ["select 1, '2', 3"], sqls
|
1255
|
+
|
1256
|
+
sqls = []
|
1257
|
+
@db.query('select :x, :y, :z', x: 42, y: '43')
|
1258
|
+
assert_equal ["select 42, '43', NULL"], sqls
|
1259
|
+
end
|
1248
1260
|
end
|
1249
1261
|
|
1250
1262
|
class BackupTest < Minitest::Test
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: extralite-bundle
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: '2.
|
4
|
+
version: '2.11'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sharon Rosner
|
8
8
|
bindir: bin
|
9
9
|
cert_chain: []
|
10
|
-
date: 2025-
|
10
|
+
date: 2025-03-14 00:00:00.000000000 Z
|
11
11
|
dependencies:
|
12
12
|
- !ruby/object:Gem::Dependency
|
13
13
|
name: rake-compiler
|
@@ -164,7 +164,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
164
164
|
requirements:
|
165
165
|
- - ">="
|
166
166
|
- !ruby/object:Gem::Version
|
167
|
-
version: '3.
|
167
|
+
version: '3.2'
|
168
168
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
169
169
|
requirements:
|
170
170
|
- - ">="
|