Notifications

30 views

Details

During the commit of an update set which modifies fields on a table, the message "Looking for currency/price fields to change field length" can be seen in the commit logs:

2019-10-01 21:23:30 (098) worker.7 worker.7 txid=6475f7ecdb54 Looking for currency/price fields to change field length.

If the table has currency or price fields which are decimal(15,2) fields, then modifications to widen these fields to decimal(20,4) will be added to the other changes being performed on the table:

2019-10-01 21:23:30 (129) worker.7 worker.7 txid=6475f7ecdb54 Adding field to batcher to change field length, table [x_acme_cust_purchase_order_line_item] field [list_price]
2019-10-01 21:23:30 (135) worker.7 worker.7 txid=6475f7ecdb54 BootstrapBatcher: Adding dictionary xml parse results for [x_acme_cust_purchase_order_line_item]:
    Changed fields: list_price(20)
2019-10-01 21:23:30 (144) worker.7 worker.7 txid=6475f7ecdb54 Adding field to batcher to change field length, table [x_acme_cust_bid] field [bid_amount]
2019-10-01 21:23:30 (144) worker.7 worker.7 txid=6475f7ecdb54 BootstrapBatcher: Adding dictionary xml parse results for [x_acme_cust_bid]:
    Changed fields: bid_amount(20)

The currency and price fields were increased from decimal(15,2) to decimal(20,4) in Istanbul, which is documented in the Istanbul Release Notes.   Other decimal fields types, such as decimal itself and percent_complete are not included in this widening and remain as decimal(15,2) fields.

For Istanbul or later, newly provisioned or zBooted instances the currency and price fields should be decimal(20,4) and would need no further modification.

For instances upgraded to Istanbul or later the fields are not widened as part of the upgrade, as that would lead to increasing the overall time an upgrade would take by hours, particularly on production instances.  Therefore these operations are deferred until an update set is committed which contains a sys_dictionary sys_update_xml record for any field on a table, regardless of whether that is a currency or price field.

The sys_dictionary update that triggers the the modification of the table, by the Update Set bootstrap batcher, does not need to modify the structure of the table and could be as simple as an update to the attributes on the table's collection record.

Once a table has had its existing currency or price fields successfully widened then the fields should not be modified when any subsequent update sets are committed for the same table.

Article Information

Last Updated:2019-10-03 04:19:32
Published:2019-10-03