This quite obviously is a bug in SQL::Statement, as when I display the requireed parameters (r) and the parameters actually passed (p), I see this:
{ p => [
[
[ 'number',
'name',
'sex',
'age'
],
[ 0,
'Jack',
'M',
28
],
[ 1,
'Marry',
'F',
29
]
]
],
r => [
bless ({
num => 0
}, 'SQL::Statement::Param' )
]
}
You could disable the complete parameter count match test if the required params is a blessed SQL::Statement::Param object, but I'm afraid that is sweeping problems under the carpet.
Update: the this statement passed by accident before my fix, as the required list of parameters consisted of only one (wrong) item: an unchecked blessed object. The number of items in the parameters passed was also just one single item: a list reference. The old test just check the lowest level where one happens to be one and the test passed.
Enjoy, Have FUN! H.Merijn
|