> * Give an error, same as if "ONLY foo" had been written.
>
> * Assume the user really wants recursion, and do it anyway.
>
> The second seems more user-friendly but also seems to violate the
> principle of least surprise. Anyone have an opinion about what to do?
I really prefer the former. If for some reason it were to become
available that they could alter only foo for some strange reason we
haven't come up with yet (statistics related perhaps?), we would
certainly need to throw an error on the other 'alter table' statements
at that point in time.