-
Notifications
You must be signed in to change notification settings - Fork 4
/
CHANGELOG
301 lines (188 loc) · 5.9 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
2.01
=======================
*issues*
--------------
FIXD - runQuery and runInteraction needed ConnectionPool._error, which was
removed. Fixed.
2.0
=======================
*issues*
--------------
FIXD - Errback handling fixes
FIXD - Removed useless explicit conversion of integers to
NUMBER when no special formatting is done on them
FIXD - Exposed __int__, __float__ and friends in NUMBER
just in case a NUMBER instance is tossed to format()
FIXD - The above two fixes mean you can now do %03d style
formatting in format()
FIXD - A trailing semicolon can be included on execute()
commands now
FIXD - Added boolean support (thanks: Andrea Arcangeli)
*enhancements*
--------------
- Experimental Unicode Support (thanks Matt Goodall)
- Unix socket support added (thanks Stephen Early)
- convertBinary function to get stored binary back out
of the database
1.15b
=======================
*issues*
--------------
FIXD - cleaned up a few circular references and added a gc.collect()
to the pool's prune() routine to remove memory leaking
FIXD - Made it so the second attempt to errback in runOperation is
ignored on exception in cases that the errback has already been
called
1.14b
=======================
*issues*
--------------
FIXD - fixed typo in runOperation, improved errback handling
FIXD - fixed a few concurrency issues, dropped connection handling
1.13b
=======================
*enhancements*
--------------
- Pool size control implemented
1.12b
=======================
*issues*
--------------
FIXD - added connect() method to ConnectionPool
1.11b
=======================
*enhancements*
--------------
- Transaction and ConnectionPool (adbapi compat) added
*issues*
--------------
FIXD - protocol layer no longer calls back with stale transaction
status flag
1.10b
=======================
*issues*
--------------
FIXD - format() and execute() now take all pyformat argument
types, not just dicts
FIXD - closed connections handle failed query execution more
gracefully
1.9b
=======================
*enhancements*
--------------
- connection.cursor() is no longer deferred; you get your cursor object
immediately. Now, everything is queued, including before a real
connection is made to the db, and *no* callbacks are necessary unless
you care about a query response.
- pgasync knows the difference between "dirty" and "clean" transactions.
It will avoid issuing ROLLBACK when only selects have been done, and
similarly it will resume a select-only transaction across different
cursors to avoid a needless BEGIN
- connection.exFetch was implemented for convenience
1.8b
=======================
*issues*
--------------
FIXD - str, int, float, True/False, datetime instances returned from
fetch() queries instead of pgtypes
FIXD - date/time/timestamp handling corrected
FIXD - None passed to execute/exFetch results in NULL insertion
FIXD - Premature cursor release issues resolved; removed automatic
cursor release
FIXD - Simplified pgtypes for output-only usage; removed
stack inspection
1.7b
=======================
*issues*
--------------
FIXD - fetchone() was corrected to return values consistent
with the PEP
1.6b
=======================
*issues*
--------------
FIXD - STRING and BINARY types now inherit from str, not
types.StringType
1.5b
=======================
*issues*
--------------
FIXD - execute() now strips query when looking for SELECT
FIXD - params are optional to execute and exFetch
FIXD - docstrings reflect the new param style
1.4b
=======================
*issues*
--------------
FIXD - Changed references to imaginary 'pystyle' format
to 'pyformat'
FIXD - Changed execute/exFetch functions to accept a
dictionary instead of kwargs in compliance with
the DB API convention
1.3b
=======================
*enhancements*
--------------
- execute (and variants) can take a datetime.datetime now
as a format argument
*additions*
-----------
- examples/wiki
*issues*
--------------
FIXD - error handling is now corrected. addErrback/errback works
for all library deferred exceptions
FIXD - under high concurrency, release() is necessary to give the
cursor back to the pool.. so release() was implemented
1.2b
=======================
*issues*
--------------
FIXD - Old examples distributed instead of new
1.1b
=======================
Note: connection.cursor() returns a Deferred now
*enhancements*
--------------
- Query queues implemented. Slight performance increase, and much cleaner
API.
*removals*
----------
- adbapi compat layer.
*issues*
--------------
FIXD - Problem with setup.py *always* requiring Pyrex (credit: Bob Ippolito)
1.0b
=======================
*enhancements*
--------------
- Change to twisted's deferreds
- adbapi wrapper
*issues*
--------------
FIXD - string quote escape sequence was "\'", now it's "''"
3b
=======================
*enhancements*
--------------
- connect is now an instantaneous operation
- exFetch added to the fe.py.
2b
=======================
*enhancements*
--------------
- Simplified the net.py code b/c we're *only using byte count terminators;
moved it from my arraybuffer class to (c)StringIO. Faster now.
- Renamed cursor.conn to cursor.connection in compliance with optional
DB API 2.0 spec
*issues*
-------
FIXD - Hanging in C fixed when the move to cStringIO buffering happened
strings when things speed up, concurrency issues
FIXD - __del__ / gc wasn't happening because cursor._callbackInfo held a
reference
FIXD - cursor.rowcount reflects modifications on INSERT, UPDATE
FIXD - cursor 'none' error
FIXD - Ensure that the convert.c things work correcty on Linux, other systems
FIXD - Source documentation
FIXD - Callbacks need a queue, not just a var