on 04-07-2014 4:07 PM
I'm rather perplexed as to why certain IQ system stored procedures are hidden (pseudo-encrypted) and others not. Is this simply a matter of IQ engineers submitting code to hide the stored procedure on personal preferences or is there a valid reason to hide the system procedures?
With how buggy IQ is, largely due to the fact that the user base of IQ is rather small, I would expect that all the stored procedures with possibly the exception of sp_iqpassword be unhidden.
For example, the sql for sp_iqstatus is visible (v16.0 sp3):
ALTER PROCEDURE "dbo"."sp_iqstatus"()
result(
"Name" varchar(255),
"Value" varchar(128) )
sql security definer
begin
declare local temporary table "iq_status_temp"(
"Name" varchar(255) null,
"Value" varchar(128) null,
) in "SYSTEM" on commit preserve rows;
execute immediate with quotes on
'iq utilities main into iq_status_temp status';
select "Name","Value" from "iq_status_temp";
drop table "iq_status_temp"
end
where as sp_iqtable is not:
ALTER PROCEDURE "dbo"."sp_iqtable" hidden '(())(*))$$$((($$())(((())$()(()(b5!x$!@@5=b!$!5!@5$5=5(5b@=%x$x5%%%$)((($$((((*(((()$$(($$!$$$((m!5W@*@@%(@5$x5m!=(xS!5@bWx5Wx5W(()(*(((()$$(($$!$(()($)()(((($$%@$!0x!m$@(!mmm*@@%(@5$x5m!==#(!$(($$!$(()($)()(((($$%%%$)((($$)55@bWx5Wx5W%@$!0x!m$@(!mmm*@@%(@($)()(((($$%%%$)((($$()))*(((()$5$x5m!=$%@!5@bWx5Wx5W%@$!0x!m$@(($$((((*((((*$$$!$$)())()!$$$(()!mm@%@*5!b!m$W@*@@5$x5m!=(xS!5@b$%$)((($$()))*((((*$$$!$$%%%$)((Wx5Wx5W%m*@@5$x5m!=$%@!5@bWx5W%%$$$!$$%%%$)((($$)(()(*((((*$$$!$m*@@5$x5m!==#(!55@bWx5Wx5W%m*@@5)(((($$$!$$%%%$)((($$()))*)())(*b!50!5=$%@!5@bWx5Wx5W%m*@@5m=bx$(()$$((*((())(($$$!$$%$)((($$(((%=(5@bWx5WW%m*@@5$5b@xb!=%$5@bSx$%$)((($$((((()())(*)($$$!$)((((mm%($m*@@5%b@x5$%$%=(!$5@bWx5Wx%((()$$$!$$%%%$)((($$)()(((*$$$!$m*@@55!Sx5.b5@bWx5Wx5W%m*@@5$x5m$$$!$)((()()$(((($$))((()))(((*(!=b=(b$5x%($b5@m=(#@0x5bWx5m*@@5(*)($$$!$$%%$)((($$())*((()())(*@x5$%$%=($%@!5@bWx5Wx@%m*@@5%b5m)$$()((((($$!(((((!$$$$%$)((($$)05@bWx5Wx%@%@*5!#%(*@@$!bmx5!@5$$$()((((($$!%$%%%$)((($$((((((((x5m!(xS!5@bWx5Wx5W%.*@@$!bmx5!@5$$()((((($$!%$%%%$)((($$(((()())!b!5(xS!5@bWx5Wx5W%.*@@$!bmx5!@5$()((((($$!%$%%%$)((($$()))(((()$x5m!$%@!5@bWx5Wx5W%.*@@$!bmx5!@((()$$()((((($$!%$%$)((($$)(*)($5%b5m05@bWx5Wx%.*@@$!bmx5!@5$x5m(($$!%)((()()$(((($$)((()))(((*(!=b=(b$5x%($5@m=(#@0x5bWx5.*@@$!(($$!%)((()()$(((($$(((*)$$()(((bmx5!@5$=b=(5@m=(#@0x5bWx5.*@@$!$()((((($$!%)((()(($$((*)$$()(((bmx5!@5$=%$5@%($!#!5.*@@$!bmx5!@$((((()($$%*%%)()))(*)((()))((($5b=(b$5x%($=b!5b=5x5=05@$%(xS%b@&*$$)(((()$$$$!)(($)()))($((()()bb5=mm@b!5b=5@0=5*@@@@b!m!b$@5$5*((((($$$&&$$$$$$$!$$((*(((()$$$5(5$x5m!=%$5m*@@@@@@5bW5(5bW!b.=&&&&&***$$$***$$(()($$$$$$!$(((($!0(5*@@@@@@05=S@5b%b5(5b%bbW!b.$$*&&&***&&&***$$$***$$$&&$$)($$5@xb@5bW5m5b%b5(5b%bb=(b$5x%($5@$!$&*$$)($$&&****$$$***$$$&&$$)(xb@5b=5m5b%b5(5b%b$x55@xb@5$55*@&&$$%$$((*((((($$$&&$$()(()$$$$$@@@@@#W!5!@5bW5(5bW!b.=%$5@S@5b=$&&$$((($$$$$$!$((*)((()))((($$$5(5b=(b$5x%($=%$5*@@@@@@x($@5b=5($$$$$$!$*$$%$$()))*)((()))((($$(5b=(b$5x%($=$%@!5@S@#$#*@@@@@@x$&*$$%$$((*)(((((*(((()$$$&&$$((($@5b=5(5$x5m!==5*!b$=%$5@S@5$55*((*((($$()((((($$!%$((*)((((($$(5=5*!b$=%$5.*@@$!bmx5!@5!($==0=()$()())())$)(($((())(()($$))())x!!5%5@!Wb!@$%=(@0=5@bxmb$x$!@0x(()$((((($()((((($$!%$%%%%%$$()(m!!@#@5@@@#.*@@$!bmx5!@m=bxm@$!S$$(((()*(((())(*))$$(((()$))()()@=5x5%@$x5m!@5b@=%x$x5m!=$x5m!5W(()($$%%%$)((($$((((*(((()$$$$$!*@@@@5$x5m!=(xS!5@bWx5Wx5W%@(!mm$(()($$%$)((($$()))*(((()$$$$$!$m*@@@@5$x5m!=$%@!5@bWx5W%%@(!mmm()($$%%%$)((($$)(()(*(((()$$$$$!*@@@@5$x5m!==#(!55@bWx5Wx5W%@(!m!$(()($)((()(($$((*(((()$$$$$!$(mm*@@@@5$x5m!=%$5@%($!#!5@(!mmm*)($)((()(($$((*)(((((*(((()$$$$$@@@@5$x5m!==5*!b$=%$5@%($!#!5@(!$$%%%$)((($$()))*)())()$$$$$!$((mmm*@@@@5b!50!5=$%@!5@bWx5Wx5W%@)(($$%$)((($$((()(((($$$$$!$(()((!mmm*@@@@5m=bx$%=(5@bWx5WW%@(=$)(((((()$$((*((())(($$$$$!$(()($@(!mmm*@@@@5$5b@xb!=%$5@bSxmm%($($$((((()())(*)($$$$$!$(()($)(($@(=$@(!mmm*@@@@5%b@x5$%$%=(!$5@b($$)()((()$$$$$!$(()($)(($$%$)((Wx5Wx%@(=$@(!mmm*@@@@55!Sx5.b5@b)))(((*(((()$$$$$!$(()($$%%%$)((Wx5Wx5W%@(!mmm*@@@@5$x5m!=b=(b$5*$$$$$!$(()($)((()()$(((($$))(((x%($b5@m=(#@0x5bWx5@(!mmm*@@@@5@$$$!$(()($$%%$)((($$())*((()())(x5$%$%=($%@!5@bWx5Wx@%@(!mmm*@@@$(($$$$$$!$(()($$%$)((($$)(*)($$@5%b5m05@bWx5Wx%@(!mmm*@@@@%@%(@))()$())()())$)((((($(($$&&****$5b%b$!S5@=(@b=SS%$@@5!b!50!@5=#b($$!%)((()(($$(((()$$()((((($$!%.*@@$!bmx5!@5$=5%$5@%($!#!5.*@@$(()()$((((()($$))&)())()$$()((((!bmx5!@55!b!m$b!55@$%(xS%b@bb5=m(*(((()$$)(((()$$$$!)(($)()))($(m@b!5b=5@0=5*@@@@b!m!b$@5$x5m!==)(*))$$(()($$((*(((()$$$((*)((((5*!b$=%$5m5$x5m!=%$5@05=S@5b@=%x$$(((((((()$$)()$$!%$(((()*(((()$x5m!=$x5m!5.*@@b!$@5$x5m!(xS!5@$(((()())$$)()$$!%$((((*(((()$$%S@5$x5m!=(xS!5.*@@b!$@5!b!5(xS!5))(((()$$)()$$!%$)(()(*(((()$$%$@S@5$x5m!==#(!55.*@@b!$@5$x5m!$%)(($))()(($$!%$()))*(((()$$%$$()@!5@S@5$x5m!=$%@!5.*@@%(b!5$@%($((()$$$$$$$!$(((()*(((())(*))$$(=@5b@=%x$x5m!=$x5m!5*@@@@W@5$x5m(()(*(((()$$$()))*(((()$$$((((*(!=(xS!5m5$x5m!=$%@!5m5$x5m!==#(!$$((*)(((((*(((()$$$((*(((()$$$)55m5$x5m!=%$5m5$x5m!==5*!b$=%$5m(())(($$$((()(((($$$()))*)())()$5b!50!5=$%@!5m5m=bx$%=(5m5$5b@xb$$)()((()$$$((((()())(*)($$$((*(!=%$5m5%b@x5$%$%=(!$5m55!Sx5.b5m)*((()())(*$$$))((()))(((*(((()$5$x5m!=b=(b$5x%($b5m5@x5$%$%=($%$$$))$$)(((()$$$$!$$$$)(*)($$$()@!5m5%b5m05@%@*@@@@b!m!b$@5b$5(5()$$$))$$()(($$$$$$!$$((((*(((()$x5m!=(xS!5m*@@@@@@bxb!@5b$5(5$x*&&$$((()$%$((()$$$$$$!$()))*(((5m!=$%@!5*@@@@@@#W!(@x@$W!(@#5xb!$*&&*$*&&$$((()$%$((()$$$$$$!$&!#*@@@@@@#W!(@5@$W!(@#Sx$@0%!##*$$$!$*&&*$&&&$$((()$%$((()$$$$$$@@@@@@#W!(@b@$W!(@##5m@$!S@#*@@@$$$$$$!$*&&*$&&&$$((()$%$((()$$$@@@#W!(@$@$W!(@#mbm@$!S@#*@@@@@@()$$$$$$!$&&&*&**&*$$((()$%$((()#W!(@#@$W!(@#@x5$%$%=(#*@@@@@@#W$%%$((()$$$$$$!$*&&*$$((()$%%$((!(@5x@$W!(@#0%!##*@@@@@@#W!(@55@!$&&&&*&&$$()(($$$$$$!$**&$$((()$W!(@#*0$#*@@@@@@!mb!@#%(0xm%$#*$$$$$!$$()))*(((()$$)($((($$$$$$@@@@@@!($@xb@5$x5m!=$%@!5m*@@@@@)$$$))$$$$$$$!$$((((*)())$$$))$$@5b!5(5!b!5=(xS!5m*@@@@@@5b$5(5$$((*)((((($$$))$$$$$$$!$$((*((((x5m!=%$5m*@@@@@@5b$5(5=5*!b$=%$5!$()))*)())()$$$))$$()(($$$$$$!$m*@@@@@@bxb!@5b$5(5b!50!5=$%@!5*(()$$$$$$!$&*$$((()$%$((()$$$$$$@@@@@@#W!(@x@$W!(@#bx#*@@@@@@#W!$((()$%$((()$$$$$$!$*&$$((()$%$((@5@$W!(@#%x#*@@@@@@#W!(@b@$W!(@$$!$&&&&*&&$$()(($$$$$$!$&*&&&*$#5!S=$!#*@@@@@@!mb!@#%(0xm%$#*@@$$$$$$!$$()))*)())()$$)($((($$$$@@@@!($@xb@5b!50!5=$%@!5m*@@@@@@$$$()))*)((((()$$$()()$$$(()((($5%0(!mm5W5b%x05(5b!#S!($=$%@!5m#($$$()))*)((((()$$$()()$$$(()))*b%b$!S#m5b%x05(5b!#S!($=$%@!5%@x(())(($$$))$$$$$$$!$$((()(((($$)b@5m=bx$%=(5m*@@@@@@5b$5(5$5b@xb()$$$()$$$$$$$!$$&$$$$$$$!$$((*(!=%$5m*@@@@@@#(#m*@@@@@@5bS5(55!$)((()))(((*(((()$$$$$$$!$$)()((Sx5.b5m*@@@@@@5$x5m!=b=(b$5x%($5$$$$$$!$&$$$$$$$!$$(((&$$$$$$$!$m*@@@@@@#(=(!#m*@@@@@@#0#*@@@@@@***$$$))$$)($$&&****$$$***$$(()(05=S@5b%b5(5b%b$x55@xb@5b$5m5b%b&****$$$***$$$))$$)($$*&*****$$$5(5b%b!b!55@xb@5b!5m5b%b5(5b%b5!($)(((()$$$$$$$$$$!$()$$)($$&*&&Sx5.5@xb@5bS5*@@@@@@@@mWb!m!b$@$))*)((((()$$$((*((())(($$)((())(%b$%(b$@5$5b@xb!=%$5m5b!#S!($=$%)()$$)($$$&&&**&&*&***$$(()($$()@!5@05=S@5b%b%x$5b@xb!5%@xb@5b%x)())$$%$$)()(()($$()(()$$$$$$!$(05*@@@@@@#W!5!@5b5!x$=55@S@5!b!5$((*((())(($$$))$$((($$$$$$!$((*=%$5*@@@@@@x($@5b$5(5$5b@xb!=%$5(($$$$$$!$((*((())(($$$()()$$%$$@*S@5b%x05(5$5b@xb!=%$5*@@@@@@x()())$$()(($$%$$((((*)())$$$))$$($@5b!5(5!b!5=(xS!5@S@Wbxb!@5!b!5((()$$(((()())$$((()$$$$$$!$(((((xS!5*@@@@@@#W!(@5!b!5(xS!5@$W!(())$$$))$$()(($$$$$$!$(((()())$$@5!b!5(xS!5*@@@@@@!mb!@5b!5(5!b!(()$$$))$$((($$((($$$$$$!$((((*)5=(xS!5*@@@@@@!($%@x($@5b$5(5$x5$$$!$(((((((()$$()(($$%$$((((*((m!=(xS!5@S@Wbxb!@5$x5m!(xS!5*@@@((((()$$((()$$(((((((()$$((()$$$@@@#W!(@5$x5m!(xS!5@$W!(@5$x5m!(((((*(((()$$$))$$()(($$$$$$!$(((xS!5*@@@@@@!mb!@5b$5(5$x5m!=(xS!((*)((((($$$))$$((($$((($$$$$$!$5*@@@@@@!($%@x($@5b$5(5=5*!b$=%$(()($$$$$$!$((*)((((($$$()$$%$$$5@*S@5bS5(5=5*!b$=%$5*@@@@@@=5$!$$()(($$!%()($%$()($%$()($%$)($)5@5%@$@xbbmx@xbbmb@xbb.*@@bxb!@5****$$((()$$!$$()))(((()$$$()(()!bxb!5W5$x5m!$%@!5%*@@#W!(@#b%b$))(*))$$(()($()(((($$$$!((()$$&&!S#@$W!(*@@@@$!m!$!@05=S@5b@=%x$(*(((()$$()(()$$$$$$!$(((()*((((x5m!=$x5m!5*@@@@@@#W!5!@5$x5m!==)$$!$$$$***$$$((($$$(($)(($$)(()#(!55@(=$@%(W@#$5=#m#b%b#@%@*@@#$(()($()(((($$$$!((()$$*&&*$$(((W!(@#0%!##@$W!(*@@@@$!m!$!@05=S@$$()(()$$$$$$!$(((()*(((())(*))$5b@=%x$x5m!=$x5m!5*@@@@@@#W!5!@5$$!$$$$*&&*$$$(($)(($$()))*(((()$x5m!=$%@!5@(=$@%(W@#0%!##@%@*@@(()($()(((($$$$!((()$$&&&&$$((()#W!(@#Sx%(#@$W!(*@@@@$!m!$!@05=S$()(()$$$$$$!$(((()*(((())(*))$$@5b@=%x$x5m!=$x5m!5*@@@@@@#W!5!W$$$!$$$$(((&$$$(($)(($$((()(((($5m=bx$%=(5@(=$@%(W@#Sx%(#@%@*@@@$&&&*&**&*$$%$$()))*(((()$$)($$$@@@=5@5$x5m!=$%@!5@S@#@x5$%$%=(#$()(((($$$$!((()$$*&&*$$((()$$!$%*@@#W!(@#$!S@#@$W!(*@@@@$!m!$!@()$$$$$$!$(((()*(((())(*))$$(()(05=S@5b@=%x$x5m!=$x5m!5*@@@@@@#W&*$&&&$$$(($)(($$()))*(((()$$()(!5!@5$x5m!=$%@!5@(=$@%(W@##5m@$!)$$**&$$((()$$!$$$$*&&*$&&&$$$*&S@#m#mbm@$!S@#@%@*@@#W!(@#*0$#@$*(((())(*))$$(()($()(((($$$$!(((W!(*@@@@$!m!$!@05=S@5b@=%x$x5m!=$$()))*(((()$$()(()$$$$$$!$(((()$x5m!5*@@@@@@#W!5!@5$x5m!=$%@!5@()$$&&&$$((()$$!$$$$**&$$$(($)(((=$@%(W@#*0$#@%@*@@#W!(@#xmm#@$W$!$&&&$$%$$()))(((()$$)()$$$$!((!(*@@@@b!$@5$x5m!$%@!5@S@#xmm#*@((())(*))$$(()($()(((($$$$!()(($@!mb!*@@@@$!m!$!@05=S@5b@=%x$x5m)))*)())()$$()(()$$$$$$!$(((()*(!=$x5m!5*@@@@@@#W!5!W5b!50!5=$%@&&$$%%$$()))*(((()$$)($$&*$$%$$(!5@S@#bx#@=5@5$x5m!=$%@!5@m(@#5x()))((($$(()($$!%()(($((($$!$$&*b!#%*@@!($@bxb!.*@@=@!(@5b=(b$5x$%$)((((()(($$$!%$%*%%)()))(*)((%($=b!5b=5x5=05.*@@50!$bWm==@5*@*)((()))((($$))(($(()(($$$$!)(((m==@*@@@@0!$bW@(!W$@5b=(b$5x%($=$$$$$$$!$$((*)$$()(($$%*%%)()))(b!5b=5x5=05@%($=@5$=%$5m*@@@@@@5(*((($$%$()())())$(($$$$!%$(((*)$=b=(5.*@@@@%0@bxmb$x$!@S@5!($==(()(($$()((($$$$$$!((()$$))())*(0=x!!5%5@$W!(*@@@@@@m!x0!@50!$bW))$$()(())$$$$!%(($((($$$$!$)(((m==@5*@@@@!($@%0.*@@@@!@$x$!@5b@(((()$$)()$$$$$$!$(((()*(((())(*=%x$x5m!=$x5m!5*@@@@@@b!$@5$x5m!((()))(((*(((()$$%$$))((()))(((*=b=(b$5x%($b5@S@5$x5m!=b=(b$5x%((()$$()(()$$$$$$!$(((*)$$$$$$$))$b5.#@#.5$=b=(5*@@@@@@#W!5!@5$x5()(($$)((($((($$!$((*)$$%$$((*((m!=%$5@S@5$=%$5*@@!($@m==@@50!$b)))(*)((()))((($$()((($$!%$)((((Wm==@5.*@@bm=b!@5b=(b$5x%($=b!5b$$$!%$))&)())()$$(()($$!%$%*%%)(=5x5=05.*@@=@!(@55!b!m$b!55.*@@5$))(($(()(($$$$!)((($%$)((((()((0!$bWm==@5*@m==@*@@@@0!$bW@(!W$@%$((*)$$$(((()$$()(($$))&)())()$55!b!m$b!55@%($=@5$=5%$5m5$=%$5.))())*((*((($$%$()())())$(($$$$!*@@@@%0@bxmb$x$!@S@5!($==0=x!!5%$!$)((((()(($$()((($$$$$$!((()$$5@$W!(*@@@@@@m!x0!@50!$bWm==@5*@$)(((()$)))()($(($$$$!%(($((($$$@@@!($@%0.*@@@@%0@!W%b$bWb!m!b$@)$$&&**&***$$$***$$(()($$)()*)($5%b=5m05@05=S@5b%b5(5b%b%x$x55@#$!((()$$$((*)$$%$$((*(((()$$()((W!5!@5$x5m!=%$5@S@5$=%$5%@$W!(*@)$$(((()*(((())(*))$$()(())$$$$$@@@@@!@$x$!@5b@=%x$x5m!=$x5m!5@b)($$)()*)($$)(((()$$%$$)(*)($$)(!$@5%b5m05@S@Wb!m!b$@5%b=5m05@05(((()$$()(()$$&&**&***$$$***$$((=S@5b%b5(5b%b%x$x55@#W!5!@5$x5m!()$$()(()$$$$$$$$!$$((*)$$%$$((*=%$5@S@5$=%$5%*@@@@@@@@#W!5!@5$x$$$!%(($((($$$$!$((*)$$%$$((*(((5m!=%$5@S@5$=%$5*@@@@!($@%0.*@@@$$$***$$(()($$$)(((()$)))()($(($@%0@!W%b$bWb!m!b$@*@05=S@5b%b5(5())()$$()(()$$&&&&&*&&&*&**&****b%b@x5$%$%=(bbW!S!5@#W!5!@5@x5$%(()$$$(((()$$%$$((*)(((((*((((()$%=(!$==5*!b$=%$5@S@5$=5%$5%@$W!(((()*(((())(*))$$()(())$$$$$$!((*@@@@@@!@$x$!@5b@=%x$x5m!=$x5m!)(()$$*$$%$$((((()())(*)($$)()$$5@b!$@5%b@x5$%$%=(!$5@S@#%#@#W!5!%$$(((()$$%$$((*)(((((*(((()$$(!W5$x5m!==5*!b$=%$5@S@5$=5%$5%.*!$(((()*(((())(*))$$()(())$$$$$$@@@@@@!@$x$!@5b@=%x$x5m!=$x5m!5*$$$$!$())*((()())(*$$)()$$$$$$$$@@@@@@@@b!$@5@x5$%$%=($%@!5*@@@@(()())()())$$()(($)(((()$$%$$$$$@@@@@S@Wb!m!b$@bxb!@5b!5@x5$%$%=$((()$%$((()$$$$$$$$$$!$((()((*((=S!$W=$5*@@@@@@@@@@#W!(@x@$W!(@$$$$!()(($$$$$$$$$$!$((((*$()(&$#WxbWS5x(#!#*@@@@@@@@@@!mb!*@@@@!$((()((*((()())()$$()(($$$$$$$$@@@@@@@@bxb!@5@x5$%$%=(=S!$W=$5*!$((((*$$((()$%$((()$$$$$$$$$$$$@@@@@@@@@@@@#W!(@x@$W!(@#5x(#!#*$!$()(&$$((()$%$((()$$$$$$$$$$$$@@@@@@@@@@@@#W!(@b@$W!(@#WxbW#*@$$$$$$$$$!$(((&$$()(($$$$$$$$$$$@@@@@@@@@@@!mb!@#(=(!#*@@@@@@@@@($$$$$$$$$$!((($$$$$$$$$$!((($$$@@@!($*@@@@@@@@@@!($*@@@@@@@@@@0)$$&&&&&*&&&*&**&****$$$***$$(()5=S@5b%b5(5b%b@x5$%$%=(bbW!S!5@#$$%$$((*)(((((*((((()())()$$()((W!5!@5@x5$%$%=(!$==5*!b$=%$5@S@5(((*(((()$$()(()$$$$$$$$!$$(((()$=5%$5%*@@@@@@@@#W!5!W5$x5m!==5*$$!(($((($$$$!$$(((()$$%$$((*)((!b$=%$5@S@5$=5%$5%*@@@@!($@%0*@@)$$()((($$!%$)((((()(($$)((($(((!($@m==@@50!$bWm==@5.*@@bm=b!@55$((((*(((()$$)(((()$$!%$))&)())(!b!m$b!55.*@@b!m!b$@5$x5m!=(xS!5(*(((()$$$$$!$$()))*(((()$$$$$!$m*@@@@5$x5m!=$%@!5m*@@@@5$x5m!==($$$$$!$$()))*)())()$$$$$!$$)(()#(!55m*@@@@5b!50!5=$%@!5m*@@@@5m$$$$!$$((*((())(($$$$$!$$((()(((=bx$%=(5m*@@@@5$5b@xb!=%$5m*@@@@!$$)()((()$$$$$!$$((((()())(*)($5%b@x5$%$%=(!$5m*@@@@55!Sx5.b5m*(*$$$$$!$$))((()))(((*(((()$$$$$@@@@5$x5m!=b=(b$5x%($b5m*@@@@5@x)($$$$!$)(*)($$$$$!$$())*((()())5$%$%=($%@!5m*@@@@5%b5m05*@@@@05$)(()($$$$!$(((()*(((())(*))$$((=S@5b@=%x$x5m!=$x5m!5*@@@@=5$!5@()))*(((()$$()($$()))*)())()$$)(5%@5b!50!5=$%@!5@xbbm5$x5m!=$%@!)(*(((()$$()($$((((*(((()$$()($$5@xbbm5$x5m!=(xS!5@xbbm5$x5m!==#$)()($$!%()($$((()(((($$()($$)(((!55@xbbm5m=bx$%=(5@xbb.*@@$5=@@(((!$(((()*(((())(*))$$(((()$x5m!@5b@=%x$x5m!=$x5m!5*!($'
Jason,
I wouldn't say the user base of IQ is "rather small". According to research that we have culled from Gartner, Forrester, etc IQ has more customers than our competition (Teradata, Exadata, Vertica, etc). Combined. We have many customers with hundreds of IQ deployments each.
The number of IQ installations and customers is growing at phenomenal rates with the reliance on IQ for SAP BW Near Line Storage and SAP Suite Information Lifecycle Management (data archiving for Suite).
Mark
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Of course not.
I can't answer why we chose to hide some procs and not others. That's going to have to come from IQ product management or engineering.
My guess, and it is purely a guess, is that in reality they are both hidden. We just took different routes to hide our intellectual property. In sp_iqstatus it quickly calls internal functions for which you have to have the source code to see. With sp_iqtables it is likely just raw SQL. In either case, though, you cannot see what we are doing to present the output.
It could also be that we just forgot a procedure or two along the way.
There was a move, I don't remember which version as it was a while ago, in which we took all our system code (procedures, views, triggers, etc) out of flat files at the OS level. This was done to plug what could be a security hole. Likely as part of this, those procedures became encrypted to help prevent DBAs from seeing the code and having someone change the code to something non-standard. If you can't see the logic, you can't tweak it without being quite noticeable.
Our stance has been, for quite some time, that you should not need to reverse engineer our system procs for your own use. We had to do this in ASE for decades because ASE didn't allow you to call a procedure in a SELECT statement. IQ has always allowed this and our position has been that if you need to change the output, join output with another procedure or table, etc then simply put the stored proc call in a SELECT statement.
I do this all the time with my procedures. Take sp_iqconnection. I think it is too verbose for my taste, most of the time. So I create a procedure called sp__who (double underscore). In the ASE world, you would reverse engineering sp_who() and make your own. In IQ, I simply tweak the output to match what I want.
This keeps end users from having to constantly update their procedures when we make changes and it leads to a much more stable system as you are relying on our code, not your own.
Let's imagine a very bad scenario. Take the internal command for sp_iqstatus from your original post. Imagine that rather than use sp_iqstatus, someone called the 'iq utilities' command directly:
execute immediate with quotes on 'iq utilities main into iq_status_temp status';
Now imagine that in a new version of IQ we changed the behavior of 'iq utilities'. We did our due diligence and tested all procedures to use the new syntax. But that enterprising young DBA didn't know that we changed the behavior of the code. Most of the time we would only add or remove columns, etc. Imagine, though, that we changed the behavior. We don't document our internals so there is no need to alert the world that we changed behavior as the calling procedure was modified to handle it properly. The DBA didn't change his/her code and now that procedure is doing something quite different than before.
Just my two cents...
Mark
create procedure dbo.sp__who()
begin
set temporary option string_rtruncation='off';
select
convert( char(10), ConnHandle ) as ConnHandle
,convert( char(8), IQconnID) as IQconnID
,convert( char(10), Userid ) as Userid
,convert( char(15), ReqType ) as ReqType
,convert( char(15), IQCmdType ) as IQCmdType
--,convert( char(8), IQIdle ) as IQIdle
--,convert( char(8), SAIdle ) as SAIdle
,convert( char(8), IQCursors ) as IQCrsrs
,convert( char(8), IQthreads ) as IQthrds
,convert( char(12), TempTableSpaceKB ) as TmpTblKB
,convert( char(12), TempWorkSpaceKB ) as TmpWrkKB
--,convert( char(10), BlockedOn ) as BlockedOn
--,convert( char(10), BlockUserid ) as BlkUserid
from sp_iqconnection(); ---- was sp_iqwho but it has a bug with some dates and empty strings
end
go
Mark
There were few SPs had code open in earlier Versions. Even if the code is hidden there are ways to get those hidden codes, If you do little search you will have answer!
I would say atleast, Sybase writes few handy SPs for quick adminstration. If look at DBAs handeling other RDBMS, they carry thousand lines of code every day for basic admin tasks...
User | Count |
---|---|
88 | |
23 | |
11 | |
9 | |
8 | |
5 | |
5 | |
5 | |
5 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.