ibm_db 5.3.2 → 5.4.0
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/README +1 -1
- data/ext/Makefile +16 -15
- data/ext/ibm_db.c +5 -9
- data/ext/ibm_db.o +0 -0
- data/ext/ibm_db.so +0 -0
- data/ext/mkmf.log +5 -5
- data/ext/ruby_ibm_db_cli.o +0 -0
- data/lib/active_record/connection_adapters/ibm_db_adapter.rb +65 -11
- data/test/cases/calculations_test.rb +3 -3
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 20938ce9741cda790cc406a279d1f1493da806599a99c0d0ea8a48a6a15aa919
|
4
|
+
data.tar.gz: 97f02af134c280893af695123fc273c5d362256dfccc36eb3b58faaff4ae038f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8852eea0f715499015e893d4a03b49ea00cc1b2e577816e3e6af55d5844f413c7fdedfecb641a603815738c4b5ffb0bc28de4b5f106df2d3fa971ec6ad6a9b5b
|
7
|
+
data.tar.gz: 3e483267f8d73042646390966a05bac893d3a5be436f50040a8861941c8dced187e1be52a9682feef1b798decec05682019f4d40763a24c1b3f5226be44d4320
|
data/README
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
=====================================================================
|
2
|
-
README for the IBM_DB Adapter
|
2
|
+
README for the IBM_DB Adapter >= 5.0.0 and Driver >= 3.0.5
|
3
3
|
For ActiveRecord Version >= 5.0.7 (and Rails >= 5.0.7)
|
4
4
|
=====================================================================
|
5
5
|
|
data/ext/Makefile
CHANGED
@@ -3,6 +3,7 @@ SHELL = /bin/sh
|
|
3
3
|
|
4
4
|
# V=0 quiet, V=1 verbose. other values don't work.
|
5
5
|
V = 0
|
6
|
+
V0 = $(V:0=)
|
6
7
|
Q1 = $(V:1=)
|
7
8
|
Q = $(Q1:0=@)
|
8
9
|
ECHO1 = $(V:1=@ :)
|
@@ -12,12 +13,12 @@ NULLCMD = :
|
|
12
13
|
#### Start of system configuration section. ####
|
13
14
|
|
14
15
|
srcdir = .
|
15
|
-
topdir = /home/pnarayanappa/
|
16
|
+
topdir = /home/pnarayanappa/ROR31/ruby_exe/include/ruby-3.1.0
|
16
17
|
hdrdir = $(topdir)
|
17
|
-
arch_hdrdir = /home/pnarayanappa/
|
18
|
+
arch_hdrdir = /home/pnarayanappa/ROR31/ruby_exe/include/ruby-3.1.0/x86_64-linux
|
18
19
|
PATH_SEPARATOR = :
|
19
20
|
VPATH = $(srcdir):$(arch_hdrdir)/ruby:$(hdrdir)/ruby
|
20
|
-
prefix = $(DESTDIR)/home/pnarayanappa/
|
21
|
+
prefix = $(DESTDIR)/home/pnarayanappa/ROR31/ruby_exe
|
21
22
|
rubysitearchprefix = $(rubylibprefix)/$(sitearch)
|
22
23
|
rubyarchprefix = $(rubylibprefix)/$(arch)
|
23
24
|
rubylibprefix = $(libdir)/$(RUBY_BASE_NAME)
|
@@ -79,15 +80,15 @@ CSRCFLAG = $(empty)
|
|
79
80
|
RUBY_EXTCONF_H = unicode_support_version.h
|
80
81
|
cflags = $(optflags) $(debugflags) $(warnflags)
|
81
82
|
cxxflags =
|
82
|
-
optflags = -O3
|
83
|
+
optflags = -O3 -fno-fast-math
|
83
84
|
debugflags = -ggdb3
|
84
|
-
warnflags = -Wall -Wextra -Wdeprecated-declarations -Wduplicated-cond -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wwrite-strings -Wimplicit-fallthrough=0 -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-packed-bitfield-compat -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wsuggest-attribute=format -Wsuggest-attribute=noreturn -Wunused-variable
|
85
|
+
warnflags = -Wall -Wextra -Wdeprecated-declarations -Wduplicated-cond -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wwrite-strings -Wimplicit-fallthrough=0 -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-packed-bitfield-compat -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wsuggest-attribute=format -Wsuggest-attribute=noreturn -Wunused-variable -Wundef
|
85
86
|
cppflags =
|
86
87
|
CCDLFLAGS = -fPIC
|
87
88
|
CFLAGS = $(CCDLFLAGS) $(cflags) $(ARCH_FLAG)
|
88
89
|
INCFLAGS = -I. -I$(arch_hdrdir) -I$(hdrdir)/ruby/backward -I$(hdrdir) -I$(srcdir)
|
89
90
|
DEFS =
|
90
|
-
CPPFLAGS = -DRUBY_EXTCONF_H=\"$(RUBY_EXTCONF_H)\" -I/home/pnarayanappa/
|
91
|
+
CPPFLAGS = -DRUBY_EXTCONF_H=\"$(RUBY_EXTCONF_H)\" -I/home/pnarayanappa/ROR31/ruby-ibmdb/IBM_DB_Adapter/ibm_db/ext/../lib/clidriver/include $(DEFS) $(cppflags)
|
91
92
|
CXXFLAGS = $(CCDLFLAGS) $(ARCH_FLAG)
|
92
93
|
ldflags = -L. -fstack-protector-strong -rdynamic -Wl,-export-dynamic
|
93
94
|
dldflags = -Wl,--compress-debug-sections=zlib
|
@@ -107,13 +108,13 @@ RUBY_BASE_NAME = ruby
|
|
107
108
|
|
108
109
|
arch = x86_64-linux
|
109
110
|
sitearch = $(arch)
|
110
|
-
ruby_version = 3.
|
111
|
+
ruby_version = 3.1.0
|
111
112
|
ruby = $(bindir)/$(RUBY_BASE_NAME)
|
112
113
|
RUBY = $(ruby)
|
113
114
|
ruby_headers = $(hdrdir)/ruby.h $(hdrdir)/ruby/backward.h $(hdrdir)/ruby/ruby.h $(hdrdir)/ruby/defines.h $(hdrdir)/ruby/missing.h $(hdrdir)/ruby/intern.h $(hdrdir)/ruby/st.h $(hdrdir)/ruby/subst.h $(arch_hdrdir)/ruby/config.h $(RUBY_EXTCONF_H)
|
114
115
|
|
115
116
|
RM = rm -f
|
116
|
-
RM_RF =
|
117
|
+
RM_RF = rm -fr
|
117
118
|
RMDIRS = rmdir --ignore-fail-on-non-empty -p
|
118
119
|
MAKEDIRS = /bin/mkdir -p
|
119
120
|
INSTALL = /usr/bin/install -c
|
@@ -125,8 +126,8 @@ TOUCH = exit >
|
|
125
126
|
#### End of system configuration section. ####
|
126
127
|
|
127
128
|
preload =
|
128
|
-
libpath = . $(libdir) /home/pnarayanappa/
|
129
|
-
LIBPATH = -L. -L$(libdir) -Wl,-rpath,$(libdir) -L/home/pnarayanappa/
|
129
|
+
libpath = . $(libdir) /home/pnarayanappa/ROR31/ruby-ibmdb/IBM_DB_Adapter/ibm_db/ext/../lib/clidriver/lib
|
130
|
+
LIBPATH = -L. -L$(libdir) -Wl,-rpath,$(libdir) -L/home/pnarayanappa/ROR31/ruby-ibmdb/IBM_DB_Adapter/ibm_db/ext/../lib/clidriver/lib -Wl,-rpath,/home/pnarayanappa/ROR31/ruby-ibmdb/IBM_DB_Adapter/ibm_db/ext/../lib/clidriver/lib '-Wl,-R$$ORIGIN/clidriver/lib'
|
130
131
|
DEFFILE =
|
131
132
|
|
132
133
|
CLEANFILES = mkmf.log
|
@@ -137,7 +138,7 @@ extout =
|
|
137
138
|
extout_prefix =
|
138
139
|
target_prefix =
|
139
140
|
LOCAL_LIBS =
|
140
|
-
LIBS = -ldb2 -lm
|
141
|
+
LIBS = -ldb2 -lm -lc
|
141
142
|
ORIG_SRCS = ibm_db.c ruby_ibm_db_cli.c
|
142
143
|
SRCS = $(ORIG_SRCS)
|
143
144
|
OBJS = ibm_db.o ruby_ibm_db_cli.o
|
@@ -155,11 +156,11 @@ BINDIR = $(bindir)
|
|
155
156
|
RUBYCOMMONDIR = $(sitedir)$(target_prefix)
|
156
157
|
RUBYLIBDIR = $(sitelibdir)$(target_prefix)
|
157
158
|
RUBYARCHDIR = $(sitearchdir)$(target_prefix)
|
158
|
-
HDRDIR = $(
|
159
|
-
ARCHHDRDIR = $(
|
159
|
+
HDRDIR = $(sitehdrdir)$(target_prefix)
|
160
|
+
ARCHHDRDIR = $(sitearchhdrdir)$(target_prefix)
|
160
161
|
TARGET_SO_DIR =
|
161
162
|
TARGET_SO = $(TARGET_SO_DIR)$(DLLIB)
|
162
|
-
CLEANLIBS = $(TARGET_SO)
|
163
|
+
CLEANLIBS = $(TARGET_SO) false
|
163
164
|
CLEANOBJS = *.o *.bak
|
164
165
|
|
165
166
|
all: $(DLLIB)
|
@@ -172,7 +173,7 @@ clean-rb-default::
|
|
172
173
|
clean-rb::
|
173
174
|
clean-so::
|
174
175
|
clean: clean-so clean-static clean-rb-default clean-rb
|
175
|
-
-$(Q)$(
|
176
|
+
-$(Q)$(RM_RF) $(CLEANLIBS) $(CLEANOBJS) $(CLEANFILES) .*.time
|
176
177
|
|
177
178
|
distclean-rb-default::
|
178
179
|
distclean-rb::
|
data/ext/ibm_db.c
CHANGED
@@ -12,7 +12,7 @@
|
|
12
12
|
+----------------------------------------------------------------------+
|
13
13
|
*/
|
14
14
|
|
15
|
-
#define MODULE_RELEASE "3.0
|
15
|
+
#define MODULE_RELEASE "3.1.0"
|
16
16
|
|
17
17
|
#ifdef HAVE_CONFIG_H
|
18
18
|
#include "config.h"
|
@@ -2507,8 +2507,7 @@ static VALUE _ruby_ibm_db_connect_helper( int argc, VALUE *argv, int isPersisten
|
|
2507
2507
|
}
|
2508
2508
|
/* Call the function where the actual logic is being run*/
|
2509
2509
|
#ifdef UNICODE_SUPPORT_VERSION_H
|
2510
|
-
|
2511
|
-
|
2510
|
+
_ruby_ibm_db_connect_helper2( helper_args );
|
2512
2511
|
|
2513
2512
|
conn_res = helper_args->conn_res;
|
2514
2513
|
|
@@ -6988,8 +6987,7 @@ VALUE ibm_db_execute(int argc, VALUE *argv, VALUE self)
|
|
6988
6987
|
bind_array->error = &error;
|
6989
6988
|
|
6990
6989
|
#ifdef UNICODE_SUPPORT_VERSION_H
|
6991
|
-
|
6992
|
-
RUBY_UBF_IO, NULL );
|
6990
|
+
_ruby_ibm_db_execute_helper( bind_array );
|
6993
6991
|
ret_value = bind_array->return_value;
|
6994
6992
|
#else
|
6995
6993
|
ret_value = _ruby_ibm_db_execute_helper( bind_array );
|
@@ -10078,8 +10076,7 @@ VALUE ibm_db_fetch_row(int argc, VALUE *argv, VALUE self)
|
|
10078
10076
|
helper_args->error = &error;
|
10079
10077
|
|
10080
10078
|
#ifdef UNICODE_SUPPORT_VERSION_H
|
10081
|
-
|
10082
|
-
RUBY_UBF_IO, NULL );
|
10079
|
+
_ruby_ibm_db_fetch_row_helper( helper_args );
|
10083
10080
|
ret_val = helper_args->return_value;
|
10084
10081
|
#else
|
10085
10082
|
ret_val = _ruby_ibm_db_fetch_row_helper( helper_args );
|
@@ -10247,8 +10244,7 @@ VALUE ibm_db_fetch_assoc(int argc, VALUE *argv, VALUE self) {
|
|
10247
10244
|
helper_args->funcType = FETCH_ASSOC;
|
10248
10245
|
|
10249
10246
|
#ifdef UNICODE_SUPPORT_VERSION_H
|
10250
|
-
|
10251
|
-
RUBY_UBF_IO, NULL );
|
10247
|
+
_ruby_ibm_db_bind_fetch_helper( helper_args );
|
10252
10248
|
ret_val = helper_args->return_value;
|
10253
10249
|
|
10254
10250
|
#else
|
data/ext/ibm_db.o
CHANGED
Binary file
|
data/ext/ibm_db.so
CHANGED
Binary file
|
data/ext/mkmf.log
CHANGED
@@ -14,7 +14,7 @@ unicode_support_version.h is:
|
|
14
14
|
|
15
15
|
have_library: checking for SQLConnect() in -ldb2... -------------------- yes
|
16
16
|
|
17
|
-
"gcc -o conftest -I/home/pnarayanappa/
|
17
|
+
LD_LIBRARY_PATH=.:/home/pnarayanappa/ROR31/ruby_exe/lib:/jre/lib:/jre/bin:/lib:/home/pnarayanappa/ROR31/ruby-ibmdb/IBM_DB_Adapter/ibm_db/lib/clidriver/lib/ "gcc -o conftest -I/home/pnarayanappa/ROR31/ruby_exe/include/ruby-3.1.0/x86_64-linux -I/home/pnarayanappa/ROR31/ruby_exe/include/ruby-3.1.0/ruby/backward -I/home/pnarayanappa/ROR31/ruby_exe/include/ruby-3.1.0 -I. -I/home/pnarayanappa/ROR31/ruby-ibmdb/IBM_DB_Adapter/ibm_db/ext/../lib/clidriver/include -O3 -fno-fast-math -ggdb3 -Wall -Wextra -Wdeprecated-declarations -Wduplicated-cond -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wwrite-strings -Wimplicit-fallthrough=0 -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-packed-bitfield-compat -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wsuggest-attribute=format -Wsuggest-attribute=noreturn -Wunused-variable -Wundef conftest.c -L. -L/home/pnarayanappa/ROR31/ruby_exe/lib -Wl,-rpath,/home/pnarayanappa/ROR31/ruby_exe/lib -L/home/pnarayanappa/ROR31/ruby-ibmdb/IBM_DB_Adapter/ibm_db/ext/../lib/clidriver/lib -Wl,-rpath,/home/pnarayanappa/ROR31/ruby-ibmdb/IBM_DB_Adapter/ibm_db/ext/../lib/clidriver/lib -L. -fstack-protector-strong -rdynamic -Wl,-export-dynamic -Wl,-rpath,/home/pnarayanappa/ROR31/ruby_exe/lib -L/home/pnarayanappa/ROR31/ruby_exe/lib -lruby-static -lz -lpthread -lrt -lrt -ldl -lcrypt -lm -lm -lc"
|
18
18
|
checked program was:
|
19
19
|
/* begin */
|
20
20
|
1: #include "ruby.h"
|
@@ -25,7 +25,7 @@ checked program was:
|
|
25
25
|
6: }
|
26
26
|
/* end */
|
27
27
|
|
28
|
-
"gcc -o conftest -I/home/pnarayanappa/
|
28
|
+
LD_LIBRARY_PATH=.:/home/pnarayanappa/ROR31/ruby_exe/lib:/jre/lib:/jre/bin:/lib:/home/pnarayanappa/ROR31/ruby-ibmdb/IBM_DB_Adapter/ibm_db/lib/clidriver/lib/ "gcc -o conftest -I/home/pnarayanappa/ROR31/ruby_exe/include/ruby-3.1.0/x86_64-linux -I/home/pnarayanappa/ROR31/ruby_exe/include/ruby-3.1.0/ruby/backward -I/home/pnarayanappa/ROR31/ruby_exe/include/ruby-3.1.0 -I. -I/home/pnarayanappa/ROR31/ruby-ibmdb/IBM_DB_Adapter/ibm_db/ext/../lib/clidriver/include -O3 -fno-fast-math -ggdb3 -Wall -Wextra -Wdeprecated-declarations -Wduplicated-cond -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wwrite-strings -Wimplicit-fallthrough=0 -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-packed-bitfield-compat -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wsuggest-attribute=format -Wsuggest-attribute=noreturn -Wunused-variable -Wundef conftest.c -L. -L/home/pnarayanappa/ROR31/ruby_exe/lib -Wl,-rpath,/home/pnarayanappa/ROR31/ruby_exe/lib -L/home/pnarayanappa/ROR31/ruby-ibmdb/IBM_DB_Adapter/ibm_db/ext/../lib/clidriver/lib -Wl,-rpath,/home/pnarayanappa/ROR31/ruby-ibmdb/IBM_DB_Adapter/ibm_db/ext/../lib/clidriver/lib -L. -fstack-protector-strong -rdynamic -Wl,-export-dynamic -Wl,-rpath,/home/pnarayanappa/ROR31/ruby_exe/lib -L/home/pnarayanappa/ROR31/ruby_exe/lib -lruby-static -lz -lpthread -lrt -lrt -ldl -lcrypt -lm -ldb2 -lm -lc"
|
29
29
|
conftest.c: In function ‘t’:
|
30
30
|
conftest.c:14:57: error: ‘SQLConnect’ undeclared (first use in this function)
|
31
31
|
int t(void) { void ((*volatile p)()); p = (void ((*)()))SQLConnect; return !p; }
|
@@ -54,7 +54,7 @@ checked program was:
|
|
54
54
|
14: int t(void) { void ((*volatile p)()); p = (void ((*)()))SQLConnect; return !p; }
|
55
55
|
/* end */
|
56
56
|
|
57
|
-
"gcc -o conftest -I/home/pnarayanappa/
|
57
|
+
LD_LIBRARY_PATH=.:/home/pnarayanappa/ROR31/ruby_exe/lib:/jre/lib:/jre/bin:/lib:/home/pnarayanappa/ROR31/ruby-ibmdb/IBM_DB_Adapter/ibm_db/lib/clidriver/lib/ "gcc -o conftest -I/home/pnarayanappa/ROR31/ruby_exe/include/ruby-3.1.0/x86_64-linux -I/home/pnarayanappa/ROR31/ruby_exe/include/ruby-3.1.0/ruby/backward -I/home/pnarayanappa/ROR31/ruby_exe/include/ruby-3.1.0 -I. -I/home/pnarayanappa/ROR31/ruby-ibmdb/IBM_DB_Adapter/ibm_db/ext/../lib/clidriver/include -O3 -fno-fast-math -ggdb3 -Wall -Wextra -Wdeprecated-declarations -Wduplicated-cond -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wwrite-strings -Wimplicit-fallthrough=0 -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-packed-bitfield-compat -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wsuggest-attribute=format -Wsuggest-attribute=noreturn -Wunused-variable -Wundef conftest.c -L. -L/home/pnarayanappa/ROR31/ruby_exe/lib -Wl,-rpath,/home/pnarayanappa/ROR31/ruby_exe/lib -L/home/pnarayanappa/ROR31/ruby-ibmdb/IBM_DB_Adapter/ibm_db/ext/../lib/clidriver/lib -Wl,-rpath,/home/pnarayanappa/ROR31/ruby-ibmdb/IBM_DB_Adapter/ibm_db/ext/../lib/clidriver/lib -L. -fstack-protector-strong -rdynamic -Wl,-export-dynamic -Wl,-rpath,/home/pnarayanappa/ROR31/ruby_exe/lib -L/home/pnarayanappa/ROR31/ruby_exe/lib -lruby-static -lz -lpthread -lrt -lrt -ldl -lcrypt -lm -ldb2 -lm -lc"
|
58
58
|
checked program was:
|
59
59
|
/* begin */
|
60
60
|
1: #include "ruby.h"
|
@@ -78,7 +78,7 @@ checked program was:
|
|
78
78
|
|
79
79
|
have_header: checking for gil_release_version.h... -------------------- yes
|
80
80
|
|
81
|
-
"gcc -
|
81
|
+
LD_LIBRARY_PATH=.:/home/pnarayanappa/ROR31/ruby_exe/lib:/jre/lib:/jre/bin:/lib:/home/pnarayanappa/ROR31/ruby-ibmdb/IBM_DB_Adapter/ibm_db/lib/clidriver/lib/ "gcc -I/home/pnarayanappa/ROR31/ruby_exe/include/ruby-3.1.0/x86_64-linux -I/home/pnarayanappa/ROR31/ruby_exe/include/ruby-3.1.0/ruby/backward -I/home/pnarayanappa/ROR31/ruby_exe/include/ruby-3.1.0 -I. -I/home/pnarayanappa/ROR31/ruby-ibmdb/IBM_DB_Adapter/ibm_db/ext/../lib/clidriver/include -O3 -fno-fast-math -ggdb3 -Wall -Wextra -Wdeprecated-declarations -Wduplicated-cond -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wwrite-strings -Wimplicit-fallthrough=0 -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-packed-bitfield-compat -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wsuggest-attribute=format -Wsuggest-attribute=noreturn -Wunused-variable -Wundef -c conftest.c"
|
82
82
|
checked program was:
|
83
83
|
/* begin */
|
84
84
|
1: #include "ruby.h"
|
@@ -90,7 +90,7 @@ checked program was:
|
|
90
90
|
|
91
91
|
have_header: checking for unicode_support_version.h... -------------------- yes
|
92
92
|
|
93
|
-
"gcc -
|
93
|
+
LD_LIBRARY_PATH=.:/home/pnarayanappa/ROR31/ruby_exe/lib:/jre/lib:/jre/bin:/lib:/home/pnarayanappa/ROR31/ruby-ibmdb/IBM_DB_Adapter/ibm_db/lib/clidriver/lib/ "gcc -I/home/pnarayanappa/ROR31/ruby_exe/include/ruby-3.1.0/x86_64-linux -I/home/pnarayanappa/ROR31/ruby_exe/include/ruby-3.1.0/ruby/backward -I/home/pnarayanappa/ROR31/ruby_exe/include/ruby-3.1.0 -I. -I/home/pnarayanappa/ROR31/ruby-ibmdb/IBM_DB_Adapter/ibm_db/ext/../lib/clidriver/include -O3 -fno-fast-math -ggdb3 -Wall -Wextra -Wdeprecated-declarations -Wduplicated-cond -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wwrite-strings -Wimplicit-fallthrough=0 -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-packed-bitfield-compat -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wsuggest-attribute=format -Wsuggest-attribute=noreturn -Wunused-variable -Wundef -c conftest.c"
|
94
94
|
checked program was:
|
95
95
|
/* begin */
|
96
96
|
1: #include "ruby.h"
|
data/ext/ruby_ibm_db_cli.o
CHANGED
Binary file
|
@@ -51,6 +51,12 @@ module ActiveRecord
|
|
51
51
|
module ConnectionAdapters
|
52
52
|
class SchemaDumper
|
53
53
|
private
|
54
|
+
def header(stream)
|
55
|
+
stream.puts <<~HEADER
|
56
|
+
ActiveRecord::Schema[#{ActiveRecord::Migration.current_version}].define(#{define_params}) do
|
57
|
+
HEADER
|
58
|
+
end
|
59
|
+
|
54
60
|
def default_primary_key?(column)
|
55
61
|
schema_type(column) == :integer
|
56
62
|
end
|
@@ -75,11 +81,11 @@ module ActiveRecord
|
|
75
81
|
end
|
76
82
|
|
77
83
|
if supports_foreign_keys?
|
78
|
-
statements.concat(o.foreign_keys.map { |
|
84
|
+
statements.concat(o.foreign_keys.map { |fk| accept fk })
|
79
85
|
end
|
80
86
|
|
81
87
|
if supports_check_constraints?
|
82
|
-
statements.concat(o.check_constraints.map { |
|
88
|
+
statements.concat(o.check_constraints.map { |chk| accept chk })
|
83
89
|
end
|
84
90
|
|
85
91
|
create_sql << "(#{statements.join(', ')})" if statements.present?
|
@@ -423,7 +429,7 @@ module ActiveRecord
|
|
423
429
|
end
|
424
430
|
|
425
431
|
def drop_table(table_name, options={})
|
426
|
-
puts_log "drop_table"
|
432
|
+
puts_log "drop_table - #{table_name}"
|
427
433
|
if options[:if_exists]
|
428
434
|
execute("DROP TABLE IF EXISTS #{quote_table_name(table_name)}")
|
429
435
|
else
|
@@ -833,7 +839,9 @@ module ActiveRecord
|
|
833
839
|
|
834
840
|
def prepared_statements?
|
835
841
|
puts_log "prepared_statements?"
|
836
|
-
@prepared_statements && !prepared_statements_disabled_cache.include?(object_id)
|
842
|
+
prepare = @prepared_statements && !prepared_statements_disabled_cache.include?(object_id)
|
843
|
+
puts_log "prepare = #{prepare}"
|
844
|
+
prepare
|
837
845
|
end
|
838
846
|
alias :prepared_statements :prepared_statements?
|
839
847
|
|
@@ -1112,8 +1120,10 @@ module ActiveRecord
|
|
1112
1120
|
end
|
1113
1121
|
end
|
1114
1122
|
|
1115
|
-
def select(sql, name = nil, binds = [])
|
1123
|
+
def select(sql, name = nil, binds = [], prepare: false, async: false)
|
1116
1124
|
puts_log "select #{sql}"
|
1125
|
+
puts_log "prepare = #{prepare}"
|
1126
|
+
|
1117
1127
|
# Replaces {"= NULL" with " IS NULL"} OR {"IN (NULL)" with " IS NULL"
|
1118
1128
|
begin
|
1119
1129
|
sql.gsub( /(=\s*NULL|IN\s*\(NULL\))/i, " IS NULL" )
|
@@ -1121,12 +1131,32 @@ module ActiveRecord
|
|
1121
1131
|
# ...
|
1122
1132
|
end
|
1123
1133
|
|
1134
|
+
if async && async_enabled?
|
1135
|
+
if current_transaction.joinable?
|
1136
|
+
raise AsynchronousQueryInsideTransactionError, "Asynchronous queries are not allowed inside transactions"
|
1137
|
+
end
|
1138
|
+
|
1139
|
+
future_result = async.new(
|
1140
|
+
pool,
|
1141
|
+
sql,
|
1142
|
+
name,
|
1143
|
+
binds,
|
1144
|
+
prepare: prepare,
|
1145
|
+
)
|
1146
|
+
if supports_concurrent_connections? && current_transaction.closed?
|
1147
|
+
future_result.schedule!(ActiveRecord::Base.asynchronous_queries_session)
|
1148
|
+
else
|
1149
|
+
future_result.execute!(self)
|
1150
|
+
end
|
1151
|
+
return future_result
|
1152
|
+
end
|
1153
|
+
|
1124
1154
|
results = []
|
1125
1155
|
|
1126
1156
|
if(binds.nil? || binds.empty?)
|
1127
1157
|
stmt = execute(sql, name)
|
1128
1158
|
else
|
1129
|
-
stmt = exec_query_ret_stmt(sql, name, binds, prepare
|
1159
|
+
stmt = exec_query_ret_stmt(sql, name, binds, prepare)
|
1130
1160
|
end
|
1131
1161
|
|
1132
1162
|
cols = IBM_DB.resultCols(stmt)
|
@@ -1452,7 +1482,8 @@ module ActiveRecord
|
|
1452
1482
|
# the executed +sql+ statement.
|
1453
1483
|
# Here prepare argument is not used, by default this method creates prepared statment and execute.
|
1454
1484
|
def exec_query_ret_stmt(sql, name = 'SQL', binds = [], prepare = false)
|
1455
|
-
puts_log "exec_query_ret_stmt"
|
1485
|
+
puts_log "exec_query_ret_stmt #{sql}"
|
1486
|
+
sql = transform_query(sql)
|
1456
1487
|
check_if_write_query(sql)
|
1457
1488
|
materialize_transactions
|
1458
1489
|
mark_transaction_written_if_write(sql)
|
@@ -1461,6 +1492,8 @@ module ActiveRecord
|
|
1461
1492
|
puts_log "Binds = #{binds}"
|
1462
1493
|
param_array = type_casted_binds(binds)
|
1463
1494
|
puts_log "Param array = #{param_array}"
|
1495
|
+
puts_log "Prepare flag = #{prepare}"
|
1496
|
+
puts_log "#{caller}"
|
1464
1497
|
|
1465
1498
|
stmt = @servertype.prepare(sql, name)
|
1466
1499
|
if prepare
|
@@ -1526,6 +1559,7 @@ module ActiveRecord
|
|
1526
1559
|
#sql='INSERT INTO ar_internal_metadata (key, value, created_at, updated_at) VALUES ('10', '10', '10', '10')
|
1527
1560
|
puts_log "execute"
|
1528
1561
|
puts_log "#{sql}"
|
1562
|
+
sql = transform_query(sql)
|
1529
1563
|
check_if_write_query(sql)
|
1530
1564
|
materialize_transactions
|
1531
1565
|
mark_transaction_written_if_write(sql)
|
@@ -1725,6 +1759,9 @@ module ActiveRecord
|
|
1725
1759
|
|
1726
1760
|
def quote_table_name(name)
|
1727
1761
|
puts_log "quote_table_name"
|
1762
|
+
if name.start_with?'0', '1', '2', '3', '4', '5', '6', '7', '8', '9'
|
1763
|
+
name = "\"#{name}\""
|
1764
|
+
end
|
1728
1765
|
name
|
1729
1766
|
#@servertype.check_reserved_words(name).gsub('"', '').gsub("'",'')
|
1730
1767
|
end
|
@@ -2378,7 +2415,9 @@ module ActiveRecord
|
|
2378
2415
|
column_nullable = (col["nullable"] == 1) ? true : false
|
2379
2416
|
# Make sure the hidden column (db2_generated_rowid_for_lobs) in DB2 z/OS isn't added to the list
|
2380
2417
|
if !(column_name.match(/db2_generated_rowid_for_lobs/i))
|
2418
|
+
puts_log "Column type = #{column_type}"
|
2381
2419
|
ruby_type = simplified_type(column_type)
|
2420
|
+
puts_log "Ruby type after = #{ruby_type}"
|
2382
2421
|
precision = extract_precision(ruby_type)
|
2383
2422
|
|
2384
2423
|
if column_type.match(/timestamp|integer|bigint|date|time|blob/i)
|
@@ -2429,7 +2468,7 @@ module ActiveRecord
|
|
2429
2468
|
else
|
2430
2469
|
error_msg = "An unexpected error occurred during retrieval of column metadata"
|
2431
2470
|
error_msg = error_msg + ": #{fetch_error.message}" if !fetch_error.message.empty?
|
2432
|
-
|
2471
|
+
# raise error_msg
|
2433
2472
|
end
|
2434
2473
|
ensure # Free resources associated with the statement
|
2435
2474
|
IBM_DB.free_stmt(stmt) if stmt
|
@@ -2447,6 +2486,10 @@ module ActiveRecord
|
|
2447
2486
|
return columns
|
2448
2487
|
end
|
2449
2488
|
|
2489
|
+
def extract_precision(sql_type)
|
2490
|
+
$1.to_i if sql_type =~ /\((\d+)(,\d+)?\)/
|
2491
|
+
end
|
2492
|
+
|
2450
2493
|
def extract_default_function(default_value, default)
|
2451
2494
|
default if has_default_function?(default_value, default)
|
2452
2495
|
end
|
@@ -2491,7 +2534,7 @@ module ActiveRecord
|
|
2491
2534
|
else
|
2492
2535
|
error_msg = "An unexpected error occurred during retrieval of foreign key metadata"
|
2493
2536
|
error_msg = error_msg + ": #{fetch_error.message}" if !fetch_error.message.empty?
|
2494
|
-
|
2537
|
+
# raise error_msg
|
2495
2538
|
end
|
2496
2539
|
ensure # Free resources associated with the statement
|
2497
2540
|
IBM_DB.free_stmt(stmt) if stmt
|
@@ -2578,6 +2621,7 @@ module ActiveRecord
|
|
2578
2621
|
puts_log "add_column"
|
2579
2622
|
clear_cache!
|
2580
2623
|
puts_log "add_column info #{table_name}, #{column_name}, #{type}, #{options}"
|
2624
|
+
puts_log caller
|
2581
2625
|
if (!type.nil? && type.to_s == "primary_key") or (options.key?(:primary_key) and options[:primary_key] == true)
|
2582
2626
|
if !type.nil? and type.to_s != "primary_key"
|
2583
2627
|
execute "ALTER TABLE #{table_name} ADD COLUMN #{column_name} #{type} NOT NULL DEFAULT 0"
|
@@ -2685,6 +2729,15 @@ module ActiveRecord
|
|
2685
2729
|
end
|
2686
2730
|
end
|
2687
2731
|
|
2732
|
+
def remove_columns(table_name, *column_names, type: nil, **options)
|
2733
|
+
if column_names.empty?
|
2734
|
+
raise ArgumentError.new("You must specify at least one column name. Example: remove_columns(:people, :first_name)")
|
2735
|
+
end
|
2736
|
+
|
2737
|
+
remove_column_fragments = remove_columns_for_alter(table_name, *column_names, type: type, **options)
|
2738
|
+
execute "ALTER TABLE #{quote_table_name(table_name)} #{remove_column_fragments.join(' ')}"
|
2739
|
+
end
|
2740
|
+
|
2688
2741
|
# Renames a table.
|
2689
2742
|
# ==== Example
|
2690
2743
|
# rename_table('octopuses', 'octopi')
|
@@ -2782,7 +2835,7 @@ module ActiveRecord
|
|
2782
2835
|
puts_log "add_foreign_keyList = #{table_name}, #{column_name}, #{fkey_list}"
|
2783
2836
|
fkey_list.each do |fkey|
|
2784
2837
|
if fkey.options[:column] == column_name
|
2785
|
-
add_foreign_key(table_name, fkey.to_table, column: new_column_name)
|
2838
|
+
add_foreign_key(table_name, strip_table_name_prefix_and_suffix(fkey.to_table), column: new_column_name)
|
2786
2839
|
end
|
2787
2840
|
end
|
2788
2841
|
end
|
@@ -2917,6 +2970,7 @@ module ActiveRecord
|
|
2917
2970
|
|
2918
2971
|
class SchemaDumper < ConnectionAdapters::SchemaDumper
|
2919
2972
|
def dump(stream) # Like in abstract class, we no need to call header() & trailer().
|
2973
|
+
header(stream)
|
2920
2974
|
extensions(stream)
|
2921
2975
|
tables(stream)
|
2922
2976
|
stream
|
@@ -3724,7 +3778,7 @@ module Arel
|
|
3724
3778
|
row.each_with_index do |value, k|
|
3725
3779
|
collector << ", " unless k == 0
|
3726
3780
|
case value
|
3727
|
-
when Nodes::SqlLiteral, Nodes::BindParam
|
3781
|
+
when Nodes::SqlLiteral, Nodes::BindParam, ActiveModel::Attribute
|
3728
3782
|
collector = visit(value, collector)
|
3729
3783
|
#collector << quote(value).to_s
|
3730
3784
|
else
|
@@ -239,7 +239,7 @@ class CalculationsTest < ActiveRecord::TestCase
|
|
239
239
|
|
240
240
|
queries = capture_sql { Account.limit(1).count }
|
241
241
|
assert_equal 1, queries.length
|
242
|
-
assert_match(/
|
242
|
+
assert_match(/FETCH FIRST/, queries.first)
|
243
243
|
end
|
244
244
|
|
245
245
|
def test_offset_is_kept
|
@@ -255,14 +255,14 @@ class CalculationsTest < ActiveRecord::TestCase
|
|
255
255
|
|
256
256
|
queries = capture_sql { Account.limit(1).offset(1).count }
|
257
257
|
assert_equal 1, queries.length
|
258
|
-
assert_match(/
|
258
|
+
assert_match(/FETCH FIRST/, queries.first)
|
259
259
|
assert_match(/OFFSET/, queries.first)
|
260
260
|
end
|
261
261
|
|
262
262
|
def test_no_limit_no_offset
|
263
263
|
queries = capture_sql { Account.count }
|
264
264
|
assert_equal 1, queries.length
|
265
|
-
assert_no_match(/
|
265
|
+
assert_no_match(/FETCH FIRST/, queries.first)
|
266
266
|
assert_no_match(/OFFSET/, queries.first)
|
267
267
|
end
|
268
268
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ibm_db
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.
|
4
|
+
version: 5.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- IBM
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-01-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: zip
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "<"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '7.1'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "<"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '7.1'
|
41
41
|
description:
|
42
42
|
email: opendev@us.ibm.com
|
43
43
|
executables: []
|
@@ -826,8 +826,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
826
826
|
- !ruby/object:Gem::Version
|
827
827
|
version: '0'
|
828
828
|
requirements:
|
829
|
-
- ActiveRecord, at least
|
830
|
-
rubygems_version: 3.
|
829
|
+
- ActiveRecord, at least 7.0
|
830
|
+
rubygems_version: 3.3.7
|
831
831
|
signing_key:
|
832
832
|
specification_version: 4
|
833
833
|
summary: 'Rails Driver and Adapter for IBM Data Servers: {DB2 on Linux/Unix/Windows,
|