dmRuby 1.0.0 → 1.0.2
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/ChangeLogs.md +8 -0
- data/ext/client.c +20 -0
- data/ext/result.c +7 -0
- data/lib/dm/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fe4b94d7b26bb61a25cf73b77de911d384b4cf17e8b402e682850f35c250d499
|
4
|
+
data.tar.gz: 8b92d8e56511816b5f097601d5b57726bebfef67be59f050765ab8ab14763468
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 51ca82a6049f34093af449892e365c3b3d0ee4b31503828cbc21b0b60e944e06a2196f8b2d60c0f3b571963086843da5dcb7262d23e37790837fa0bbe8145faa
|
7
|
+
data.tar.gz: 26332ca5bee2fb5786586fc53adf217c7527b07a4c63982e23c5cb8648010475f39bdc52601f7194a0b0f91274831dfb285fbd9968a4149dc7ab77c8c0adeb1c
|
data/ChangeLogs.md
CHANGED
data/ext/client.c
CHANGED
@@ -441,6 +441,25 @@ static VALUE rb_dm_client_encoding(VALUE self) {
|
|
441
441
|
return wrapper->encoding;
|
442
442
|
}
|
443
443
|
|
444
|
+
static void *nogvl_ping(void *ptr) {
|
445
|
+
dhcon client = ptr;
|
446
|
+
sdint4 is_dead = 1;
|
447
|
+
|
448
|
+
dpi_get_con_attr(client, DSQL_ATTR_CONNECTION_DEAD, &is_dead, sizeof(sdint4), NULL);
|
449
|
+
|
450
|
+
return (void *)( is_dead == 0 ? Qtrue : Qfalse);
|
451
|
+
}
|
452
|
+
|
453
|
+
static VALUE rb_dm_client_ping(VALUE self) {
|
454
|
+
GET_CLIENT(self);
|
455
|
+
|
456
|
+
if (!CONNECTED(wrapper)) {
|
457
|
+
return Qfalse;
|
458
|
+
} else {
|
459
|
+
return (VALUE)rb_thread_call_without_gvl(nogvl_ping, wrapper->client, RUBY_UBF_IO, 0);
|
460
|
+
}
|
461
|
+
}
|
462
|
+
|
444
463
|
static VALUE set_charset_name(VALUE self, VALUE value) {
|
445
464
|
int code;
|
446
465
|
DPIRETURN rt;
|
@@ -490,6 +509,7 @@ void init_dm_client() {
|
|
490
509
|
rb_define_method(cdmClient, "affected_rows", rb_dm_client_affected_rows, 0);
|
491
510
|
rb_define_method(cdmClient, "prepare", rb_dm_client_prepare_statement, 1);
|
492
511
|
rb_define_method(cdmClient, "encoding", rb_dm_client_encoding, 0);
|
512
|
+
rb_define_method(cdmClient, "ping", rb_dm_client_ping, 0);
|
493
513
|
|
494
514
|
rb_define_private_method(cdmClient, "charset_name=", set_charset_name, 1);
|
495
515
|
rb_define_private_method(cdmClient, "connect", rb_dm_connect, 3);
|
data/ext/result.c
CHANGED
@@ -690,6 +690,13 @@ static VALUE rb_dm_result_fetch_row(VALUE self,const result_each_args *args)
|
|
690
690
|
break;
|
691
691
|
}
|
692
692
|
case DSQL_BLOB:
|
693
|
+
case DSQL_BINARY:
|
694
|
+
case DSQL_VARBINARY:
|
695
|
+
{
|
696
|
+
val = rb_str_new(row[i], fieldLengths[i]);
|
697
|
+
val = dm_set_field_string_encoding(val, default_internal_enc, conn_enc);
|
698
|
+
break;
|
699
|
+
}
|
693
700
|
case DSQL_VARCHAR:
|
694
701
|
default:
|
695
702
|
val = rb_str_new(row[i], strlen(row[i]));
|
data/lib/dm/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dmRuby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- sunbiao
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2025-08-
|
11
|
+
date: 2025-08-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bigdecimal
|