The user table fields can now be renamed while the database is in use. Renaming a database field no longer requires an exclusive schema lock or users be disconnected from the database. This change can now be made while the database is running. When a user table field is renamed, all connected clients are notified of the change.

This functionality is specific to SQL clients in this release of OpenEdge. When a field is renamed, the SQL client that executes the change checks if any clients of an earlier version are connected to the database. If an earlier version is found, then the process is treated as an offline operation.

How renaming a field affects SQL clients

After the SQL client renames a field on a database that is running, the client notifies all the other connected clients that a field has been renamed. Then, the connected clients complete the database transactions that are in progress. When the transactions are completed, the clients can refresh their cache.

Effects on transactional concurrency

Renaming a field online has the following effects on the concurrency of database transactions:
  • Concurrent schema changes are not allowed.
  • New database connection requests are not allowed while a field rename is in process. These requests must be terminated or wait until the transaction completes.
  • Concurrent transactions cannot read schema data. Read operations fail or are blocked until the rename change completes.
Methods for renaming fields online
You can use any SQL query client to update the corresponding schema records as follows:
  • ALTER—Use the following SQL statement to rename a field.
    ALTER table Pub.Customer rename column Name to CustName;
  • Delta.df—Use the delta.df method to update the corresponding schema records. Use the following procedure:
      RENAME FIELD "Name" OF "Customer" TO "CustomerName" . PSC cpstream=ISO8859-1 . 0000000059 ;