cancel
Showing results for 
Search instead for 
Did you mean: 

Why are some system procedures hidden and others not?

Former Member
0 Kudos

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*!($'

Accepted Solutions (0)

Answers (1)

Answers (1)

markmumy
Advisor
Advisor
0 Kudos

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

Former Member
0 Kudos

Thanks Mark, but that's not really the answer to the question 😉  Any insight as to the system stored procedures?

markmumy
Advisor
Advisor
0 Kudos

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

Former Member
0 Kudos

Thanks Mark again  , but it seems odd to me that some are encrypted and others not without any apparent pattern. 

markmumy
Advisor
Advisor
0 Kudos

Be careful what you ask for.  We may just encrypt them all now. 

Former Member
0 Kudos

As long as they work as advertised and don't bring down the instance 😉

What is worrying is the quality control seems to be inconsistent, at least that what is being conveyed outside of SAP.  Can you let the product managers know that?  They may not be aware.

jason

Former Member
0 Kudos

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...