You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by sb...@apache.org on 2016/12/06 08:40:19 UTC
[22/50] ignite git commit: IGNITE-4308: Ignore QueryEntity.keyFields
when key is an SQL type. This closes #1286.
IGNITE-4308: Ignore QueryEntity.keyFields when key is an SQL type. This closes #1286.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/2ca709f8
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/2ca709f8
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/2ca709f8
Branch: refs/heads/ignite-comm-balance-master
Commit: 2ca709f8efb83c33ebe85d4b45844644a6fee7d4
Parents: ac6d910
Author: Alexander Paschenko <al...@gmail.com>
Authored: Fri Nov 25 19:17:49 2016 +0300
Committer: devozerov <vo...@gridgain.com>
Committed: Fri Nov 25 19:17:49 2016 +0300
----------------------------------------------------------------------
.../jdbc2/JdbcAbstractDmlStatementSelfTest.java | 2 --
.../internal/processors/query/GridQueryProcessor.java | 14 +++++++++++++-
.../IgniteCacheAbstractInsertSqlQuerySelfTest.java | 8 --------
.../cache/IgniteCacheAbstractSqlDmlQuerySelfTest.java | 2 --
4 files changed, 13 insertions(+), 13 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/2ca709f8/modules/clients/src/test/java/org/apache/ignite/internal/jdbc2/JdbcAbstractDmlStatementSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/clients/src/test/java/org/apache/ignite/internal/jdbc2/JdbcAbstractDmlStatementSelfTest.java b/modules/clients/src/test/java/org/apache/ignite/internal/jdbc2/JdbcAbstractDmlStatementSelfTest.java
index 1590067..4a97aef 100644
--- a/modules/clients/src/test/java/org/apache/ignite/internal/jdbc2/JdbcAbstractDmlStatementSelfTest.java
+++ b/modules/clients/src/test/java/org/apache/ignite/internal/jdbc2/JdbcAbstractDmlStatementSelfTest.java
@@ -118,8 +118,6 @@ public abstract class JdbcAbstractDmlStatementSelfTest extends GridCommonAbstrac
e.addQueryField("firstName", String.class.getName(), null);
e.addQueryField("lastName", String.class.getName(), null);
- e.setKeyFields(Collections.<String>emptySet());
-
ccfg.setQueryEntities(Collections.singletonList(e));
return cfg;
http://git-wip-us.apache.org/repos/asf/ignite/blob/2ca709f8/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 0fc6044..1594cee 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
@@ -1502,10 +1502,22 @@ public class GridQueryProcessor extends GridProcessorAdapter {
aliases = Collections.emptyMap();
Set<String> keyFields = qryEntity.getKeyFields();
+
+ // We have to distinguish between empty and null keyFields when the key is not of SQL type -
+ // when a key is not of SQL type, absence of a field in nonnull keyFields tell us that this field
+ // is a value field, and null keyFields tells us that current configuration
+ // does not tell us anything about this field's ownership.
boolean hasKeyFields = (keyFields != null);
+ boolean isKeyClsSqlType = isSqlType(d.keyClass());
+
for (Map.Entry<String, String> entry : qryEntity.getFields().entrySet()) {
- Boolean isKeyField = (hasKeyFields ? keyFields.contains(entry.getKey()) : null);
+ Boolean isKeyField;
+
+ if (isKeyClsSqlType) // We don't care about keyFields in this case - it might be null, or empty, or anything
+ isKeyField = false;
+ else
+ isKeyField = (hasKeyFields ? keyFields.contains(entry.getKey()) : null);
BinaryProperty prop = buildBinaryProperty(entry.getKey(), U.classForName(entry.getValue(), Object.class, true),
aliases, isKeyField);
http://git-wip-us.apache.org/repos/asf/ignite/blob/2ca709f8/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheAbstractInsertSqlQuerySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheAbstractInsertSqlQuerySelfTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheAbstractInsertSqlQuerySelfTest.java
index 2c3ab23..47369ee 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheAbstractInsertSqlQuerySelfTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheAbstractInsertSqlQuerySelfTest.java
@@ -148,8 +148,6 @@ public abstract class IgniteCacheAbstractInsertSqlQuerySelfTest extends GridComm
QueryEntity s2p = new QueryEntity(String.class.getName(), "Person");
- s2p.setKeyFields(Collections.<String>emptySet());
-
LinkedHashMap<String, String> flds = new LinkedHashMap<>();
flds.put("id", Integer.class.getName());
@@ -161,8 +159,6 @@ public abstract class IgniteCacheAbstractInsertSqlQuerySelfTest extends GridComm
QueryEntity s2s = new QueryEntity(String.class.getName(), String.class.getName());
- s2s.setKeyFields(Collections.<String>emptySet());
-
s2pCcfg.setQueryEntities(Arrays.asList(s2p, s2s));
ignite(0).createCache(s2pCcfg);
@@ -173,8 +169,6 @@ public abstract class IgniteCacheAbstractInsertSqlQuerySelfTest extends GridComm
QueryEntity i2p = new QueryEntity(Integer.class.getName(), "Person");
- i2p.setKeyFields(Collections.<String>emptySet());
-
LinkedHashMap<String, String> flds = new LinkedHashMap<>();
flds.put("id", Integer.class.getName());
@@ -285,8 +279,6 @@ public abstract class IgniteCacheAbstractInsertSqlQuerySelfTest extends GridComm
QueryEntity i2i = new QueryEntity(Integer.class.getName(), Integer.class.getName());
- i2i.setKeyFields(Collections.<String>emptySet());
-
i2i.setFields(new LinkedHashMap<String, String>());
i2i.setIndexes(Collections.<QueryIndex>emptyList());
http://git-wip-us.apache.org/repos/asf/ignite/blob/2ca709f8/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheAbstractSqlDmlQuerySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheAbstractSqlDmlQuerySelfTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheAbstractSqlDmlQuerySelfTest.java
index 22116a9..123c32a 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheAbstractSqlDmlQuerySelfTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheAbstractSqlDmlQuerySelfTest.java
@@ -153,8 +153,6 @@ public abstract class IgniteCacheAbstractSqlDmlQuerySelfTest extends GridCommonA
QueryEntity e = new QueryEntity(String.class.getName(), "Person");
- e.setKeyFields(Collections.<String>emptySet());
-
LinkedHashMap<String, String> flds = new LinkedHashMap<>();
flds.put("id", Integer.class.getName());