extralite-bundle 2.1 → 2.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f104866a906d2b93a6e2fb15a99b9a5d09d56fc26aa9513ad47ac182d3b9a51d
4
- data.tar.gz: b70593c8fabb649e3f6dfc0e28d5e06549a5db97ffd8d6f15fbaea42e9bf15ca
3
+ metadata.gz: 895ecb7a24fcd505422476e1f1d58f181f751d8334c49dd3941a1f88f96e8e68
4
+ data.tar.gz: ca6ba409797e34462dd0ef319e4e39340aac2ea92bb4f8a4d7890f88b546cb42
5
5
  SHA512:
6
- metadata.gz: 4d7827b598eff9274e0c41c0b612ade662e85b1062b57c40487932e2cd2264933752daa706646011af6648f60db1fae7274da778f06cd4a6002ef6dbf1af40dc
7
- data.tar.gz: da03ac31c8632cf7beb04d06d00c210acd69333f10f9d2f8df6f05e0a70465fdf4c98cca1e990aef448b797185c77861851b4c374f7545b0c069c97d6129c92f
6
+ metadata.gz: dc81369fc178ca02d18bc7acaa6161d1b7f97bb56b28824799dd9d10fd037a402461b4cceca1efc6ceb0041966bfc5d61f221fa382d5d8067aa0a7b4b1f40422
7
+ data.tar.gz: 8e75931fba409f7f5c6ce977b57c28bf9c254f535a7794c3bb80526b4f86aba74cde0dad3e5ed69a1ea9ebb0ce7e3ad8520b9965b703f19785edab923e9d840e
@@ -8,7 +8,7 @@ jobs:
8
8
  fail-fast: false
9
9
  matrix:
10
10
  os: [ubuntu-latest, macos-latest]
11
- ruby: ['2.7', '3.0', '3.1', '3.2', truffleruby]
11
+ ruby: ['2.7', '3.0', '3.1', '3.2', '3.3']
12
12
 
13
13
  name: >-
14
14
  ${{matrix.os}}, ${{matrix.ruby}}
data/CHANGELOG.md CHANGED
@@ -1,3 +1,12 @@
1
+ # 2.3 2023-11-12
2
+
3
+ - Update bundled SQLite to version 3.44.0 (#29)
4
+
5
+ # 2.2 2023-10-14
6
+
7
+ - Set correct encoding for strings values in query results (#27)
8
+ - Reset query after running it in Sequel adapter (#26)
9
+
1
10
  # 2.1 2023-07-11
2
11
 
3
12
  - Implement `Database#execute`, `Query#execute` for data-manipulation queries
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- extralite (2.1)
4
+ extralite (2.3)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -9,7 +9,7 @@ GEM
9
9
  docile (1.4.0)
10
10
  json (2.6.3)
11
11
  minitest (5.15.0)
12
- rake (13.0.6)
12
+ rake (13.1.0)
13
13
  rake-compiler (1.1.6)
14
14
  rake
15
15
  sequel (5.51.0)
data/README.md CHANGED
@@ -14,7 +14,7 @@ with an SQLite3 database, as well as prepared queries (prepared statements).
14
14
  Extralite comes in two flavors: the `extralite` gem which uses the
15
15
  system-installed sqlite3 library, and the `extralite-bundle` gem which bundles
16
16
  the latest version of SQLite
17
- ([3.42.0](https://sqlite.org/releaselog/3_42_0.html)), offering access to the
17
+ ([3.44.0](https://sqlite.org/releaselog/3_44_0.html)), offering access to the
18
18
  latest features and enhancements.
19
19
 
20
20
  ## Features
@@ -1,6 +1,8 @@
1
1
  #include <stdio.h>
2
2
  #include "extralite.h"
3
3
 
4
+ rb_encoding *UTF8_ENCODING;
5
+
4
6
  static inline VALUE get_column_value(sqlite3_stmt *stmt, int col, int type) {
5
7
  switch (type) {
6
8
  case SQLITE_NULL:
@@ -10,7 +12,7 @@ static inline VALUE get_column_value(sqlite3_stmt *stmt, int col, int type) {
10
12
  case SQLITE_FLOAT:
11
13
  return DBL2NUM(sqlite3_column_double(stmt, col));
12
14
  case SQLITE_TEXT:
13
- return rb_str_new_cstr((char *)sqlite3_column_text(stmt, col));
15
+ return rb_enc_str_new((char *)sqlite3_column_text(stmt, col), (long)sqlite3_column_bytes(stmt, col), UTF8_ENCODING);
14
16
  case SQLITE_BLOB:
15
17
  return rb_str_new((const char *)sqlite3_column_blob(stmt, col), (long)sqlite3_column_bytes(stmt, col));
16
18
  default:
@@ -807,4 +807,6 @@ void Init_ExtraliteDatabase(void) {
807
807
 
808
808
  SYM_read_only = ID2SYM(rb_intern("read_only"));
809
809
  rb_gc_register_mark_object(SYM_read_only);
810
+
811
+ UTF8_ENCODING = rb_utf8_encoding();
810
812
  }
@@ -3,6 +3,7 @@
3
3
 
4
4
  #include "ruby.h"
5
5
  #include "ruby/thread.h"
6
+ #include "ruby/encoding.h"
6
7
 
7
8
  #ifdef EXTRALITE_NO_BUNDLE
8
9
  #include <sqlite3.h>
@@ -92,6 +93,8 @@ typedef struct {
92
93
  #define QUERY_MODE(default) (rb_block_given_p() ? QUERY_YIELD : default)
93
94
  #define MULTI_ROW_P(mode) (mode == QUERY_MULTI_ROW)
94
95
 
96
+ extern rb_encoding *UTF8_ENCODING;
97
+
95
98
  VALUE safe_execute_multi(query_ctx *ctx);
96
99
  VALUE safe_query_ary(query_ctx *ctx);
97
100
  VALUE safe_query_changes(query_ctx *ctx);