Consultor Eletrônico



Kbase 19814: What are fast schema change differences between Progress 8.x and 9.x.
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   8/30/2007
Status: Verified

GOAL:

What are fast schema change differences between Progress 8.x and 9.x.

GOAL:

What is fast schema change for V8?

GOAL:

What is fast schema change for V9?

GOAL:

What is Schema Versioning?

FACT(s) (Environment):

Progress 9.x

FIX:

Fast schema change is part of the Progress Version 9.x internal processing. It is used automatically without any switch. A much more powerful successor to Progress Version 8.x fast schema change was implemented in Version 9.x and is called Schema Versioning. In Version 9.x columns can be added with any initial value and none of the rows in the table need to be accessed. In Version 9.0 and later, each (non-schema) record has field map as its column 0. The field map contains a record version and the initial values for certain columns. 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 column is added/dropped, only the field map is changed. When records are read, the field map is used to reconstitute what the columns and values should be for those columns changed.

While Version 8.x and Version 9.x schema versioning features are related, the Version 9.x solution is vastly superior and provides more function as it replaces the Version 8.x feature. In Version 9.x, Progress stores the version of the schema in the record itself, then at run-time, it makes the appropriate changes as the individual records are read out of the database during normal processing (including dumping).