return nodes[LEFT].getValue(session);
case OpTypes.PREFIX : {
if (nodes[LEFT].dataType.isCharacterType()) {
Object value = nodes[RIGHT].getValue(session);
CharacterType type = (CharacterType) nodes[RIGHT].dataType;
long length =
((CharacterType) nodes[RIGHT].dataType).size(session,
value);
type = (CharacterType) nodes[LEFT].dataType;
value = nodes[LEFT].getValue(session);
return type.substring(session, value, 0, length, true,
false);
} else {
BinaryData value =
(BinaryData) nodes[RIGHT].getValue(session);
long length = value.length(session);
BinaryType type = (BinaryType) nodes[LEFT].dataType;
value = (BinaryData) nodes[LEFT].getValue(session);
return type.substring(session, value, 0, length, true);
}
}
case OpTypes.CAST : {
Object value =
dataType.castToType(session,