Change estimateSize to give a reasonable estimate for variable length types. I believe we have a PDataType.estimateSize() that you can use.