-
Notifications
You must be signed in to change notification settings - Fork 7
/
Changelog
306 lines (247 loc) · 8.92 KB
/
Changelog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
0.8.3 2017-04-26
------------------
Bugs fixed:
* fixes an error that prevented the gem from being built
0.8.2 2017-04-25
------------------
Minor changes:
* documentation improved
* rake task added for building gem
0.8.1 2016-09-19
------------------
Bugs fixed:
* fixes an compile-time error in Ruby 2.x: "error: lvalue required as left operand of assignment"
0.8.0 2012-04-17
------------------
Bugs fixed:
* test cases were not loading the just built extension
New features:
* Ruby 1.9.3 compatibility
* Rake task for running tests
Minor changes:
* Warns to set the Informix environment variables when installing the gem
* gemspec file added
Caveats:
* It's no longer compatible with Ruby 1.8
* test cases require test-unit
0.7.3 2010-02-02
------------------
Bugs fixed:
* CursorBase#drop was raising an ArgumentError exception on Ruby 1.8.7
Caveats:
* Database#each and Database#each_hash removed. Use Database#foreach and
Database#foreach_hash instead.
0.7.2 2008-11-21
------------------
Bugs fixed:
* rb_cArray symbol was duplicated
Caveats:
* Database#each and Database#each_hash renamed to Database#foreach and
Database#foreach_hash respectively.
0.7.1 04/02/2008
------------------
Bugs fixed:
* The name of Informix resources were not unique. This problem was
introduced in 0.7.0. It doesn't affect previous versions.
* The documentation insisted that Database#execute is an alias for
Database#immediate.
* Cursor for Database#columns was prepared and declared every time it was
called.
0.7.0 03/31/2008
------------------
New features:
* Experimental support for the INTERVAL data type:
- year_to_month, day_to_fraction, from_months and from_seconds class
methods for creating an Interval object
- +@ and -@ unary operators
- +, * and / operations available with Integer, Rational, Date, Time
and DateTime objects
- methods for returning the respective fields of an Interval object
individually (years, months, days, hours, minutes and seconds)
- to_a method for returning the fields of an Interval object as an array
- methods for converting the Interval object to the given unit, where
apply (to_years, to_months, to_days, to_hours, to_minutes and
to_seconds)
- to_s method for displaying an Interval object as an string according
to ANSI SQL standards
- includes Comparable
* Database#version returns a struct with version information of the database
server.
* Database#each and Database#each_hash shortcut methods for declaring and
opening a cursor in a single step.
Contributed by Reid Morrison <reidmo at gmail>
* Database#execute is not an alias for Database#immediate any more.
It has become a shortcut for preparing and executing a statement in a
single step.
* SequentialCursor includes Enumerable
* Ruby 1.9 compatible
* More and better documentation
Bugs fixed:
* The documentation for class Error was not being recognized by rdoc
Remarks:
* Database.new deprecated in favor of Database.open
* Database#do was removed
* A lot of C code has been reimplemented in Ruby
* Modules and classes have been reorganized
* Database#execute still behaves the same, except that it can also accept
input parameters and return at most one record. Database#immediate is
more efficient though.
0.6.2 10/20/2007
------------------
Bugs fixed:
* Microsoft's cl compiler was failing due to a variable declaration
where it is not allowed.
Noticed by Joe Lanotte <joe.lanotte at comcast dot net>
0.6.1 10/13/2007
------------------
Bugs fixed:
* Database#columns was returning an empty array from within the
Informix ActiveRecord adapter
(ActiveRecord::ConnectionAdapters::InformixAdapter#columns) if
called for different tables. This bug was raising the following
error in Ruby on Rails:
undefined method columname=
Noticed by Andrés Rafael <aandresrafael at gmail dot com>
0.6.0 08/28/2007
------------------
New features:
* Test suite
* Error, Warning, and AssertionFailure classes replace RuntimeError when
raising exceptions.
Error class methods:
- message
- sql_code
- add_info
- []
- each
- to_s
- size, length
message and sql_code reference the first error message. Following
errors can be accessed through Error#[] as ExcInfo objects.
ExcInfo is a Struct with the following members:
- sql_code
- sql_state
- class_origin_val
- subclass_origin_val
- message
- server_name
- connection_name
See test/testcase.rb for a simple example of exception handling.
* Informix.version returns the version of this extension
* Database#do aliased as Database#execute
* More documentation
Remarks:
* Database#do is deprecated and will be removed in next versions. Use
Database#execute or Database#immediate instead.
* In case of Informix errors, RuntimeError objects are no longer raised.
Error, Warning and AssertionFailure objects are raised instead.
Acknowledgments:
I want to thank Edwin Fine <emofine at finecomputerconsultants dot com>
who contributed all the functionality of this release.
0.5.1 08/10/2007
------------------
Bugs fixed:
* When a DATETIME HOUR TO SECOND column had a value with leading zeroes
it was incorrectly interpreted.
Reported by Daniel Bush <dlb.id.au at gmail>
0.5.0 12/27/2006
------------------
New features:
* Easier to install
* BigDecimal accepted for input parameters
* BigDecimal used for instantiating DECIMAL and MONEY values
* Cursor, Statement, Slob and Database accept an optional block that
automatically frees resources after execution.
Based on ideas and pseudo-code by
Edwin Fine <emofine at finecomputerconsultants dot com> and me.
* Database#slob shortcut for creating Slob objects.
* Slob::Stat class implemented. Returned by Slob#stat, represents the
SLOB status. Methods: atime, ctime, mtime, refcnt and size. Includes
Comparable.
* Slob new methods: <<, rewind, stat, pos, pos=, lock, unlock,
estbytes, extsz, flags, maxbytes, sbspace,
extsz=, flags=,
atime, ctime, mtime, refcnt and size
* Thread safe
Remarks:
* DECIMAL and MONEY columns are no longer returned as Float. BigDecimal
is used instead.
Bugs fixed:
* If there was an error reading (ifx_lo_read) an SLOB, memory
allocated for the read buffer was not freed. Noticed by
Edwin Fine <emofine at finecomputerconsultants dot com>
* maxbytes option was ignored when creating an Slob object
* Documentation for Slob mentioned an RDRW constant, but it actually
is RDWR.
Special thanks to Guy Bowerman, Jonathan Leffler and Logan Capaldo for their
feedback and help.
0.4.0 12/13/2006
------------------
New features:
* Support for multiple connections to databases
* Support for scroll cursors. Methods available:
- [], slice
- prev, next, first, last, current
- prev_hash, next_hash, first_hash, last_hash, current_hash
- slice!, prev!, next!, first!, last!, current!
- slice_hash, prev_hash, next_hash, first_hash, last_hash,
current_hash!
- slice_hash!, prev_hash!, next_hash!, first_hash!, last_hash!,
current_hash!
* New Cursor#id method that returns the cursor name for use in
update cursors
Bugs fixed:
* Memory for input parameters was allocated before statement/cursor
preparation but not freed if preparation failed.
0.3.0 11/26/2006
------------------
New features:
* Initial support for Smart Large Objects (BLOB/CLOB).
Operations supported:
- new
- open, close
- read, write
- seek, tell
- truncate
* Database#columns now also returns the extended id (xid)
* small documentation improvements and fixes
0.2.1 11/11/2006
------------------
Bugs fixed:
* changing free() for xfree() avoids crashes on Windows XP SP1. Noticed
by Dinko <dsrkoc at helix dot hr>
0.2.0 04/24/2006
------------------
New features:
* Methods added to SequentialCursor:
- fetch_hash_many(n), fetch_hash_all
- each_by(n), each_hash_by(n)
- fetch!, fetch_hash!, each!, each_hash!
where !-methods reduce object creation by reusing the same result
object in each call
Remarks:
* fetch*many and fetch*all methods now return [] instead of nil when
no records are found
Bugs fixed:
* When freeing a cursor that was opened but never used, a segmentation
fault occurred
0.1.0 04/10/2006
-------------------
Features:
* Support for all built-in data types, except INTERVAL
* immediate statements
* prepared statements
* select cursors and bulk inserts (insert cursors)
* transactions
* #columns method for retrieving column information
* rows retrieved as arrays or hashes
* IO-based and IO-like (StringIO) objects for storing a BYTE/TEXT
column, and retrieved as a String object
* NULL, DATE and DATETIME mapped to nil, Date and Time objects and
viceversa
* #drop method for freeing Informix resources immediatly
* source code documented with RDoc
Caveats:
* INTERVAL not supported
* cursors must be closed before reopening them
* only one open connection at a time is supported