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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: df7bbe9ba9ae298aa10993fe78dc0e83aa9b7ff034e409ebf2918e473f262984
4
- data.tar.gz: f9ad6edda9cd642e644fe2b693d96d37bdd9d404bc165b5323bb79dac76445d3
3
+ metadata.gz: fe4b94d7b26bb61a25cf73b77de911d384b4cf17e8b402e682850f35c250d499
4
+ data.tar.gz: 8b92d8e56511816b5f097601d5b57726bebfef67be59f050765ab8ab14763468
5
5
  SHA512:
6
- metadata.gz: 38995468639e295e0a67de33e65385385e6b16228701105f2042334de3521b10c6726a2797650218669f8d41e5fa8a175d2e9bf79a37ced21b689150eb2d4681
7
- data.tar.gz: 8996dc2f413072f77f2279535dc294a55b2395a9e07d849f952012dd25ad18f2c59cb95cc540bd94e296e8d877b9c5c8d31aab668866a0b6a0258abe673f34c7
6
+ metadata.gz: 51ca82a6049f34093af449892e365c3b3d0ee4b31503828cbc21b0b60e944e06a2196f8b2d60c0f3b571963086843da5dcb7262d23e37790837fa0bbe8145faa
7
+ data.tar.gz: 26332ca5bee2fb5786586fc53adf217c7527b07a4c63982e23c5cb8648010475f39bdc52601f7194a0b0f91274831dfb285fbd9968a4149dc7ab77c8c0adeb1c
data/ChangeLogs.md CHANGED
@@ -8,6 +8,14 @@
8
8
 
9
9
  ## Change Logs
10
10
 
11
+ - dmRuby v1.0.2
12
+
13
+ 1、修改读取blob数据错误的问题。
14
+
15
+ - dmRuby v1.0.1
16
+
17
+ 1、增加client.ping函数用来判断连接是否存活。
18
+
11
19
  - dmRuby v1.0.0
12
20
 
13
21
  1、修改返回类型名不完整的问题;
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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Dm
4
- VERSION = "1.0.0"
4
+ VERSION = "1.0.2"
5
5
  end
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.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-06 00:00:00.000000000 Z
11
+ date: 2025-08-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bigdecimal