public int getHashedPartitionForParameter(int partitionParameterType, Object partitionValue)
            throws VoltTypeException {
        final VoltType partitionParamType = VoltType.get((byte) partitionParameterType);

        // Special cases:
        // 1) if the user supplied a string for a number column,
        // try to do the conversion. This makes it substantially easier to
        // load CSV data or other untyped inputs that match DDL without
        // requiring the loader to know precise the schema.
        // 2) For legacy hashinators, if we have a numeric column but the param is in a byte
        // array, convert the byte array back to the numeric value
        if (partitionValue != null && partitionParamType.isAnyIntegerType()) {
            if (partitionValue.getClass() == String.class) {
                try {
                    partitionValue = Long.parseLong((String) partitionValue);
                }
                catch (NumberFormatException nfe) {
                    throw new VoltTypeException(
                            "getHashedPartitionForParameter: Unable to convert string " +
                                    ((String) partitionValue) + " to "  +
                                    partitionParamType.getMostCompatibleJavaTypeName() +
                                    " target parameter ");
                }
            }
            else if (partitionValue.getClass() == byte[].class) {
                partitionValue = partitionParamType.bytesToValue((byte[]) partitionValue);
            }
        }

        return hashToPartition(partitionParamType, partitionValue);
    }
public int getHashedPartitionForParameter ( int partitionParameterType , Object partitionValue ) throws VoltTypeException { final VoltType partitionParamType = VoltType . get ( ( byte ) partitionParameterType ) ; if ( partitionValue != null && partitionParamType . isAnyIntegerType ( ) ) { if ( partitionValue . getClass ( ) == String . class ) { try { partitionValue = Long . parseLong ( ( String ) partitionValue ) ; } catch ( NumberFormatException nfe ) { throw new VoltTypeException ( "getHashedPartitionForParameter: Unable to convert string " + ( ( String ) partitionValue ) + " to " + partitionParamType . getMostCompatibleJavaTypeName ( ) + " target parameter " ) ; } } else if ( partitionValue . getClass ( ) == byte [ ] . class ) { partitionValue = partitionParamType . bytesToValue ( ( byte [ ] ) partitionValue ) ; } } return hashToPartition ( partitionParamType , partitionValue ) ; }
Given the type of the targeting partition parameter and an object,
coerce the object to the correct type and hash it.
NOTE NOTE NOTE NOTE! THIS SHOULD BE THE ONLY WAY THAT YOU FIGURE OUT
THE PARTITIONING FOR A PARAMETER! THIS IS SHARED BY SERVER AND CLIENT
CLIENT USES direct instance method as it initializes its own per connection
Hashinator.

@return The partition best set up to execute the procedure.
@throws VoltTypeException