lederhosen (
lederhosen) wrote2009-06-25 08:32 pm
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Entry tags:
Confusing tech-support responses
"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
no subject
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
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."
no subject
no subject
Basically, EG is designed as a simple and user-friendly SAS interface for people who don't want to have to write their own SAS code - but the point-and-click functionality isn't really suited for complex projects of the sort that a lot of us work on. It does have some good points but it took me a while to realise that some of the "time-saving" features are more trouble than they're worth.
no subject
no subject