summaryrefslogtreecommitdiff
path: root/dist/ChangeLog
blob: adff63a80f684faab907b413289845126d55b0df (plain)
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
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
= Berkeley DB 6.1 Changelog =

== Changes between 12.1.6.1.20 and 12.1.6.1.23 == 

Fixed a recovery bug that could cause files to end up in the 
wrong directory when using logs created in 5.3 or earlier. [#24169]

Creating a table in SQL will no longer fail if the database
connection was opened without the SQLITE_OPEN_CREATE flag. [#24115]

Fixed a bug where an error message was not displayed back to the user 
correctly when sequence creation failed. [#24103]

Fixed a bug where BDB was not handling tables with multiple BLOB columns 
when using the SQL API. [#24092]

SQL sequence names are now case insensitive except when surrounded
by quotation marks. [#23964]

Avoid incrementing the statistic DB_LOG_STAT.st_scount
("Total log file flushes") when DB_LOG_NOSYNC is in effect. [#23945]

Fixed a bug that may lead to crash when opening multiple environments 
in a multi-threaded program. [#23913]

Improved the way we mark a password as consumed.  [#23876]

Fixed the error "BDB2074 No space available in latch table" for
configurations using plain pthreads mutexes and DB_ENV->set_thread_count().
Susceptible configurations include the definition of HAVE_MUTEX_PTHREADS
in db_config.h but do not define HAVE_MUTEX_HYBRID.  [#23831] 

Fixed a crash when MVCC and snapshot isolation are used and the system is under 
heavy load. [#23815]

Fixed a problem with closing a panicked environment, in which an
infinite loop was possible. [#23814]

Removed Java 5 targets from Windows builds and javadoc production. [#23811]

Support for client-to-client replication of BLOB data during internal
initialization has been disabled. [#23748]

Fixed a bug that may cause self-deadlock during database compaction. [#23725]

Fixed a bug in the recovery of a truncated hash database. [#23772]

== Changes between 12.1.6.1.19 and 12.1.6.1.20 == 

Fixed a sqlite3odbc bug which may return an out-of-memory error when calling
SQLGetData() on empty long columns. [#22777]

Enabling BLOB support and master leases will no longer result
in unexpected DB_REP_LEASE_EXPIRED errors. [#23275]

Fixed a race condition when BLOB support is enabled with replication 
where message handling could fail with an ENOENT error. [#23275]

Existing SQL databases will have to be reindexed after upgrading 
to this release.  No actions are required for non-SQL databases.  
Check the upgrade documentation for more details. [#23469]

Fixed a known bug in SQL where ORDER BY could return results 
out of order if an index is used to answer the query. [#23469]

Fixed a bug that causes a crash when opening a corrupted environment
with encryption and DB_REGISTER. [#23643]

Fixed a bug that causes a crash when opening a corrupted environment
with DB_FAILCHK using a BDB compiled with DIAGNOSTIC defined. [#23643]

Fixed a bug where closing a panicked environment raised an access violation 
and crashed the program. [#23679]

Fixed a bug where db_verify did not verify multiple files correctly. [#23692]

Fixed a bug that causes a site joining a replication group to hang or
to only partially complete the internal steps necessary to join the
replication group. [#23750]

== Database or Log File On-Disk Format Changes ==

The log file format changed in 12.1.6.1.

== New Features/Improvements ==

Demonstrated in a sample app how to use thread-specific structures to
associate a DB_EVENT_REP_PERM_FAILED event with the transaction that
caused it. [#17686]

Replication Manager Preferred Master is a new option for 2-site
replication groups.  One site is the preferred master, which assumes the
master role as much of the time as its availability permits.  A preferred
master replication group guarantees that transactions committed
on the preferred master site will never be rolled back while also
providing client failover. [#20230]

A new flag DB_FORCESYNCENV is provided for DB_ENV->close(), which forces
flushing the memory mapped regions before unmapping them. [#21176]

A new API is provided to limit the Replication Manager incoming queue based
on the amount of heap memory it uses. [#21481]

BLOB support is now available for environments configured for 
replication. [#22359]

A new version of DB_ENV->failchk() helps supports multi-process environments
which use DB_REGISTER rather than a monitoring process. It is turned on with
--enable-failchk_broadcast. [#22419]

Added support for Visual Studio 2012. [#22477]

CPU time needed for database backups is now reduced. [#22967]

Added BDB utilities for the Android platform. [#23079]

Added --enable-error_history support.  This diagnostic tool prints a
stack trace when a panic occurs. [#23119]

The new log configuration option DB_LOG_NOSYNC has been added to avoid
flushing the transaction log in order to stabilize storage. This can be 
useful when durability across system crashes is unnecessary and all the 
transactions in the environment specify either the DB_TXN_NOSYNC or 
DB_TXN_WRITE_NOSYNC flag. This configuration setting may be made by 
DB_ENV->log_set_config() or a DB_CONFIG line "db_log_nosync [on|off]". [#23191]

== Database Environment Changes ==

Fixed a problem with DB_LOCKDOWN which would cause an mlock error ENOMEM
on some operating systems. [#21379]

DB_ENV->close() now detaches from the environment's mmap and shared memory
regions even when a panic error (DB_RUNRECOVERY) has been returned.
DB_ENV->open(DB_REGISTER) detects whether a panic has occurred in the
environment. If so it returns DB_RUNRECOVERY. Prior to this, the panic state
was not detected, which might have caused a hang. [#22805]

Ensure that the size of memory mapped backing files are a multiple of the
system pagesize. Previously the files were aligned up to 8KB boundaries,
which was not adequate for systems with a 64KB pagesize. [#23290]

== Concurrent Data Store Changes ==

-None

== Access Method Changes ==

Fixed a bug that left behind obsolete queue extents. [#21988]

Fixed a bug that occurred if the range keys did not fit within one database 
page during database partition opening. [#22280]

Corrected a buffer mutex deadlock involving off-page duplicate sets and
less than full transactional isolation levels. [#22532]

Fixed a byte swapping bug that could corrupt the header of heap database
pages. [#23318]

== API Changes ==

Make flag checking in sequence stat print API consistent with the other
stat print APIs. [#22513]

== SQL-specific API Changes ==

Fixed a bug that was preventing old log files from being
removed while using the SQL API. [#22521]

Updated SQL API build to be compatible with SQLite 3.8.3.1. [#23178]

Updated ADO.NET API to be compatible with System.Data.SQLite 1.0.91.0. [#23446]

== Tcl-specific API Changes ==

Exposed flag DB_SET_MUTEX_FAILCHK_TIMEOUT in Tcl API. [#23163]

Added msgfile and msgfile_close in the Tcl API. [#31881].

== Java-specific API Changes ==

Exposed DB->set_msgfile(), DB_ENV->set_msgfile() and all xxx_stat_print() in
Java API.[#22691]

Exposed flags DB_REPMGR_CONF_PREFMAS_MASTER and DB_REPMGR_CONF_PREFMAS_CLIENT
in Java API. [#23163]

Exposed new flag DB_LOG_NOSYNC in Java API. [#23191]

Updated DPL changes from BDB JE. [#23251]

Exposed new flag DB_EVENT_REP_INQUEUE_FULL in Java API. [#23280]

Fixed a bug that partition directories could not be set correctly via 
Java API. [#23410]

== C#-specific API Changes ==

The class LockDetectMode has been removed. It was duplicating functionality
provided in other classes and not being used. [#21248]

Exposed DB_STAT_ALLOC in PrintLockingSystemStats(), PrintLoggingSystemStats(),
PrintMPoolSystemStats(), PrintMutexSystemStats(), PrintStats() and  
PrintTransactionSystemStats(). [#22513]

Exposed DB->set_msgcall(), DB->set_msgfile(), DB_ENV->set_msgcall() and
DB_ENV->set_msgfile() to C# API. [#22799]

Exposed flags DB_REPMGR_CONF_PREFMAS_MASTER and DB_REPMGR_CONF_PREFMAS_CLIENT
in C# API. [#23163]

Exposed new flag DB_LOG_NOSYNC in C# API. [#23191]

Exposed new flag DB_EVENT_REP_INQUEUE_FULL in C# API. [#23280]

Changed definition of all structs to make SWIG 2.0.12 can generate code
successfully. [#23295] 

== C++-specific API Changes ==

Fixed a bug that db_stl library could not build using gcc-4.7 or later 
versions. [#22615]

== Replication Changes ==

Fixed a bug where, after some rare multiple-site failure scenarios
including transaction rollbacks, Replication Manager could have incorrectly
determined that new transactions fulfilled the acknowledgement policy. [#16624]

Acknowledgements are counted more precisely when an unelectable client is first
joining the replication group and also when a master has been set to be
unelectable. [#20825]

If there is already a replication process running, do not require a flag
value when calling DB_ENV->repmgr_start() to start a subordinate 
process. [#20980]

Fixed a bug that a site could not rejoin the replication group on Windows
after being removed from the group. [#22460]

When a removed site rejoins a two-site replication group with
DB_REPMGR_CONF_2SITE_STRICT turned off, defer its election so that the
rejoining site does not prematurely elect itself master with only its own
vote when the other site is already master. [#22683]

Fixed a bug where a Replication Manager subordinate process could fail its
automatic takeover as the replication process because it is unnecessarily
waiting for acknowledgements from other sites before the connections to
these sites are properly established. [#22998]

Fixed a bug where a client synchronization could get stuck because certain
error paths were failing to release an internal lockout. [#23169]

Fixed a bug where replication group-aware log archiving might have
unnecessarily kept log files after certain connection sequences between
sites. [#23420]

== Locking Subsystem Changes ==

None

== Logging Subsystem Changes ==

Avoid incrementing the statistic DB_LOG_STAT.st_scount
("Total log file flushes") when DB_LOG_NOSYNC is in effect. [#23945]

== Memory Pool Subsystem Changes ==

None

== Mutex Subsystem Changes ==

Removed an environment handle mutex which was no longer needed. [#23099]

Removed the last source files of the defunct fcntl mutex
implementation. [#23119]

== Transaction Subsystem Changes ==

None

== Test Suite Changes ==

None

== Utility Changes ==

None

== Configuration, Documentation, Sample Apps, Portability and Build Changes ==

Fixed a bug that ex_rep_base could not quit gracefully after receiving 'exit'
command. [#16871]

Extended the ex_rep_mgr Replication Manager sample application to demonstrate
the use of a thread-specific structure to associate a DB_EVENT_REP_PERM_FAILED
event with its originating transaction. [#17686]

Parameter "-module" is removed from task libsqilte_jni in JDBC makefile. So
libsqlite_jni library could be built in '.dylib' format on Mac OS X. [#22937]

Additional information about the cause of an error may now be displayed by
configuring with --enable-error_history. [#23119]

Add one public error code 'DB_META_CHKSUM_FAIL'. [#23304]

Added build support on latest MinGW. [#23332]

A configuration warning 'Ignoring --with-cryptography flag value' is added
for the non-crypto package. [#23333]

Parameter LIBSQLSO_LIBS is added to the task libsqlso_target to workaround
a linking issue with the gcc 4.8.1 distributed by Ubuntu. [#23372]

Extended the Mac OS X section in the chapter 7 of the installation
guide. [#23388]

Fixed PHP module to consistently use the ZEND_REGISTER_RESOURCE macro, 
preventing a build failure with PHP 5.5.  Updated INSTALL file 
to note the changed location of sample output. [#23391]

Fixed a few typos in the JDBC/ODBC sections of the Windows/Unix installation
guide. [#23404]

== Example Changes ==

Added an example using BDB SQL with the JDBC driver and ADF. [#22569]

== Miscellaneous Bug Fixes ==

Fixed a byte swapping bug with log file operations on blob files.
[#22215]

Fixed test failures on QNX with small mutex regions.  [#22310]

Database containing BLOBS are now portable between machines of
opposite endianness.  [#22455]

Added a -D option to display output for db_dump and db_printlog.
This value takes priority over DB_ENV->set_data_len() if that
was called to set the length.  [#22485]

Updates to PHP API to handle functional changes in PHP 5.4.  [#22549]

Fixed heap databases so they can work on both big and little
endian machines.  [#22929]

Restructure the blob delete code to improve performance. [#22935]

Properly clean up blob meta database after aborting the creation of its
parent database. [#23000]

Fixed memory alignment issues with the DB_MPOOL stats. [#23150]

Fixed a byte swapping bug with heap blob log records. [#23319]

Fixed two race condition bugs with DB_ENV->failchk(). [#23347]

Fixed memory alignment issue on Solaris. [#23571]

Fixed a bug that using Visual Studio 2010 and JDK 1.5 could generate corrupted
jar files. [#23574]

Fixed a bug that specifying --with-cryptography=yes did not build the jdbc
library correctly. [#23606]

== Platform Certification Changes ==

Berkeley DB no longer tests or certifies Windows XP or Windows 2003.

== Deprecated Features == 

The DB_AUTO_COMMIT flag is present in the DB_SEQUENCE APIs for Java and 
C#.   This flg is no longer meaningful for these APIs and will be 
deprecated in the next release.   

== Known Bugs ==

[#23469] (Fixed in 12.1.6.1.20 -- see above.) 
The SQL ORDER BY command on the primary key of a table can in
rare cases return the results out of order if an index search is used in
executing the query.  For example: Create a single column table.  Insert
two rows with identical values.  A query on the row id and the column will
produce results in a different order depending on whether an index is used.