Mnesia Release Notes

## 1 Mnesia Release Notes

This document describes the changes made to the Mnesia system from version to version. The intention of this document is to list all incompatibilities as well as all enhancements and bugfixes for every release of Mnesia. Each release of Mnesia thus constitutes one section in this document. The title of each section is the version number of Mnesia.

### 1.1 Mnesia 4.2.5

#### 1.1.1 Fixed Bugs and Malfunctions

- Jump starting a disc based node didn't work as expected.
  Own Id: OTP-5892

### 1.2 Mnesia 4.2.4

#### 1.2.1 Improvements and New Features

- A disc based Mnesia node can now be jump started with an empty directory by connecting it (via extra_db_nodes) to another node with a copy of all data.
  Own Id: OTP-5884

### 1.3 Mnesia 4.2.3

#### 1.3.1 Fixed Bugs and Malfunctions

- Dumping log files (during start),containing a add_index operation on disc_only_copies tables failed, which caused that the remaining operations in the log file was never executed.
  Own Id: OTP-5638

### 1.4 Mnesia 4.2.2

#### 1.4.1 Fixed Bugs and Malfunctions

- `pid_sort_order` could cause a deadlock in locker.
  Own Id: OTP-5438
- `Mnesia` could return from `mnesia:wait_for_tables/2` to early.
  Own Id: OTP-5473
- `Mnesia` can now handle mixing and nesting dirty (and ets) activities inside transactions. Calling `mnesia:[a]sync_dirty/[1|2]` inside a transaction no longer get evaluated in dirty context, because the results could previously be different depending on how the mixed nesting was done, and only one nesting level could be handled.
  *** POTENTIAL INCOMPATIBILITY ***
  Own Id: OTP-5474
- Safer startup of mnesia, deleting tables when mnesia started could cause problems.
  Own Id: OTP-5483
- Mnesia `fold[l|r]/3` couldn't handle calling transaction inside the fun sent to fold (note: it's NOT a good idea to do it).
  Own Id: OTP-5495

#### 1.4.2 Improvements and New Features

- `mnesia:dirty_update_counter/[2|3]` set the value to 0 if key did not exist, now it sets the value to the increment value if it is larger than 0.
  *** POTENTIAL INCOMPATIBILITY ***
  Own Id: OTP-5475

### 1.5 Mnesia 4.2.1

#### 1.5.1 Fixed Bugs and Malfunctions

- Reading bad backup files failed completly, now it just ignores the bad parts.
  Own Id: OTP-5289 Aux Id: seq9650
- Disk tables could be loaded in wrong order at startup, changes made when a node was down could be missed.
  Own Id: OTP-5300 Aux Id: seq9688
- A call to mnesia:add_table_copy could hang if the node which the table was copied from crashed.
  Own Id: OTP-5328
- Mnesia could crash during the start phase if a mnesia table was deleted by another node.
  Own Id: OTP-5358 Aux Id: seq9705 EABln20139

#### 1.5.2 Improvements and New Features

- Introduced a new env parameter `pid_sort_order` which should be set to `r9b_plain` on non unpatched R9B systems to be able to use mnesia on mixed systems with unpatched R9B nodes. This is a workaround for a specific upgrade problem when mixing certain emulators versions so it should not be used unless needed.
  Own Id: OTP-5347 Aux Id: Seq9712

### 1.6 Mnesia 4.2

#### 1.6.1 Improvements and new features

- New functions mnesia:select/4, mnesia:select/1 and mnesia:table/[1|2] are implemented. The new `mnesia:select` functions returns a limited number of results from each invocation. The `mnesia:table` functions makes it possible for QLC to operate on mnesia tables.

#### 1.6.2 Fixed Bugs and malfunctions

None

#### 1.6.3 Incompatibilities

None

#### 1.6.4 Known bugs and problems

None.

Copyright © 1991-2006 Ericsson AB