We had a prod issue today wherein one table was being updated by etl job and at the same time one JI was being created on that table. We got an error in the etl update that structural changes are being made to the table and the update job failed.
1. why would a JI do a structural change to the table. In fact when you see that table defn in dbc.tables, the lastupdatetime is changed to today.
2. I saw the explain, in the last step the JI takes a exclusive lock on the table and updates the table header. That's why the etl job failed. But, the question is why does a JI creation does a table header change ?
Table header of the base table is locked to update table's version number. If you see the 'Version' column in TVM , it should be incremented by 1.
Per manuals, Table's structural version is one of the various components of table header. It is incremented each time the table description is modified and a structural change is made that makes a database dump obsolete.