AMashenkov commented on a change in pull request #330:
URL: https://github.com/apache/ignite-3/pull/330#discussion_r708096914



##########
File path: 
modules/schema/src/main/java/org/apache/ignite/internal/schema/mapping/ColumnMapper.java
##########
@@ -24,6 +24,7 @@
 /**
  * Column mapper interface.
  */
+// TODO: IGNITE-15480 Probably should be removed after index column mapping 
refactoring.

Review comment:
       Assume there is a row R with schema V1.
   Then you update schema to V2 and add a column C with a default D1.
   Then you update schema to V3 and update default to D2.
   
   Now, you read R, which is stored as of V1 version, and upgrade it to V3. 
   On one side, R doesn't contains C column, and there is no descriptor for 
column C in V1.
   On another side, you can't use column C descriptor from V3 because it was 
changed in between.
   Using column C descriptor from V2 will be correct, but you will need to go 
through schema history for that for every row and every column you read just to 
check if there is any history.
   
   Column mapper merges schema changes once and then get reused.
   




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to