ArrayLength function

I have made changes to change the Vint for array elements to Integer.  If I have the return type as VARBINARY for the vint still it is not able to decode the integer stored in a single byte.
Now after changing it to Integer still for the ArrayLengthFunction am not able to use PDataType.INTEGER as the return type but using PDataType.VARBINARY works.
This may not be the final version if you feel some changes on the above are required.