To see this bug in action:
mimir> load 'test/data/temperature.csv'; mimir> create lens repaired as select * from temperature with domain('temperature > -30'); mimir> feedback temperature 0 is real; mimir> select * from repaired;
Basically what’s happening is that the model is being trained assuming that the
TIME column is an int. Updating it to a real breaks the model, and a number of assumptions about it.
Fixing this properly would require re-generating the lens. I don’t think that’s a great idea, at least not until we have model training in the background. Instead, what we could do is try to detect when this is going to happen. Specifically, it would be useful to know when a piece of feedback is going to affect a view definition… and then we should ensure that the new view definition typechecks. Then… we should also have the ability to rewrite the view definition, mapping it to the old schema.
@willspoth : This strikes me as a great motivation for the Prism paper.