boolean pushStack = false;
try {
useStreamOrLOB(columnIndex);
StringDataValue dvd = (StringDataValue)getColumn(columnIndex);
if (wasNull = dvd.isNull()) { return null; }
pushStack = true;
setupContextStack();
java.io.Reader ret; // The reader we will return to the user
if (dvd.hasStream()) {
CharacterStreamDescriptor csd = dvd.getStreamWithDescriptor();
// See if we have to enforce a max field size.
if (lmfs > 0) {
csd = new CharacterStreamDescriptor.Builder().copyState(csd).
maxCharLength(lmfs).build();
}
ret = new UTF8Reader(csd, this, syncLock);
} else {
String val = dvd.getString();
if (lmfs > 0) {
if (val.length() > lmfs)
val = val.substring(0, lmfs);
}
ret = new java.io.StringReader(val);