RDD is an abbreviation for Replaceable Database Drivers, that are used for processing a particular database format. RDD is an intermediate layer, that translates CLIP API calls to the low level file operations.
RDD architecture used in CLIP differs from those used in Clipper. CLIP RDD (in conception of Clipper) consist of three different subdrivers: table driver, index driver and memo driver. These drivers can be easily combined in any way.
Besides, CLIP have additional developer interface - a set of RDD*() functions, that operate with the database descriptors, instead of work areas.
Some of the most interesting features of CLIP RDD subsystem are listed below:
query optimizer (Rushmore/MachSIx like technology)
VARCHAR fields (compact storing of strings with length up to 64K)
VARIANT fields, allowing to store data of any basic XBase type (CHARACTER, NUMERIC, DATE, DATETIME or LOGIC)
storing data of any type (including objects) in memo-fields
MEMOPACK and Flexible FPT (reusing discarded blocks, that reduces memo bloat)
support of "scoped" SET RELATION (only "right" child table records are visible)
multiple record locking
database event triggers
record edit rollbacks
"temporary" tables (that are deleted on CLOSE automatically)