ignite-757 - Cache object value message
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/8a295e3b Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/8a295e3b Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/8a295e3b Branch: refs/heads/ignite-286 Commit: 8a295e3b06545b13b0a651de26d86da21bd8a71b Parents: 5d0e620 Author: S.Vladykin <svlady...@gridgain.com> Authored: Mon Apr 27 17:08:23 2015 +0300 Committer: S.Vladykin <svlady...@gridgain.com> Committed: Mon Apr 27 17:08:23 2015 +0300 ---------------------------------------------------------------------- .../ignite/codegen/MessageCodeGenerator.java | 1 + .../communication/GridIoMessageFactory.java | 2 +- .../processors/query/h2/IgniteH2Indexing.java | 17 ++- .../query/h2/opt/GridH2ValueCacheObject.java | 28 +++-- .../query/h2/twostep/GridMergeIndex.java | 4 +- .../h2/twostep/GridReduceQueryExecutor.java | 2 +- .../query/h2/twostep/GridResultPage.java | 6 +- .../query/h2/twostep/msg/GridH2Array.java | 5 +- .../query/h2/twostep/msg/GridH2Boolean.java | 3 +- .../query/h2/twostep/msg/GridH2Byte.java | 3 +- .../query/h2/twostep/msg/GridH2Bytes.java | 3 +- .../query/h2/twostep/msg/GridH2CacheObject.java | 115 +++++++++++++++++++ .../query/h2/twostep/msg/GridH2Date.java | 3 +- .../query/h2/twostep/msg/GridH2Decimal.java | 3 +- .../query/h2/twostep/msg/GridH2Double.java | 3 +- .../query/h2/twostep/msg/GridH2Float.java | 3 +- .../query/h2/twostep/msg/GridH2Geometry.java | 3 +- .../query/h2/twostep/msg/GridH2Integer.java | 3 +- .../query/h2/twostep/msg/GridH2JavaObject.java | 3 +- .../query/h2/twostep/msg/GridH2Long.java | 3 +- .../query/h2/twostep/msg/GridH2Null.java | 11 +- .../query/h2/twostep/msg/GridH2Short.java | 3 +- .../query/h2/twostep/msg/GridH2String.java | 3 +- .../query/h2/twostep/msg/GridH2Time.java | 3 +- .../query/h2/twostep/msg/GridH2Timestamp.java | 3 +- .../query/h2/twostep/msg/GridH2Uuid.java | 3 +- .../h2/twostep/msg/GridH2ValueMessage.java | 4 +- .../twostep/msg/GridH2ValueMessageFactory.java | 22 ++-- 28 files changed, 210 insertions(+), 55 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8a295e3b/modules/codegen/src/main/java/org/apache/ignite/codegen/MessageCodeGenerator.java ---------------------------------------------------------------------- diff --git a/modules/codegen/src/main/java/org/apache/ignite/codegen/MessageCodeGenerator.java b/modules/codegen/src/main/java/org/apache/ignite/codegen/MessageCodeGenerator.java index eef4dd6..e37b4f3 100644 --- a/modules/codegen/src/main/java/org/apache/ignite/codegen/MessageCodeGenerator.java +++ b/modules/codegen/src/main/java/org/apache/ignite/codegen/MessageCodeGenerator.java @@ -193,6 +193,7 @@ public class MessageCodeGenerator { // gen.generateAndWrite(GridH2JavaObject.class); // gen.generateAndWrite(GridH2Uuid.class); // gen.generateAndWrite(GridH2Geometry.class); +// gen.generateAndWrite(GridH2CacheObject.class); } /** http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8a295e3b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java index 5b7d84d..a395747 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java @@ -602,7 +602,7 @@ public class GridIoMessageFactory implements MessageFactory { // [-3..112] - this // [120..123] - DR - // [-4..-21] - SQL + // [-4..-22] - SQL default: if (ext != null) { for (MessageFactory factory : ext) { http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8a295e3b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java ---------------------------------------------------------------------- diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java index 01eb855..9579de3 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java @@ -406,6 +406,17 @@ public class IgniteH2Indexing implements GridQueryIndexing { return ctx.cache().internalCache(space).context().cacheObjectContext(); } + /** + * @param space Space. + * @return Cache object context. + */ + private GridCacheContext cacheContext(String space) { + if (ctx == null) + return null; + + return ctx.cache().internalCache(space).context(); + } + /** {@inheritDoc} */ @Override public void remove(@Nullable String spaceName, CacheObject key, CacheObject val) throws IgniteCheckedException { if (log.isDebugEnabled()) @@ -1969,12 +1980,10 @@ public class IgniteH2Indexing implements GridQueryIndexing { if (obj instanceof CacheObject) { // Handle cache object. CacheObject co = (CacheObject)obj; - CacheObjectContext coctx = objectContext(schema.spaceName); - if (type == Value.JAVA_OBJECT) - return new GridH2ValueCacheObject(coctx, co); + return new GridH2ValueCacheObject(cacheContext(schema.spaceName), co); - obj = co.value(coctx, false); + obj = co.value(objectContext(schema.spaceName), false); } switch (type) { http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8a295e3b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2ValueCacheObject.java ---------------------------------------------------------------------- diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2ValueCacheObject.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2ValueCacheObject.java index c2bed03..0a37674 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2ValueCacheObject.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2ValueCacheObject.java @@ -34,17 +34,17 @@ public class GridH2ValueCacheObject extends Value { private CacheObject obj; /** */ - private CacheObjectContext coctx; + private GridCacheContext<?,?> cctx; /** - * @param coctx Cache object context. + * @param cctx Cache context. * @param obj Object. */ - public GridH2ValueCacheObject(CacheObjectContext coctx, CacheObject obj) { + public GridH2ValueCacheObject(GridCacheContext<?,?> cctx, CacheObject obj) { assert obj != null; this.obj = obj; - this.coctx = coctx; // Allowed to be null in tests. + this.cctx = cctx; // Allowed to be null in tests. } /** @@ -54,6 +54,13 @@ public class GridH2ValueCacheObject extends Value { return obj; } + /** + * @return Cache context. + */ + public GridCacheContext<?,?> getCacheContext() { + return cctx; + } + /** {@inheritDoc} */ @Override public String getSQL() { throw new UnsupportedOperationException(); @@ -84,12 +91,19 @@ public class GridH2ValueCacheObject extends Value { return Utils.cloneByteArray(getBytesNoCopy()); } + /** + * @return Cache object context. + */ + private CacheObjectContext objectContext() { + return cctx == null ? null : cctx.cacheObjectContext(); + } + /** {@inheritDoc} */ @Override public byte[] getBytesNoCopy() { if (obj.type() == CacheObject.TYPE_REGULAR) { // Result must be the same as `marshaller.marshall(obj.value(coctx, false));` try { - return obj.valueBytes(coctx); + return obj.valueBytes(objectContext()); } catch (IgniteCheckedException e) { throw DbException.convert(e); @@ -97,12 +111,12 @@ public class GridH2ValueCacheObject extends Value { } // For portables and byte array cache object types. - return Utils.serialize(obj.value(coctx, false), null); + return Utils.serialize(obj.value(objectContext(), false), null); } /** {@inheritDoc} */ @Override public Object getObject() { - return obj.value(coctx, false); + return obj.value(objectContext(), false); } /** {@inheritDoc} */ http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8a295e3b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridMergeIndex.java ---------------------------------------------------------------------- diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridMergeIndex.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridMergeIndex.java index 2b5c895..9136821 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridMergeIndex.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridMergeIndex.java @@ -96,7 +96,7 @@ public abstract class GridMergeIndex extends BaseIndex { * @param nodeId Node ID. */ public void fail(UUID nodeId) { - addPage0(new GridResultPage(nodeId, null, false)); + addPage0(new GridResultPage(null, nodeId, null, false)); } /** @@ -137,7 +137,7 @@ public abstract class GridMergeIndex extends BaseIndex { if (last) last = lastSubmitted.compareAndSet(false, true); - addPage0(new GridResultPage(page.source(), null, last)); + addPage0(new GridResultPage(null, page.source(), null, last)); } } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8a295e3b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridReduceQueryExecutor.java ---------------------------------------------------------------------- diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridReduceQueryExecutor.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridReduceQueryExecutor.java index d7832f0..e175a43 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridReduceQueryExecutor.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridReduceQueryExecutor.java @@ -231,7 +231,7 @@ public class GridReduceQueryExecutor { GridResultPage page; try { - page = new GridResultPage(node.id(), msg, false) { + page = new GridResultPage(ctx, node.id(), msg, false) { @Override public void fetchNextPage() { if (r.rmtErr != null) throw new CacheException("Next page fetch failed.", r.rmtErr); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8a295e3b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridResultPage.java ---------------------------------------------------------------------- diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridResultPage.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridResultPage.java index af1bb4f..0a4b746 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridResultPage.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridResultPage.java @@ -17,6 +17,7 @@ package org.apache.ignite.internal.processors.query.h2.twostep; +import org.apache.ignite.internal.*; import org.apache.ignite.internal.processors.query.h2.twostep.messages.*; import org.apache.ignite.internal.util.typedef.internal.*; import org.apache.ignite.plugin.extensions.communication.*; @@ -46,12 +47,13 @@ public class GridResultPage { private Iterator<Value[]> rows; /** + * @param ctx Kernal context. * @param src Source. * @param res Response. * @param last If this is the globally last page. */ @SuppressWarnings("unchecked") - public GridResultPage(UUID src, GridQueryNextPageResponse res, boolean last) { + public GridResultPage(final GridKernalContext ctx, UUID src, GridQueryNextPageResponse res, boolean last) { assert src != null; this.src = src; @@ -91,7 +93,7 @@ public class GridResultPage { rowIdx++; - return fillArray(valsIter, new Value[cols], null); // TODO coctx + return fillArray(valsIter, new Value[cols], ctx); } @Override public void remove() { http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8a295e3b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Array.java ---------------------------------------------------------------------- diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Array.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Array.java index 727428e..ec427b9 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Array.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Array.java @@ -56,9 +56,8 @@ public class GridH2Array extends GridH2ValueMessage { } /** {@inheritDoc} */ - @Override public Value value() { - // TODO we need cache object context - return ValueArray.get(fillArray(x.iterator(), new Value[x.size()], null)); + @Override public Value value(GridKernalContext ctx) { + return ValueArray.get(fillArray(x.iterator(), new Value[x.size()], ctx)); } /** {@inheritDoc} */ http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8a295e3b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Boolean.java ---------------------------------------------------------------------- diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Boolean.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Boolean.java index 7125a5e..ec4e455 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Boolean.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Boolean.java @@ -17,6 +17,7 @@ package org.apache.ignite.internal.processors.query.h2.twostep.msg; +import org.apache.ignite.internal.*; import org.apache.ignite.plugin.extensions.communication.*; import org.h2.value.*; @@ -46,7 +47,7 @@ public class GridH2Boolean extends GridH2ValueMessage { } /** {@inheritDoc} */ - @Override public Value value() { + @Override public Value value(GridKernalContext ctx) { return ValueBoolean.get(x); } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8a295e3b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Byte.java ---------------------------------------------------------------------- diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Byte.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Byte.java index 085870e..e7c8f33 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Byte.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Byte.java @@ -17,6 +17,7 @@ package org.apache.ignite.internal.processors.query.h2.twostep.msg; +import org.apache.ignite.internal.*; import org.apache.ignite.plugin.extensions.communication.*; import org.h2.value.*; @@ -46,7 +47,7 @@ public class GridH2Byte extends GridH2ValueMessage { } /** {@inheritDoc} */ - @Override public Value value() { + @Override public Value value(GridKernalContext ctx) { return ValueByte.get(x); } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8a295e3b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Bytes.java ---------------------------------------------------------------------- diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Bytes.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Bytes.java index 4053ae2..31eaaca 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Bytes.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Bytes.java @@ -17,6 +17,7 @@ package org.apache.ignite.internal.processors.query.h2.twostep.msg; +import org.apache.ignite.internal.*; import org.apache.ignite.plugin.extensions.communication.*; import org.h2.value.*; @@ -46,7 +47,7 @@ public class GridH2Bytes extends GridH2ValueMessage { } /** {@inheritDoc} */ - @Override public Value value() { + @Override public Value value(GridKernalContext ctx) { return ValueBytes.getNoCopy(b); } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8a295e3b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2CacheObject.java ---------------------------------------------------------------------- diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2CacheObject.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2CacheObject.java new file mode 100644 index 0000000..c594274 --- /dev/null +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2CacheObject.java @@ -0,0 +1,115 @@ +package org.apache.ignite.internal.processors.query.h2.twostep.msg; + +import org.apache.ignite.internal.*; +import org.apache.ignite.internal.processors.cache.*; +import org.apache.ignite.internal.processors.query.h2.opt.*; +import org.apache.ignite.plugin.extensions.communication.*; +import org.h2.value.*; + +import java.nio.*; + +/** + * H2 Cache object message. + */ +public class GridH2CacheObject extends GridH2ValueMessage { + /** */ + private int cacheId; + + /** */ + private CacheObject obj; + + /** + * + */ + public GridH2CacheObject() { + // No-op. + } + + /** + * @param cacheId Cache ID. + * @param obj Object. + */ + public GridH2CacheObject(int cacheId, CacheObject obj) { + this.cacheId = cacheId; + this.obj = obj; + } + + /** {@inheritDoc} */ + @Override public Value value(GridKernalContext ctx) { + return new GridH2ValueCacheObject(ctx.cache().context().cacheContext(cacheId), obj); + } + + /** {@inheritDoc} */ + @Override public boolean readFrom(ByteBuffer buf, MessageReader reader) { + reader.setBuffer(buf); + + if (!reader.beforeMessageRead()) + return false; + + if (!super.readFrom(buf, reader)) + return false; + + switch (reader.state()) { + case 0: + cacheId = reader.readInt("cacheId"); + + if (!reader.isLastRead()) + return false; + + reader.incrementState(); + + case 1: + obj = reader.readMessage("obj"); + + if (!reader.isLastRead()) + return false; + + reader.incrementState(); + + } + + return true; + } + + /** {@inheritDoc} */ + @Override public boolean writeTo(ByteBuffer buf, MessageWriter writer) { + writer.setBuffer(buf); + + if (!super.writeTo(buf, writer)) + return false; + + if (!writer.isHeaderWritten()) { + if (!writer.writeHeader(directType(), fieldsCount())) + return false; + + writer.onHeaderWritten(); + } + + switch (writer.state()) { + case 0: + if (!writer.writeInt("cacheId", cacheId)) + return false; + + writer.incrementState(); + + case 1: + if (!writer.writeMessage("obj", obj)) + return false; + + writer.incrementState(); + + } + + return true; + } + + /** {@inheritDoc} */ + @Override public byte directType() { + return -22; + } + + /** {@inheritDoc} */ + @Override public byte fieldsCount() { + return 2; + } +} http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8a295e3b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Date.java ---------------------------------------------------------------------- diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Date.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Date.java index 72dea77..e5a8372 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Date.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Date.java @@ -17,6 +17,7 @@ package org.apache.ignite.internal.processors.query.h2.twostep.msg; +import org.apache.ignite.internal.*; import org.apache.ignite.plugin.extensions.communication.*; import org.h2.value.*; @@ -48,7 +49,7 @@ public class GridH2Date extends GridH2ValueMessage { } /** {@inheritDoc} */ - @Override public Value value() { + @Override public Value value(GridKernalContext ctx) { return ValueDate.fromDateValue(date); } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8a295e3b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Decimal.java ---------------------------------------------------------------------- diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Decimal.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Decimal.java index c52e7a9..70700a8 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Decimal.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Decimal.java @@ -17,6 +17,7 @@ package org.apache.ignite.internal.processors.query.h2.twostep.msg; +import org.apache.ignite.internal.*; import org.apache.ignite.plugin.extensions.communication.*; import org.h2.value.*; @@ -53,7 +54,7 @@ public class GridH2Decimal extends GridH2ValueMessage { } /** {@inheritDoc} */ - @Override public Value value() { + @Override public Value value(GridKernalContext ctx) { return ValueDecimal.get(new BigDecimal(new BigInteger(b), scale)); } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8a295e3b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Double.java ---------------------------------------------------------------------- diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Double.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Double.java index 414be92..bdb796f 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Double.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Double.java @@ -17,6 +17,7 @@ package org.apache.ignite.internal.processors.query.h2.twostep.msg; +import org.apache.ignite.internal.*; import org.apache.ignite.plugin.extensions.communication.*; import org.h2.value.*; @@ -46,7 +47,7 @@ public class GridH2Double extends GridH2ValueMessage { } /** {@inheritDoc} */ - @Override public Value value() { + @Override public Value value(GridKernalContext ctx) { return ValueDouble.get(x); } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8a295e3b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Float.java ---------------------------------------------------------------------- diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Float.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Float.java index 6afa1eb..676b79a 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Float.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Float.java @@ -17,6 +17,7 @@ package org.apache.ignite.internal.processors.query.h2.twostep.msg; +import org.apache.ignite.internal.*; import org.apache.ignite.plugin.extensions.communication.*; import org.h2.value.*; @@ -46,7 +47,7 @@ public class GridH2Float extends GridH2ValueMessage { } /** {@inheritDoc} */ - @Override public Value value() { + @Override public Value value(GridKernalContext ctx) { return ValueFloat.get(x); } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8a295e3b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Geometry.java ---------------------------------------------------------------------- diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Geometry.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Geometry.java index 2b7a410..c825a47 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Geometry.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Geometry.java @@ -17,6 +17,7 @@ package org.apache.ignite.internal.processors.query.h2.twostep.msg; +import org.apache.ignite.internal.*; import org.apache.ignite.plugin.extensions.communication.*; import org.h2.value.*; @@ -62,7 +63,7 @@ public class GridH2Geometry extends GridH2ValueMessage { } /** {@inheritDoc} */ - @Override public Value value() { + @Override public Value value(GridKernalContext ctx) { try { return (Value)GEOMETRY_FROM_BYTES.invoke(null, new Object[]{b}); } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8a295e3b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Integer.java ---------------------------------------------------------------------- diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Integer.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Integer.java index 6975bfb..fef4956 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Integer.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Integer.java @@ -17,6 +17,7 @@ package org.apache.ignite.internal.processors.query.h2.twostep.msg; +import org.apache.ignite.internal.*; import org.apache.ignite.plugin.extensions.communication.*; import org.h2.value.*; @@ -46,7 +47,7 @@ public class GridH2Integer extends GridH2ValueMessage { } /** {@inheritDoc} */ - @Override public Value value() { + @Override public Value value(GridKernalContext ctx) { return ValueInt.get(x); } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8a295e3b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2JavaObject.java ---------------------------------------------------------------------- diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2JavaObject.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2JavaObject.java index 3ba6ed8..17f6c9c 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2JavaObject.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2JavaObject.java @@ -17,6 +17,7 @@ package org.apache.ignite.internal.processors.query.h2.twostep.msg; +import org.apache.ignite.internal.*; import org.apache.ignite.plugin.extensions.communication.*; import org.h2.value.*; @@ -46,7 +47,7 @@ public class GridH2JavaObject extends GridH2ValueMessage { } /** {@inheritDoc} */ - @Override public Value value() { + @Override public Value value(GridKernalContext ctx) { return ValueJavaObject.getNoCopy(null, b, null); } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8a295e3b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Long.java ---------------------------------------------------------------------- diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Long.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Long.java index 1906757..c798922 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Long.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Long.java @@ -17,6 +17,7 @@ package org.apache.ignite.internal.processors.query.h2.twostep.msg; +import org.apache.ignite.internal.*; import org.apache.ignite.plugin.extensions.communication.*; import org.h2.value.*; @@ -46,7 +47,7 @@ public class GridH2Long extends GridH2ValueMessage { } /** {@inheritDoc} */ - @Override public Value value() { + @Override public Value value(GridKernalContext ctx) { return ValueLong.get(x); } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8a295e3b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Null.java ---------------------------------------------------------------------- diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Null.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Null.java index 5cea7ad..a2e20d3 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Null.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Null.java @@ -17,6 +17,7 @@ package org.apache.ignite.internal.processors.query.h2.twostep.msg; +import org.apache.ignite.internal.*; import org.apache.ignite.plugin.extensions.communication.*; import org.h2.value.*; @@ -37,7 +38,7 @@ public class GridH2Null extends GridH2ValueMessage { } /** {@inheritDoc} */ - @Override public Value value() { + @Override public Value value(GridKernalContext ctx) { return ValueNull.INSTANCE; } @@ -62,13 +63,7 @@ public class GridH2Null extends GridH2ValueMessage { @Override public boolean readFrom(ByteBuffer buf, MessageReader reader) { reader.setBuffer(buf); - if (!reader.beforeMessageRead()) - return false; - - if (!super.readFrom(buf, reader)) - return false; - - return true; + return reader.beforeMessageRead() && super.readFrom(buf, reader); } /** {@inheritDoc} */ http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8a295e3b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Short.java ---------------------------------------------------------------------- diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Short.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Short.java index e52efc1..9064559 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Short.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Short.java @@ -17,6 +17,7 @@ package org.apache.ignite.internal.processors.query.h2.twostep.msg; +import org.apache.ignite.internal.*; import org.apache.ignite.plugin.extensions.communication.*; import org.h2.value.*; @@ -46,7 +47,7 @@ public class GridH2Short extends GridH2ValueMessage { } /** {@inheritDoc} */ - @Override public Value value() { + @Override public Value value(GridKernalContext ctx) { return ValueShort.get(x); } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8a295e3b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2String.java ---------------------------------------------------------------------- diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2String.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2String.java index 3d72227..3ea3248 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2String.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2String.java @@ -17,6 +17,7 @@ package org.apache.ignite.internal.processors.query.h2.twostep.msg; +import org.apache.ignite.internal.*; import org.apache.ignite.plugin.extensions.communication.*; import org.h2.value.*; @@ -48,7 +49,7 @@ public class GridH2String extends GridH2ValueMessage { } /** {@inheritDoc} */ - @Override public Value value() { + @Override public Value value(GridKernalContext ctx) { return ValueString.get(x); } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8a295e3b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Time.java ---------------------------------------------------------------------- diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Time.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Time.java index aa36a73..ec34248 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Time.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Time.java @@ -17,6 +17,7 @@ package org.apache.ignite.internal.processors.query.h2.twostep.msg; +import org.apache.ignite.internal.*; import org.apache.ignite.plugin.extensions.communication.*; import org.h2.value.*; @@ -49,7 +50,7 @@ public class GridH2Time extends GridH2ValueMessage { /** {@inheritDoc} */ - @Override public Value value() { + @Override public Value value(GridKernalContext ctx) { return ValueTime.fromNanos(nanos); } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8a295e3b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Timestamp.java ---------------------------------------------------------------------- diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Timestamp.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Timestamp.java index ca8c6d2..973782b 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Timestamp.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Timestamp.java @@ -17,6 +17,7 @@ package org.apache.ignite.internal.processors.query.h2.twostep.msg; +import org.apache.ignite.internal.*; import org.apache.ignite.plugin.extensions.communication.*; import org.h2.value.*; @@ -52,7 +53,7 @@ public class GridH2Timestamp extends GridH2ValueMessage { } /** {@inheritDoc} */ - @Override public Value value() { + @Override public Value value(GridKernalContext ctx) { return ValueTimestamp.fromDateValueAndNanos(date, nanos); } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8a295e3b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Uuid.java ---------------------------------------------------------------------- diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Uuid.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Uuid.java index 92e8d91..f23b827 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Uuid.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2Uuid.java @@ -17,6 +17,7 @@ package org.apache.ignite.internal.processors.query.h2.twostep.msg; +import org.apache.ignite.internal.*; import org.apache.ignite.plugin.extensions.communication.*; import org.h2.value.*; @@ -52,7 +53,7 @@ public class GridH2Uuid extends GridH2ValueMessage { } /** {@inheritDoc} */ - @Override public Value value() { + @Override public Value value(GridKernalContext ctx) { return ValueUuid.get(high, low); } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8a295e3b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2ValueMessage.java ---------------------------------------------------------------------- diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2ValueMessage.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2ValueMessage.java index f601207..3d4fe7c 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2ValueMessage.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2ValueMessage.java @@ -17,6 +17,7 @@ package org.apache.ignite.internal.processors.query.h2.twostep.msg; +import org.apache.ignite.internal.*; import org.apache.ignite.plugin.extensions.communication.*; import org.h2.value.*; @@ -29,9 +30,10 @@ public abstract class GridH2ValueMessage implements Message { /** * Gets H2 value. * + * @param ctx Kernal context. * @return Value. */ - public abstract Value value(); + public abstract Value value(GridKernalContext ctx); /** {@inheritDoc} */ @Override public boolean writeTo(ByteBuffer buf, MessageWriter writer) { http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8a295e3b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2ValueMessageFactory.java ---------------------------------------------------------------------- diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2ValueMessageFactory.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2ValueMessageFactory.java index b996a77..e5a8208 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2ValueMessageFactory.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2ValueMessageFactory.java @@ -17,7 +17,7 @@ package org.apache.ignite.internal.processors.query.h2.twostep.msg; -import org.apache.ignite.internal.processors.cache.*; +import org.apache.ignite.internal.*; import org.apache.ignite.internal.processors.query.h2.opt.*; import org.apache.ignite.plugin.extensions.communication.*; import org.h2.value.*; @@ -85,6 +85,9 @@ public class GridH2ValueMessageFactory implements MessageFactory { case -21: return new GridH2Geometry(); + + case -22: + return new GridH2CacheObject(); } return null; @@ -107,17 +110,14 @@ public class GridH2ValueMessageFactory implements MessageFactory { /** * @param src Source iterator. * @param dst Array to fill with values. - * @param coctx Cache object context. + * @param ctx Kernal context. * @return Filled array. */ - public static Value[] fillArray(Iterator<Message> src, Value[] dst, CacheObjectContext coctx) { + public static Value[] fillArray(Iterator<Message> src, Value[] dst, GridKernalContext ctx) { for (int i = 0; i < dst.length; i++) { Message msg = src.next(); - if (msg instanceof GridH2ValueMessage) - dst[i] = ((GridH2ValueMessage)msg).value(); - else - dst[i] = new GridH2ValueCacheObject(coctx, (CacheObject)msg); + dst[i] = ((GridH2ValueMessage)msg).value(ctx); } return dst; @@ -177,9 +177,11 @@ public class GridH2ValueMessageFactory implements MessageFactory { return new GridH2Array(v); case Value.JAVA_OBJECT: - // TODO -// if (v instanceof GridH2ValueCacheObject) -// return ((GridH2ValueCacheObject)v).getCacheObject(); + if (v instanceof GridH2ValueCacheObject) { + GridH2ValueCacheObject v0 = (GridH2ValueCacheObject)v; + + return new GridH2CacheObject(v0.getCacheContext().cacheId(), v0.getCacheObject()); + } return new GridH2JavaObject(v);