Search in sources :

Example 16 with Value

use of org.gridgain.internal.h2.value.Value in project ignite by apache.

the class GridH2IndexBase method segmentForRow.

/**
 * @param row Table row.
 * @return Segment ID for given row.
 */
protected int segmentForRow(SearchRow row) {
    assert row != null;
    if (segmentsCount() == 1 || ctx == null)
        return 0;
    CacheObject key;
    final Value keyColValue = row.getValue(KEY_COL);
    assert keyColValue != null;
    final Object o = keyColValue.getObject();
    if (o instanceof CacheObject)
        key = (CacheObject) o;
    else
        key = ctx.toCacheKeyObject(o);
    return segmentForPartition(ctx.affinity().partition(key));
}
Also used : Value(org.h2.value.Value) CacheObject(org.apache.ignite.internal.processors.cache.CacheObject) CacheObject(org.apache.ignite.internal.processors.cache.CacheObject)

Example 17 with Value

use of org.gridgain.internal.h2.value.Value in project ignite by apache.

the class GridH2IndexBase method toRow.

/**
 * @param msg Message.
 * @return Row.
 */
private Row toRow(GridH2RowMessage msg) {
    if (msg == null)
        return null;
    GridKernalContext ctx = kernalContext();
    List<GridH2ValueMessage> vals = msg.values();
    assert !F.isEmpty(vals) : vals;
    Value[] vals0 = new Value[vals.size()];
    for (int i = 0; i < vals0.length; i++) {
        try {
            vals0[i] = vals.get(i).value(ctx);
        } catch (IgniteCheckedException e) {
            throw new CacheException(e);
        }
    }
    return database.createRow(vals0, MEMORY_CALCULATE);
}
Also used : IgniteCheckedException(org.apache.ignite.IgniteCheckedException) CacheException(javax.cache.CacheException) GridKernalContext(org.apache.ignite.internal.GridKernalContext) GridH2ValueMessage(org.apache.ignite.internal.processors.query.h2.twostep.msg.GridH2ValueMessage) Value(org.h2.value.Value)

Example 18 with Value

use of org.gridgain.internal.h2.value.Value in project ignite by apache.

the class GridH2IndexBase method toSearchRow.

/**
 * @param msg Row message.
 * @return Search row.
 */
private SearchRow toSearchRow(GridH2RowMessage msg) {
    if (msg == null)
        return null;
    GridKernalContext ctx = kernalContext();
    Value[] vals = new Value[getTable().getColumns().length];
    assert vals.length > 0;
    List<GridH2ValueMessage> msgVals = msg.values();
    for (int i = 0; i < indexColumns.length; i++) {
        if (i >= msgVals.size())
            continue;
        try {
            vals[indexColumns[i].column.getColumnId()] = msgVals.get(i).value(ctx);
        } catch (IgniteCheckedException e) {
            throw new CacheException(e);
        }
    }
    return database.createRow(vals, MEMORY_CALCULATE);
}
Also used : IgniteCheckedException(org.apache.ignite.IgniteCheckedException) CacheException(javax.cache.CacheException) GridKernalContext(org.apache.ignite.internal.GridKernalContext) Value(org.h2.value.Value) GridH2ValueMessage(org.apache.ignite.internal.processors.query.h2.twostep.msg.GridH2ValueMessage)

Example 19 with Value

use of org.gridgain.internal.h2.value.Value in project ignite by apache.

the class GridH2IndexBase method toSearchRowMessage.

/**
 * @param row Search row.
 * @return Row message.
 */
private GridH2RowMessage toSearchRowMessage(SearchRow row) {
    if (row == null)
        return null;
    List<GridH2ValueMessage> vals = new ArrayList<>(indexColumns.length);
    for (IndexColumn idxCol : indexColumns) {
        Value val = row.getValue(idxCol.column.getColumnId());
        if (val == null)
            break;
        try {
            vals.add(GridH2ValueMessageFactory.toMessage(val));
        } catch (IgniteCheckedException e) {
            throw new CacheException(e);
        }
    }
    GridH2RowMessage res = new GridH2RowMessage();
    res.values(vals);
    return res;
}
Also used : IgniteCheckedException(org.apache.ignite.IgniteCheckedException) CacheException(javax.cache.CacheException) GridH2ValueMessage(org.apache.ignite.internal.processors.query.h2.twostep.msg.GridH2ValueMessage) ArrayList(java.util.ArrayList) Value(org.h2.value.Value) GridH2RowMessage(org.apache.ignite.internal.processors.query.h2.twostep.msg.GridH2RowMessage) IndexColumn(org.h2.table.IndexColumn)

Example 20 with Value

use of org.gridgain.internal.h2.value.Value in project ignite by apache.

the class GridH2KeyValueRowOnheap method toString.

/**
 * {@inheritDoc}
 */
@Override
public String toString() {
    SB sb = new SB("Row@");
    sb.a(Integer.toHexString(System.identityHashCode(this)));
    Value v = key;
    sb.a("[ key: ").a(v == null ? "nil" : v.getString());
    v = val;
    sb.a(", val: ").a(v == null ? "nil" : v.getString());
    v = ver;
    sb.a(", ver: ").a(v == null ? "nil" : v.getString());
    sb.a(" ][ ");
    if (v != null) {
        for (int i = DEFAULT_COLUMNS_COUNT, cnt = getColumnCount(); i < cnt; i++) {
            v = getValue(i);
            if (i != DEFAULT_COLUMNS_COUNT)
                sb.a(", ");
            if (!desc.isKeyValueOrVersionColumn(i))
                sb.a(v == null ? "nil" : v.getString());
        }
    }
    sb.a(" ]");
    return sb.toString();
}
Also used : Value(org.h2.value.Value) SB(org.apache.ignite.internal.util.typedef.internal.SB)

Aggregations

Value (org.h2.value.Value)751 Value (org.gridgain.internal.h2.value.Value)326 SQLException (java.sql.SQLException)186 DbException (org.h2.message.DbException)126 ValueBigint (org.h2.value.ValueBigint)100 DbException (org.gridgain.internal.h2.message.DbException)98 PreparedStatement (java.sql.PreparedStatement)78 ResultSet (java.sql.ResultSet)78 Column (org.h2.table.Column)65 Statement (java.sql.Statement)56 Expression (org.h2.expression.Expression)52 ValueSmallint (org.h2.value.ValueSmallint)52 Column (org.gridgain.internal.h2.table.Column)50 ValueString (org.gridgain.internal.h2.value.ValueString)49 Row (org.h2.result.Row)49 SearchRow (org.h2.result.SearchRow)49 ArrayList (java.util.ArrayList)44 JdbcStatement (org.gridgain.internal.h2.jdbc.JdbcStatement)42 Database (org.h2.engine.Database)42 BigDecimal (java.math.BigDecimal)41