Repository: ignite
Updated Branches:
  refs/heads/ignite-1803-final 1a01ad848 -> 71770d885


IGNITE-1803: WIP.


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/f88c92c5
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/f88c92c5
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/f88c92c5

Branch: refs/heads/ignite-1803-final
Commit: f88c92c522531d5a5b7d3ab7ee1bb6266057b93a
Parents: 1a01ad8
Author: vozerov-gridgain <[email protected]>
Authored: Thu Nov 5 17:39:42 2015 +0300
Committer: vozerov-gridgain <[email protected]>
Committed: Thu Nov 5 17:39:42 2015 +0300

----------------------------------------------------------------------
 .../processors/query/GridQueryProcessor.java    | 23 +++++++++++++++++++-
 1 file changed, 22 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/f88c92c5/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java
index d1f9869..b8fafdd 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java
@@ -44,6 +44,7 @@ import javax.cache.CacheException;
 import org.apache.ignite.IgniteCheckedException;
 import org.apache.ignite.IgniteException;
 import org.apache.ignite.IgniteLogger;
+import org.apache.ignite.binary.BinaryField;
 import org.apache.ignite.cache.CacheTypeMetadata;
 import org.apache.ignite.cache.QueryEntity;
 import org.apache.ignite.cache.QueryIndex;
@@ -1804,6 +1805,9 @@ public class GridQueryProcessor extends 
GridProcessorAdapter {
         /** */
         private volatile int isKeyProp;
 
+        /** Binary field to speed-up deserialization. */
+        private volatile BinaryField field;
+
         /**
          * Constructor.
          *
@@ -1853,7 +1857,24 @@ public class GridQueryProcessor extends 
GridProcessorAdapter {
                 obj = isKeyProp0 == 1 ? key : val;
             }
 
-            return ctx.cacheObjects().field(obj, propName);
+            if (obj instanceof BinaryObject) {
+                BinaryObject obj0 = (BinaryObject)obj;
+
+                BinaryField field0 = field;
+
+                if (field0 == null)
+                {
+                    field0 = obj0.fieldDescriptor(propName);
+
+                    assert field0 != null;
+
+                    field = field0;
+                }
+
+                return field0.value(obj0);
+            }
+            else
+                return ctx.cacheObjects().field(obj, propName);
         }
 
         /** {@inheritDoc} */

Reply via email to