@@ -100,17 +100,15 @@ impl TableChanges {
100
100
#[ derive( Debug ) ]
101
101
pub struct ColumnChanges {
102
102
current_name : String ,
103
- original_name : String ,
104
- intermediate_names : Vec < String > ,
103
+ backing_columns : Vec < String > ,
105
104
removed : bool ,
106
105
}
107
106
108
107
impl ColumnChanges {
109
108
fn new ( name : String ) -> Self {
110
109
Self {
111
110
current_name : name. to_string ( ) ,
112
- original_name : name. to_string ( ) ,
113
- intermediate_names : Vec :: new ( ) ,
111
+ backing_columns : vec ! [ name. to_string( ) ] ,
114
112
removed : false ,
115
113
}
116
114
}
@@ -120,17 +118,17 @@ impl ColumnChanges {
120
118
}
121
119
122
120
pub fn set_column ( & mut self , column_name : & str ) {
123
- self . intermediate_names . push ( column_name. to_string ( ) )
121
+ self . backing_columns . push ( column_name. to_string ( ) )
124
122
}
125
123
126
124
pub fn set_removed ( & mut self ) {
127
125
self . removed = true ;
128
126
}
129
127
130
128
fn real_name ( & self ) -> & str {
131
- self . intermediate_names
129
+ self . backing_columns
132
130
. last ( )
133
- . unwrap_or_else ( || & self . original_name )
131
+ . expect ( "backing_columns should never be empty" )
134
132
}
135
133
}
136
134
@@ -235,14 +233,13 @@ impl Schema {
235
233
) ;
236
234
}
237
235
238
- if !column_changes. intermediate_names . is_empty ( ) {
239
- ignore_columns. insert ( column_changes. original_name . to_string ( ) ) ;
236
+ let ( _, rest) = column_changes
237
+ . backing_columns
238
+ . split_last ( )
239
+ . expect ( "backing_columns should never be empty" ) ;
240
240
241
- let non_used_intermediate = & column_changes. intermediate_names
242
- [ ..column_changes. intermediate_names . len ( ) - 1 ] ;
243
- for intermediate in non_used_intermediate {
244
- ignore_columns. insert ( intermediate. to_string ( ) ) ;
245
- }
241
+ for column in rest {
242
+ ignore_columns. insert ( column. to_string ( ) ) ;
246
243
}
247
244
}
248
245
}
@@ -274,7 +271,7 @@ impl Schema {
274
271
let table = Table {
275
272
name : current_table_name. to_string ( ) ,
276
273
real_name : real_table_name. to_string ( ) ,
277
- columns : columns ,
274
+ columns,
278
275
} ;
279
276
280
277
Ok ( table)
0 commit comments