dataset: Before deleting variables, make sure new values are added.
[pspp] / src / data / dataset.c
index 6ade4b24c997be69acc68b7e07994a2ca0014fbf..9503521207c0fd78a5bbbc2fc18a9c55a579da53 100644 (file)
@@ -354,6 +354,12 @@ dataset_delete_vars (struct dataset *ds, struct variable **vars, size_t n)
   assert (!proc_has_transformations (ds));
   assert (n < dict_get_n_vars (ds->dict));
 
+  caseinit_mark_for_init (ds->caseinit, ds->dict);
+  ds->source = caseinit_translate_casereader_to_init_vars (
+    ds->caseinit, dict_get_proto (ds->dict), ds->source);
+  caseinit_clear (ds->caseinit);
+  caseinit_mark_as_preinited (ds->caseinit, ds->dict);
+
   dict_delete_vars (ds->dict, vars, n);
   ds->source = case_map_create_input_translator (
     case_map_to_compact_dict (ds->dict, 0), ds->source);