ibm_db 5.3.2 → 5.4.0
Sign up to get free protection for your applications and to get access to all the features.
- 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,
|