Search in sources :

Example 16 with Result

use of org.hsqldb_voltpatches.result.Result in project voltdb by VoltDB.

the class LobManager method divideBlockAddresses.

void divideBlockAddresses(Session session, long lobID, int offset) {
    ResultMetaData meta = divideLobPart.getParametersMetaData();
    Object[] params = new Object[meta.getColumnCount()];
    params[0] = Long.valueOf(lobID);
    params[1] = Integer.valueOf(offset);
    Result result = session.executeCompiledStatement(divideLobPart, params);
}
Also used : ResultMetaData(org.hsqldb_voltpatches.result.ResultMetaData) Result(org.hsqldb_voltpatches.result.Result)

Example 17 with Result

use of org.hsqldb_voltpatches.result.Result in project voltdb by VoltDB.

the class LobManager method createDuplicateLob.

public Result createDuplicateLob(Session session, long lobID) {
    Object[] data = getLobHeader(session, lobID);
    if (data == null) {
        Result.newErrorResult(Error.error(ErrorCode.X_0F502));
    }
    long newLobID = getNewLobID(session);
    Object[] params = new Object[data.length];
    params[0] = Long.valueOf(newLobID);
    params[1] = data[1];
    params[2] = data[2];
    params[3] = data[3];
    Result result = session.executeCompiledStatement(createLob, params);
    if (result.isError()) {
        return result;
    }
    long length = ((Long) data[1]).longValue();
    long byteLength = length;
    int lobType = ((Integer) data[1]).intValue();
    if (lobType == Types.SQL_CLOB) {
        byteLength *= 2;
    }
    int newBlockCount = (int) byteLength / lobBlockSize;
    if (byteLength % lobBlockSize != 0) {
        newBlockCount++;
    }
    createBlockAddresses(session, newLobID, 0, newBlockCount);
    // copy the contents
    int[][] sourceBlocks = getBlockAddresses(session, lobID, 0, Integer.MAX_VALUE);
    int[][] targetBlocks = getBlockAddresses(session, newLobID, 0, Integer.MAX_VALUE);
    try {
        copyBlockSet(sourceBlocks, targetBlocks);
    } catch (HsqlException e) {
        return Result.newErrorResult(e);
    }
    return ResultLob.newLobSetResponse(newLobID, length);
}
Also used : HsqlException(org.hsqldb_voltpatches.HsqlException) Result(org.hsqldb_voltpatches.result.Result)

Example 18 with Result

use of org.hsqldb_voltpatches.result.Result in project voltdb by VoltDB.

the class LobManager method truncate.

public Result truncate(Session session, long lobID, long offset) {
    Object[] data = getLobHeader(session, lobID);
    if (data == null) {
        return Result.newErrorResult(Error.error(ErrorCode.X_0F502));
    }
    /** @todo 1.9.0 - double offset for clob */
    long length = ((Long) data[1]).longValue();
    int blockOffset = (int) (offset / lobBlockSize);
    int blockLimit = (int) ((offset + length) / lobBlockSize);
    int byteLimitOffset = (int) ((offset + length) % lobBlockSize);
    if (byteLimitOffset != 0) {
        blockLimit++;
    }
    ResultMetaData meta = deleteLobPart.getParametersMetaData();
    Object[] params = new Object[meta.getColumnCount()];
    params[0] = Long.valueOf(lobID);
    params[1] = Integer.valueOf(blockOffset);
    params[2] = Integer.valueOf(blockLimit);
    params[3] = Long.valueOf(session.getTransactionTimestamp());
    Result result = session.executeCompiledStatement(deleteLobPart, params);
    setLength(session, lobID, offset);
    return ResultLob.newLobTruncateResponse(lobID);
}
Also used : ResultMetaData(org.hsqldb_voltpatches.result.ResultMetaData) Result(org.hsqldb_voltpatches.result.Result)

Example 19 with Result

use of org.hsqldb_voltpatches.result.Result in project voltdb by VoltDB.

the class LobManager method deleteBlockAddresses.

void deleteBlockAddresses(Session session, long lobID, int offset, int count) {
    ResultMetaData meta = deleteLobPart.getParametersMetaData();
    Object[] params = new Object[meta.getColumnCount()];
    params[0] = Long.valueOf(lobID);
    params[1] = Integer.valueOf(offset);
    params[2] = Integer.valueOf(count);
    Result result = session.executeCompiledStatement(deleteLobPart, params);
}
Also used : ResultMetaData(org.hsqldb_voltpatches.result.ResultMetaData) Result(org.hsqldb_voltpatches.result.Result)

Example 20 with Result

use of org.hsqldb_voltpatches.result.Result in project voltdb by VoltDB.

the class Constraint method prepareCheckConstraint.

void prepareCheckConstraint(Session session, Table table, boolean checkValues) {
    // to ensure no subselects etc. are in condition
    check.checkValidCheckConstraint();
    if (table == null) {
        check.resolveTypes(session, null);
    } else {
        QuerySpecification s = Expression.getCheckSelect(session, table, check);
        Result r = s.getResult(session, 1);
        if (r.getNavigator().getSize() != 0) {
            String[] info = new String[] { table.getName().name, "" };
            throw Error.error(ErrorCode.X_23504, ErrorCode.CONSTRAINT, info);
        }
        rangeVariable = s.rangeVariables[0];
        // removes reference to the Index object in range variable
        rangeVariable.setForCheckConstraint();
    }
    if (check.getType() == OpTypes.NOT && check.getLeftNode().getType() == OpTypes.IS_NULL && check.getLeftNode().getLeftNode().getType() == OpTypes.COLUMN) {
        notNullColumnIndex = check.getLeftNode().getLeftNode().getColumnIndex();
        isNotNull = true;
    }
}
Also used : Result(org.hsqldb_voltpatches.result.Result)

Aggregations

Result (org.hsqldb_voltpatches.result.Result)83 Session (org.hsqldb_voltpatches.Session)18 PersistentStore (org.hsqldb_voltpatches.persist.PersistentStore)16 HsqlName (org.hsqldb_voltpatches.HsqlNameManager.HsqlName)15 Table (org.hsqldb_voltpatches.Table)14 ResultLob (org.hsqldb_voltpatches.result.ResultLob)13 TextTable (org.hsqldb_voltpatches.TextTable)12 ResultMetaData (org.hsqldb_voltpatches.result.ResultMetaData)11 RowSetNavigator (org.hsqldb_voltpatches.navigator.RowSetNavigator)10 HsqlException (org.hsqldb_voltpatches.HsqlException)5 RowSetNavigatorData (org.hsqldb_voltpatches.navigator.RowSetNavigatorData)4 EOFException (java.io.EOFException)3 RowSetNavigatorClient (org.hsqldb_voltpatches.navigator.RowSetNavigatorClient)3 IOException (java.io.IOException)2 RangeIteratorBase (org.hsqldb_voltpatches.RangeVariable.RangeIteratorBase)2 Statement (org.hsqldb_voltpatches.Statement)2 HashMappedList (org.hsqldb_voltpatches.lib.HashMappedList)2 HsqlArrayList (org.hsqldb_voltpatches.lib.HsqlArrayList)2 HsqlByteArrayInputStream (org.hsqldb_voltpatches.lib.HsqlByteArrayInputStream)2 Iterator (org.hsqldb_voltpatches.lib.Iterator)2