While Progress 8 and Progress 9 schema versioning features are related, the version 9 solution is improved and replaces the version 8.x feature. In version 9.x, Progress stores the version of the schema in the record itself. At run-time, it makes the appropriate changes as the individual records are read out of the database during normal processing (including dumping).
Fast schema change and Schema Versioning.
- Fast schema change is part of the Progress 9.x internal processing.
- It is used automatically without any switch.
- A much more powerful successor to Progress 8.x fast schema change was implemented in Version 9.x and is called Schema Versioning.
- In Progress 9.x fields can be added with any initial value and none of the rows in the table need to be accessed.
- Each (non-schema) record has field map as its first field (0).
- The field map contains a record version and the initial values for certain fields.
- If the schema has never been changed for a table, the map will be null. For a converted database the field map is empty.
- Adding the Map is low cost because there is a single map for all the rows in the table. The data rows are not accessed to add the map. The field map is not documented nor is it easy to read.
- When a field is added/dropped, only the field map is changed. When records are read, the field map is used to reconstitute what the fields and values should be for changed fields.
- For further information refer to Articles:
- How does Fast Schema Update work?
Schema Versioning: Why V9 schema changes are so fast