use of org.hsqldb_voltpatches.result.Result in project voltdb by VoltDB.
the class LobManager method setBytesForNewBlob.
public Result setBytesForNewBlob(long lobID, InputStream inputStream, long length) {
Session session = sysLobSession;
if (length == 0) {
return ResultLob.newLobSetResponse(lobID, 0);
}
Result result = setBytesIS(session, lobID, inputStream, length);
return result;
}
use of org.hsqldb_voltpatches.result.Result in project voltdb by VoltDB.
the class LobManager method adjustUsageCount.
public Result adjustUsageCount(long lobID, int delta) {
Object[] data = getLobHeader(sysLobSession, lobID);
int count = ((Number) data[2]).intValue();
if (count + delta == 0) {
return deleteLob(lobID);
}
ResultMetaData meta = setLobUsage.getParametersMetaData();
Object[] params = new Object[meta.getColumnCount()];
params[0] = Long.valueOf(count + delta);
params[1] = Long.valueOf(lobID);
Result result = sysLobSession.executeCompiledStatement(setLobLength, params);
return result;
}
use of org.hsqldb_voltpatches.result.Result in project voltdb by VoltDB.
the class LobManager method getBlockAddresses.
int[][] getBlockAddresses(Session session, long lobID, int offset, int limit) {
ResultMetaData meta = getLobPart.getParametersMetaData();
Object[] params = new Object[meta.getColumnCount()];
params[0] = Long.valueOf(lobID);
params[1] = Integer.valueOf(offset);
params[2] = Integer.valueOf(limit);
session.sessionContext.pushDynamicArguments(params);
Result result = getLobPart.execute(session);
session.sessionContext.popDynamicArguments();
RowSetNavigator navigator = result.getNavigator();
int size = navigator.getSize();
int[][] blocks = new int[size][3];
for (int i = 0; i < size; i++) {
navigator.absolute(i);
Object[] data = navigator.getCurrent();
blocks[i][0] = ((Integer) data[LOBS.BLOCK_ADDR]).intValue();
blocks[i][1] = ((Integer) data[LOBS.BLOCK_COUNT]).intValue();
blocks[i][2] = ((Integer) data[LOBS.BLOCK_OFFSET]).intValue();
}
navigator.close();
return blocks;
}
use of org.hsqldb_voltpatches.result.Result in project voltdb by VoltDB.
the class LobManager method getChars.
public Result getChars(Session session, long lobID, long offset, int length) {
Result result = getBytes(session, lobID, offset * 2, length * 2);
if (result.isError()) {
return result;
}
byte[] bytes = ((ResultLob) result).getByteArray();
HsqlByteArrayInputStream be = new HsqlByteArrayInputStream(bytes);
char[] chars = new char[bytes.length / 2];
try {
for (int i = 0; i < chars.length; i++) {
chars[i] = be.readChar();
}
} catch (Exception e) {
return Result.newErrorResult(e);
}
return ResultLob.newLobGetCharsResponse(lobID, offset, chars);
}
use of org.hsqldb_voltpatches.result.Result in project voltdb by VoltDB.
the class LobManager method deleteLob.
public Result deleteLob(long lobID) {
Session session = this.sysLobSession;
ResultMetaData meta = deleteLob.getParametersMetaData();
Object[] params = new Object[meta.getColumnCount()];
params[0] = Long.valueOf(lobID);
params[1] = Long.valueOf(0);
Result result = session.executeCompiledStatement(deleteLob, params);
return result;
}
Aggregations