@@ -83,6 +83,9 @@ std::vector<ChangesetEntry> invertChangesetReverse( ChangesetReader &reader )
8383 {
8484 ChangesetDropColumnEntry out;
8585 out.tableName = acEntry->tableName ;
86+ // The index of the added column before its deletion is the same as after
87+ // its addition, so it can be carried over as-is.
88+ out.columnIdx = acEntry->columnIdx ;
8689 out.column = acEntry->column ;
8790 invertedEntries.push_back ( out );
8891 }
@@ -97,6 +100,7 @@ std::vector<ChangesetEntry> invertChangesetReverse( ChangesetReader &reader )
97100 {
98101 ChangesetAddColumnEntry out;
99102 out.tableName = dcEntry->tableName ;
103+ out.columnIdx = dcEntry->columnIdx ;
100104 out.column = dcEntry->column ;
101105 invertedEntries.push_back ( out );
102106 }
@@ -277,6 +281,7 @@ nlohmann::json changesetEntryToJSON( const ChangesetEntry &entry )
277281 nlohmann::json res;
278282 res[" type" ] = " add_column" ;
279283 res[" tableName" ] = acEntry->tableName ;
284+ res[" columnIdx" ] = acEntry->columnIdx ;
280285 res[" column" ] = columnInfoToJSON ( acEntry->column );
281286 return res;
282287 }
@@ -285,6 +290,7 @@ nlohmann::json changesetEntryToJSON( const ChangesetEntry &entry )
285290 nlohmann::json res;
286291 res[" type" ] = " drop_column" ;
287292 res[" tableName" ] = dcEntry->tableName ;
293+ res[" columnIdx" ] = dcEntry->columnIdx ;
288294 res[" column" ] = columnInfoToJSON ( dcEntry->column );
289295 return res;
290296 }
0 commit comments