Subject | selectable vs executable procs again |
---|---|
Author | woodsmailbox |
Post date | 2009-03-12T11:36:37Z |
I browsed through the discussions from 2004 and 2006. So I'm late for the party, but I'll give it a shot anyway.
#1
Currently, the caller of a sp controls how much of that procedure is executed by just limiting how much it selects from it. So much for atomicity. I'd better constrain selectable procedures to have no side effects than letting the user execute half of some algorithm and still commit. But don't take this advice too seriously, though :)
#2
I'd like to get rid of:
declare dummy integer;
for select 1 from selectable_proc into dummy do begin end
Can't see the benefit in being forced to write this instead of 'execute procedure selectable_proc'. Nothing bad will happen if you just remove this constraint. Won't break any existing users' code that's for sure :)
#3
Some of my procs also have this: if (1 = 0) then suspend; I have procs that must comply to 'select * from proc' but they return nothing by implementation. That's a minor, but you're forcing me to explicitly support the PROC_TYPE flag which shouldn't be there in the first place.
#1
Currently, the caller of a sp controls how much of that procedure is executed by just limiting how much it selects from it. So much for atomicity. I'd better constrain selectable procedures to have no side effects than letting the user execute half of some algorithm and still commit. But don't take this advice too seriously, though :)
#2
I'd like to get rid of:
declare dummy integer;
for select 1 from selectable_proc into dummy do begin end
Can't see the benefit in being forced to write this instead of 'execute procedure selectable_proc'. Nothing bad will happen if you just remove this constraint. Won't break any existing users' code that's for sure :)
#3
Some of my procs also have this: if (1 = 0) then suspend; I have procs that must comply to 'select * from proc' but they return nothing by implementation. That's a minor, but you're forcing me to explicitly support the PROC_TYPE flag which shouldn't be there in the first place.