Defunct Features
Set Implementation and Ordering
The internal representation of sets has changed. In RDM 12, sets were implemented using database addresses to point directly to first-member/last-member/next/previous/owner records. This allowed the manipulation of the order of the members when connecting them into a set. For example, a set declared as "order next" connected the current record to follow the current member.
In RaimaDB 16.0, sets are implemented through indices using ROWID values. This has many advantages, especially if the set is naturally sorted or if it is large.
There is one downside. With indexed sets, it is not possible to support unsorted orderings such as 'next', 'prev', 'first' or 'last'. A migrated database may display set members in a different order than the original database. As the result, there are various ways to deal with this, most of which require changes to your application source code.
Core DDL
Older versions of RaimaDB supported a C-like data definition language called "Core DDL." The core DDL is no longer supported in RaimaDB. The new DDL or schema language is now a based on the SQL standard with some RaimaDB specific extensions. Nearly everything that could be defined in the old core DDL can be defined in new schema language.
Some of the old core DDL features, such as optional keys and multi-member sets, are no longer supported or available with the new schema language.
Optional keys
Optional keys were declared with the "optional" keyword in the core DDL. Optional keys allowed the application to control which rows were included in an index. The SQL DDL does not support this feature.
Discontinued functions
The following Core API functions were available in RDM 12 but are no longer available in RaimaDB 16.0. They return S_DEFUNCT
.
d_makenew | d_setkey | d_keystore | d_keydel |
If you are migrating from a version of RDM older than 12, note that a number of Core API functions were removed in RDM 12 and continue to be unavailable in RaimaDB 16.0. To see the list of those functions, refer to the "Changes for pre-RDM 12 applications (optional)" section of "Source Code Changes" in this migration guide.
Multi-member sets
A multi-member set is a set that has one owner type and multiple member types. Its main purpose is to implement variability in the data fields in the members. For example, member record types could have a string field of 10, 100 or 1000 bytes long, so that when a string is 2325 bytes long, it can be stored in a set containing members with two 1000-byte members, three 100-byte members and three 10-byte members. With RaimaDB 16.0, variability is built into the strings, making it unnecessary to break down and re-assemble strings or blobs from fixed-length records.
Mirroring
RDM 12 mirroring has been removed from RaimaDB. The new replication has been implemented in a more robust implementation in RaimaDB 16.0.