Skip to content

Commit 95d99b1

Browse files
authored
Merge pull request #132 from praveen-db2/master
Support for Ruby 3.0 and Rails 6.1
2 parents ad6f55b + a31c6ab commit 95d99b1

631 files changed

Lines changed: 52588 additions & 18851 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

IBM_DB_Adapter/ibm_db/IBM_DB.gemspec

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# +----------------------------------------------------------------------+
22
# | Licensed Materials - Property of IBM |
33
# | |
4-
# | (C) Copyright IBM Corporation 2006- 2018 |
4+
# | (C) Copyright IBM Corporation 2006- 2022 |
55
# +----------------------------------------------------------------------+
66

77
require 'rubygems'
@@ -10,15 +10,16 @@ require 'pathname'
1010
Gem::Specification.new do |spec|
1111
# Required spec
1212
spec.name = 'ibm_db'
13-
spec.version = '5.2.0'
13+
spec.version = '5.3.0'
1414
spec.summary = 'Rails Driver and Adapter for IBM Data Servers: {DB2 on Linux/Unix/Windows, DB2 on zOS, DB2 on i5/OS, Informix (IDS)}'
1515

1616
# Optional spec
1717
spec.author = 'IBM'
1818
spec.email = 'opendev@us.ibm.com'
1919
spec.homepage = 'https://github.com/ibmdb/ruby-ibmdb'
2020
spec.required_ruby_version = '>= 2.5.0'
21-
spec.add_dependency('activerecord', '>= 5.0.7', '<=6.0.3')
21+
spec.add_dependency('zip')
22+
spec.add_dependency('activerecord', '>= 5.0.7', '<=6.1')
2223
spec.requirements << 'ActiveRecord, at least 5.0.7'
2324

2425
candidates = Dir.glob("**/*")

IBM_DB_Adapter/ibm_db/ext/ibm_db.c

Lines changed: 41 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
+----------------------------------------------------------------------+
33
| Licensed Materials - Property of IBM |
44
| |
5-
| (C) Copyright IBM Corporation 2006 - 2017 |
5+
| (C) Copyright IBM Corporation 2006 - 2022 |
66
+----------------------------------------------------------------------+
77
| Authors: Sushant Koduru, Lynh Nguyen, Kanchana Padmanabhan, |
88
| Dan Scott, Helmut Tessarek, Sam Ruby, Kellen Bombardier, |
@@ -12,7 +12,7 @@
1212
+----------------------------------------------------------------------+
1313
*/
1414

15-
#define MODULE_RELEASE "3.0.5"
15+
#define MODULE_RELEASE "3.0.6"
1616

1717
#ifdef HAVE_CONFIG_H
1818
#include "config.h"
@@ -2885,7 +2885,7 @@ VALUE ruby_ibm_db_createDb_helper(VALUE connection, VALUE dbName, VALUE codeSet,
28852885
VALUE mode_utf16 = Qnil;
28862886
#endif
28872887

2888-
int rc;
2888+
RETCODE rc;
28892889

28902890
create_drop_db_args *create_db_args = NULL;
28912891
conn_handle *conn_res;
@@ -3041,7 +3041,7 @@ VALUE ruby_ibm_db_dropDb_helper(VALUE connection, VALUE dbName) {
30413041

30423042
VALUE return_value = Qfalse;
30433043

3044-
int rc;
3044+
RETCODE rc;
30453045

30463046
create_drop_db_args *drop_db_args = NULL;
30473047
conn_handle *conn_res = NULL;
@@ -9549,8 +9549,6 @@ static VALUE _ruby_ibm_db_bind_fetch_helper(ibm_db_fetch_helper_args *data)
95499549
case SQL_TYPE_DATE:
95509550
case SQL_TYPE_TIME:
95519551
case SQL_TYPE_TIMESTAMP:
9552-
case SQL_BIGINT:
9553-
95549552
if ( op & FETCH_ASSOC ) {
95559553
rb_hash_aset(return_value, colName, rb_str_new2((char *)row_data->str_val));
95569554
}
@@ -9561,6 +9559,17 @@ static VALUE _ruby_ibm_db_bind_fetch_helper(ibm_db_fetch_helper_args *data)
95619559
}
95629560
break;
95639561

9562+
case SQL_BIGINT:
9563+
if ( op & FETCH_ASSOC ) {
9564+
rb_hash_aset(return_value, colName, LONG2NUM(atol((char *)row_data->str_val)));
9565+
}
9566+
if ( op == FETCH_INDEX ) {
9567+
rb_ary_store(return_value, i, LONG2NUM(atol((char *)row_data->str_val)));
9568+
} else if ( op == FETCH_BOTH ) {
9569+
rb_hash_aset(return_value, INT2NUM(i), LONG2NUM(atol((char *)row_data->str_val)));
9570+
}
9571+
break;
9572+
95649573
case SQL_DECIMAL:
95659574
case SQL_NUMERIC:
95669575
case SQL_DECFLOAT:
@@ -9572,22 +9581,36 @@ static VALUE _ruby_ibm_db_bind_fetch_helper(ibm_db_fetch_helper_args *data)
95729581
return Qnil;
95739582
}
95749583

9575-
strcpy(tmpStr, "BigDecimal(\'");
9576-
strcat(tmpStr, row_data->str_val);
9577-
strcat(tmpStr, "\')");
9584+
if ((atof(row_data->str_val) - atol(row_data->str_val)) > 0)
9585+
{
9586+
strcpy(tmpStr, "BigDecimal(\'");
9587+
strcat(tmpStr, row_data->str_val);
9588+
strcat(tmpStr, "\')");
95789589

9579-
if ( op & FETCH_ASSOC ) {
9580-
rb_hash_aset(return_value, colName, rb_eval_string(tmpStr));
9590+
if ( op & FETCH_ASSOC ) {
9591+
rb_hash_aset(return_value, colName, rb_eval_string(tmpStr));
9592+
}
9593+
if ( op == FETCH_INDEX ) {
9594+
rb_ary_store(return_value, i, rb_eval_string(tmpStr) );
9595+
} else if ( op == FETCH_BOTH ) {
9596+
rb_hash_aset( return_value, INT2NUM(i), rb_eval_string( tmpStr ) );
9597+
}
9598+
9599+
ruby_xfree(tmpStr);
9600+
tmpStr = NULL;
95819601
}
9582-
if ( op == FETCH_INDEX ) {
9583-
rb_ary_store(return_value, i, rb_eval_string(tmpStr) );
9584-
} else if ( op == FETCH_BOTH ) {
9585-
rb_hash_aset( return_value, INT2NUM(i), rb_eval_string( tmpStr ) );
9602+
else
9603+
{
9604+
if ( op & FETCH_ASSOC ) {
9605+
rb_hash_aset(return_value, colName, LONG2NUM(atol((char *)row_data->str_val)));
9606+
}
9607+
if ( op == FETCH_INDEX ) {
9608+
rb_ary_store(return_value, i, LONG2NUM(atol((char *)row_data->str_val)));
9609+
} else if ( op == FETCH_BOTH ) {
9610+
rb_hash_aset(return_value, INT2NUM(i), LONG2NUM(atol((char *)row_data->str_val)));
9611+
}
95869612
}
95879613

9588-
ruby_xfree(tmpStr);
9589-
tmpStr = NULL;
9590-
95919614
break;
95929615
case SQL_SMALLINT:
95939616
if ( op & FETCH_ASSOC ) {

IBM_DB_Adapter/ibm_db/ext/ruby_ibm_db_cli.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -494,6 +494,7 @@ int _ruby_ibm_db_SQLDropDB_helper(create_drop_db_args *data) {
494494

495495
rc = (*sqldropdb)( (SQLHSTMT) data->conn_res->hdbc, data->dbName, (SQLINTEGER)data->dbName_string_len );
496496

497+
data->rc = rc;
497498
DLCLOSE( cliLib );
498499
return rc;
499500
}

0 commit comments

Comments
 (0)