Forum: Managing VoltDB

Post: changing the number of parameters for a procedure

changing the number of parameters for a procedure
t0v
Mar 6, 2013
is this a known issue/bug?

when i change the number of parameters that a procedure takes, compile and update the catalog, the server doesn't want to execute the procedure any more.
here's an example, where the # params was changed from (int, String, long, long) to (int, long, long):

35> exec GetTimeLine 900000 136050005686 136253515686;
Invalid parameter count for procedure: GetTimeLine(expected: 4,  received: 3)
36> exec GetTimeLine 900000 FOO 136050005686 136253515686;
VOLTDB ERROR: PROCEDURE GetTimeLine EXPECTS 3 PARAMS, BUT RECEIVED 4
nshi
Mar 7, 2013
Hi t0v,

When you updated the catalog, did it return any error? A success catalog update should return 0 in the result table.

What version of VoltDB are you using?

Thanks.
nshi
Mar 7, 2013
Andrew pointed out that this could be caused by an out-of-date cache in SQLCmd. SQLCmd caches the procedure signatures on startup, it doesn't update the cache on catalog updates. If you restart SQLCmd, it should load the new signature.
jpiekos
Mar 7, 2013
Try exiting sqlcmd and restarting it - did it pick up the new stored procedure? We have a known defect, https://issues.voltdb.com/browse/ENG-1967, that the procedure cache is not updated in sqlcmd across catalog updates.
maria
Jul 12, 2013
I like it very much thanks for sharing this information with us…:)






actualtests http://actualtests.com
actualtests 000-272 actualtests 000-272
actualtests 640-461 actualtests 640-461
actualtests 000-652 actualtests 000-652
actualtests 000-573 actualtests 000-573
actualtests 000-452 actualtests 000-452