Confusing tech-support responses
Jun. 25th, 2009 08:32 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
"This behaviour is intentional. Also, we fixed it in the next release." - SAS tech support guy in response to my bug report.
(Am coming to the conclusion that SAS EG works really well if you know exactly what your program needs to do and can debug each step perfectly before you create the next one, and... not so well otherwise.)
(Am coming to the conclusion that SAS EG works really well if you know exactly what your program needs to do and can debug each step perfectly before you create the next one, and... not so well otherwise.)
no subject
Date: 2009-06-25 01:52 pm (UTC)Working, debugged code:
A->B => Z
A=code (or other) that produces 2 datasets X,Y
B=Query Tool operation that joins X & Y by specified match variables
Z=final output
Without touching B, modify A to A', a buggy version that breaks X (specifically, in such a manner that it's missing the required match variable. Rerun:
A'->B => error message, B fails because it's missing a variable.
Realise error. Revert A' back to A and rerun:
A->B => Z' (no error messages, and in some cases no warnings)
But even though we've just undone the only thing we changed, Z' is not equal to Z. What happens is that when we attempt to run B on the broken input, it notices that one of the match variables is missing and helpfully deletes the requirement to join with that match variable. If this leaves you with no match variables specified, you'll get a warning about a Cartesian join, but if you had other matches based on variables still in the bad dataset, you won't even get that.
I discovered this the hard way, in a large and complex program where B was quite a few steps downstream from A. Found the original bug and fixed it in a few minutes, then spent hours trying to figure out why it wasn't working any more, because it's not exactly intuitive to look at the bit of the program that I hadn't modified (except indirectly and unknowingly).
no subject
Date: 2009-06-25 04:14 pm (UTC)I plan to retire by then. "Hey you, did you fix that calculation error yet?" "Sorry boss, I ran it through the debugger and its state collapsed. We need a new calculation."