In order for a CODASYL subschema to be processed on a completely relational basis with SQL it must satisfy the following conditions:
Condition | SQL limitation if the condition is not satisfied |
The temporary realm must be present. | No SQL access permitted. |
All sets whose member record types are included in the subschema must likewise be included in the subschema. | No SQL access permitted for the record type involved. |
All ASCENDING/DESCENDING/CALC and SEARCH keys must be completely contained in the subschema. | No SQL access permitted for the record type involved. |
Sets may not be defined with ORDER IS NEXT or ORDER IS PRIOR. | Neither INSERT nor UPDATE permitted for the member record type of the set. |
Record types may not be distributed among multiple realms. | INSERT not permitted for the record type involved. |
A record type may not be defined with LOCATION MODE IS DIRECT or DIRECT-LONG | INSERT not permitted for the record type involved. |
A record type may not be defined with the SSL clause COMPRESSION. | UPDATE not permitted for the record type involved. |
A record type may not contain variable length fields. | No SQL access permitted for the record type involved. |
A record type may not contain a national item (Unicode). | No SQL access permitted for the record type involved. |
A record type may not include packed or unpacked numerical fields for which the following apply with respect to the number of storage locations and the scale factor: | No SQL access permitted for the field involved, and no INSERT permitted for the record type involved. |
Table 13: Prerequisites for SQL access