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/11/11 08:22:30 UTC
[1/4] ignite git commit: ignite-4154
Repository: ignite
Updated Branches:
refs/heads/ignite-4154-opt2 [created] c48957940
ignite-4154
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/2120ef42
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/2120ef42
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/2120ef42
Branch: refs/heads/ignite-4154-opt2
Commit: 2120ef424b17ea550a21b1f462e5a69e1e686c87
Parents: 0832d68
Author: sboikov <sb...@gridgain.com>
Authored: Thu Nov 10 18:08:12 2016 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Thu Nov 10 18:08:12 2016 +0300
----------------------------------------------------------------------
.../ignite/spi/discovery/tcp/ServerImpl.java | 49 ++++++++++++++------
1 file changed, 35 insertions(+), 14 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/2120ef42/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java
index 6df9d4e..e8feb52 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java
@@ -954,7 +954,7 @@ class ServerImpl extends TcpDiscoveryImpl {
for (InetSocketAddress addr : addrs) {
try {
- Integer res = sendMessageDirectly(joinReq, addr);
+ Integer res = sendMessageDirectly(joinReq, addr, true);
assert res != null;
@@ -1067,13 +1067,15 @@ class ServerImpl extends TcpDiscoveryImpl {
*
* @param msg Message to send.
* @param addr Address to send message to.
+ * @param join {@code True} if sends initial node join request.
* @return Response read from the recipient or {@code null} if no response is supposed.
* @throws IgniteSpiException If an error occurs.
*/
- @Nullable private Integer sendMessageDirectly(TcpDiscoveryAbstractMessage msg, InetSocketAddress addr)
+ @Nullable private Integer sendMessageDirectly(TcpDiscoveryAbstractMessage msg, InetSocketAddress addr, boolean join)
throws IgniteSpiException {
assert msg != null;
assert addr != null;
+ assert !join || msg instanceof TcpDiscoveryJoinRequestMessage;
Collection<Throwable> errs = null;
@@ -1160,7 +1162,7 @@ class ServerImpl extends TcpDiscoveryImpl {
// Connection has been established, but
// join request may not be unmarshalled on remote host.
// E.g. due to class not found issue.
- joinReqSent = msg instanceof TcpDiscoveryJoinRequestMessage;
+ joinReqSent = join;
int receipt = spi.readReceipt(sock, timeoutHelper.nextTimeoutChunk(ackTimeout0));
@@ -3724,8 +3726,29 @@ class ServerImpl extends TcpDiscoveryImpl {
if (nodeAddedMsg.verified())
msgHist.add(nodeAddedMsg);
}
- else if (sendMessageToRemotes(msg))
- sendMessageAcrossRing(msg);
+ else {
+ if (sendMessageToRemotes(msg)) {
+ TcpDiscoveryNode crd = resolveCoordinator();
+
+ Collection<TcpDiscoveryNode> failedNodes;
+
+ synchronized (mux) {
+ failedNodes = U.arrayList(ServerImpl.this.failedNodes.keySet());
+ }
+
+ TcpDiscoveryNode newNext = ring.nextNode(failedNodes);
+
+ if (crd != null && !crd.equals(newNext)) {
+ Integer res = trySendMessageDirectly(crd, msg);
+
+ if (F.eq(RES_OK, res))
+ return;
+ }
+
+ sendMessageAcrossRing(msg);
+ }
+
+ }
}
/**
@@ -3760,7 +3783,7 @@ class ServerImpl extends TcpDiscoveryImpl {
* @param msg Message.
* @throws IgniteSpiException Last failure if all attempts failed.
*/
- private void trySendMessageDirectly(TcpDiscoveryNode node, TcpDiscoveryAbstractMessage msg)
+ private Integer trySendMessageDirectly(TcpDiscoveryNode node, TcpDiscoveryAbstractMessage msg)
throws IgniteSpiException {
if (node.isClient()) {
TcpDiscoveryNode routerNode = ring.node(node.clientRouterNodeId());
@@ -3781,25 +3804,21 @@ class ServerImpl extends TcpDiscoveryImpl {
worker.addMessage(msg);
- return;
+ return null;
}
- trySendMessageDirectly(routerNode, msg);
-
- return;
+ return trySendMessageDirectly(routerNode, msg);
}
IgniteSpiException ex = null;
for (InetSocketAddress addr : spi.getNodeAddresses(node, U.sameMacs(locNode, node))) {
try {
- sendMessageDirectly(msg, addr);
+ Integer res = sendMessageDirectly(msg, addr, false);
node.lastSuccessfulAddress(addr);
- ex = null;
-
- break;
+ return res;
}
catch (IgniteSpiException e) {
ex = e;
@@ -3808,6 +3827,8 @@ class ServerImpl extends TcpDiscoveryImpl {
if (ex != null)
throw ex;
+
+ return null;
}
/**
[3/4] ignite git commit: ignite-4154
Posted by sb...@apache.org.
ignite-4154
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/fb919d0f
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/fb919d0f
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/fb919d0f
Branch: refs/heads/ignite-4154-opt2
Commit: fb919d0f8d2675bdc6c3c3c35e176bca2e64b341
Parents: 2ee115d
Author: sboikov <sb...@gridgain.com>
Authored: Fri Nov 11 10:52:40 2016 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Fri Nov 11 11:21:33 2016 +0300
----------------------------------------------------------------------
.../discovery/GridDiscoveryManager.java | 4 ++
.../cache/CacheAffinitySharedManager.java | 12 ++++-
.../GridCachePartitionExchangeManager.java | 2 +
.../GridDhtPartitionsExchangeFuture.java | 48 +++++++++++++++++++-
.../ignite/spi/discovery/tcp/ServerImpl.java | 2 +
5 files changed, 64 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/fb919d0f/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java
index 345cfb4..8b945d4 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java
@@ -2742,6 +2742,10 @@ public class GridDiscoveryManager extends GridManagerAdapter<DiscoverySpi> {
this.nodeMap = nodeMap;
}
+ Collection<String> nodeCaches(ClusterNode node) {
+ return null;
+ }
+
/**
* Adds node to map.
*
http://git-wip-us.apache.org/repos/asf/ignite/blob/fb919d0f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheAffinitySharedManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheAffinitySharedManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheAffinitySharedManager.java
index 2890887..27c2bac 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheAffinitySharedManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheAffinitySharedManager.java
@@ -1517,6 +1517,14 @@ public class CacheAffinitySharedManager<K, V> extends GridCacheSharedManagerAdap
return assignment;
}
+ public GridAffinityAssignmentCache cacheAssignment(Integer cacheId) {
+ CacheHolder holder = caches.get(cacheId);
+
+ assert holder != null;
+
+ return holder.affinity();
+ }
+
/**
*
*/
@@ -1730,7 +1738,7 @@ public class CacheAffinitySharedManager<K, V> extends GridCacheSharedManagerAdap
* @param aff Affinity.
* @param initAff Current affinity.
*/
- public CacheHolder2(
+ CacheHolder2(
boolean rebalanceEnabled,
GridCacheSharedContext cctx,
GridAffinityAssignmentCache aff,
@@ -1754,7 +1762,7 @@ public class CacheAffinitySharedManager<K, V> extends GridCacheSharedManagerAdap
/**
*
*/
- class WaitRebalanceInfo {
+ private class WaitRebalanceInfo {
/** */
private final AffinityTopologyVersion topVer;
http://git-wip-us.apache.org/repos/asf/ignite/blob/fb919d0f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java
index 07d1d4c..faafa84 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java
@@ -1105,6 +1105,8 @@ public class GridCachePartitionExchangeManager<K, V> extends GridCacheSharedMana
if (log.isDebugEnabled())
log.debug("Exchange done [topVer=" + topVer + ", fut=" + exchFut + ", err=" + err + ']');
+ log.info("Exchange done [topVer=" + topVer + ", err=" + err + ']');
+
IgniteProductVersion minVer = cctx.localNode().version();
IgniteProductVersion maxVer = cctx.localNode().version();
http://git-wip-us.apache.org/repos/asf/ignite/blob/fb919d0f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
index f391265..f9fc097 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
@@ -92,6 +92,9 @@ public class GridDhtPartitionsExchangeFuture extends GridFutureAdapter<AffinityT
IgniteSystemProperties.getInteger(IgniteSystemProperties.IGNITE_DUMP_PENDING_OBJECTS_THRESHOLD, 10);
/** */
+ private static final boolean SKIP_FIRST_EXCHANGE_MSG = false;
+
+ /** */
private static final long serialVersionUID = 0L;
/** Dummy flag. */
@@ -431,6 +434,8 @@ public class GridDhtPartitionsExchangeFuture extends GridFutureAdapter<AffinityT
assert !dummy && !forcePreload : this;
try {
+ log.info("Start exchange init [topVer=" + topologyVersion() + ']');
+
srvNodes = new ArrayList<>(cctx.discovery().serverNodes(topologyVersion()));
remaining.addAll(F.nodeIds(F.view(srvNodes, F.remoteNodes(cctx.localNodeId()))));
@@ -495,7 +500,10 @@ public class GridDhtPartitionsExchangeFuture extends GridFutureAdapter<AffinityT
default:
assert false;
+
}
+
+ log.info("Finish exchange init [topVer=" + topologyVersion() + ']');
}
catch (IgniteInterruptedCheckedException e) {
onDone(e);
@@ -734,11 +742,45 @@ public class GridDhtPartitionsExchangeFuture extends GridFutureAdapter<AffinityT
}
if (crd.isLocal()) {
+ if (SKIP_FIRST_EXCHANGE_MSG && discoEvt.type() == EVT_NODE_JOINED && !discoEvt.eventNode().isLocal()) {
+ ClusterNode node = discoEvt.eventNode();
+
+ assert !CU.clientNode(node) : discoEvt;
+ assert srvNodes.contains(node);
+
+ boolean rmv = remaining.remove(node.id());
+ assert rmv;
+
+ List<String> caches = new ArrayList<>();
+
+ GridDhtPartitionsSingleMessage msg = new GridDhtPartitionsSingleMessage(exchangeId(),
+ false,
+ null,
+ false);
+
+ for (String cache : caches) {
+ Map<Integer, GridDhtPartitionState> m = new HashMap<>();
+
+ GridDhtPartitionMap2 partMap = new GridDhtPartitionMap2(node.id(), 0, topologyVersion(), m, true);
+
+ msg.addLocalPartitionMap(CU.cacheId(cache), partMap, null);
+ }
+
+ updatePartitionSingleMap(msg);
+ }
+
if (remaining.isEmpty())
onAllReceived(false);
}
- else
- sendPartitions(crd);
+ else {
+ boolean skipSnd = false;
+
+ if (SKIP_FIRST_EXCHANGE_MSG && discoEvt.type() == EVT_NODE_JOINED && discoEvt.eventNode().isLocal())
+ skipSnd = true;
+
+ if (!skipSnd)
+ sendPartitions(crd);
+ }
initDone();
}
@@ -1211,6 +1253,8 @@ public class GridDhtPartitionsExchangeFuture extends GridFutureAdapter<AffinityT
try {
assert crd.isLocal();
+ log.info("Coordinator exchange all received [topVer=" + topologyVersion() + ']');
+
if (!crd.equals(cctx.discovery().serverNodes(topologyVersion()).get(0))) {
for (GridCacheContext cacheCtx : cctx.cacheContexts()) {
if (!cacheCtx.isLocal())
http://git-wip-us.apache.org/repos/asf/ignite/blob/fb919d0f/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java
index 03ed841..b0812fb 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java
@@ -929,6 +929,8 @@ class ServerImpl extends TcpDiscoveryImpl {
if (log.isDebugEnabled())
log.debug("Discovery SPI has been connected to topology with order: " + locNode.internalOrder());
+
+ log.info("Node joined topology: " + locNode);
}
/**
[2/4] ignite git commit: ignite-4154
Posted by sb...@apache.org.
ignite-4154
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/2ee115dc
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/2ee115dc
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/2ee115dc
Branch: refs/heads/ignite-4154-opt2
Commit: 2ee115dc8d2ea3d22e2d188d324a78cca208a741
Parents: 2120ef4
Author: sboikov <sb...@gridgain.com>
Authored: Thu Nov 10 19:25:07 2016 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Thu Nov 10 19:25:07 2016 +0300
----------------------------------------------------------------------
.../ignite/spi/discovery/tcp/ServerImpl.java | 59 +++++++++++++++++---
.../TcpDiscoveryJoinRequestMessage.java | 11 ++++
2 files changed, 61 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/2ee115dc/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java
index e8feb52..03ed841 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java
@@ -136,6 +136,7 @@ import static org.apache.ignite.IgniteSystemProperties.IGNITE_BINARY_MARSHALLER_
import static org.apache.ignite.IgniteSystemProperties.IGNITE_DISCOVERY_CLIENT_RECONNECT_HISTORY_SIZE;
import static org.apache.ignite.IgniteSystemProperties.IGNITE_OPTIMIZED_MARSHALLER_USE_DEFAULT_SUID;
import static org.apache.ignite.IgniteSystemProperties.IGNITE_SERVICES_COMPATIBILITY_MODE;
+import static org.apache.ignite.IgniteSystemProperties.getBoolean;
import static org.apache.ignite.IgniteSystemProperties.getInteger;
import static org.apache.ignite.events.EventType.EVT_NODE_FAILED;
import static org.apache.ignite.events.EventType.EVT_NODE_JOINED;
@@ -170,6 +171,9 @@ class ServerImpl extends TcpDiscoveryImpl {
private static final int ENSURED_MSG_HIST_SIZE = getInteger(IGNITE_DISCOVERY_CLIENT_RECONNECT_HISTORY_SIZE, 512);
/** */
+ private static final boolean SEND_JOIN_REQ_DIRECTLY = getBoolean("SEND_JOIN_REQ_DIRECTLY", false);
+
+ /** */
private static final IgniteProductVersion CUSTOM_MSG_ALLOW_JOINING_FOR_VERIFIED_SINCE =
IgniteProductVersion.fromString("1.5.0");
@@ -3728,21 +3732,58 @@ class ServerImpl extends TcpDiscoveryImpl {
}
else {
if (sendMessageToRemotes(msg)) {
- TcpDiscoveryNode crd = resolveCoordinator();
+ if (SEND_JOIN_REQ_DIRECTLY && !msg.directSendFailed()) {
+ final TcpDiscoveryNode crd = resolveCoordinator();
- Collection<TcpDiscoveryNode> failedNodes;
+ Collection<TcpDiscoveryNode> failedNodes;
- synchronized (mux) {
- failedNodes = U.arrayList(ServerImpl.this.failedNodes.keySet());
- }
+ synchronized (mux) {
+ failedNodes = U.arrayList(ServerImpl.this.failedNodes.keySet());
+ }
- TcpDiscoveryNode newNext = ring.nextNode(failedNodes);
+ TcpDiscoveryNode next = ring.nextNode(failedNodes);
- if (crd != null && !crd.equals(newNext)) {
- Integer res = trySendMessageDirectly(crd, msg);
+ if (crd != null && !crd.equals(next)) {
+ if (log.isDebugEnabled()) {
+ log.debug("Will send join request directly to coordinator " +
+ "[msg=" + msg + ", crd=" + crd + ", next=" + next + ']');
+ }
+
+ utilityPool.submit(new Runnable() {
+ @Override public void run() {
+ IgniteSpiException sndErr = null;
+ Integer res = null;
+
+ try {
+ res = trySendMessageDirectly(crd, msg);
+
+ if (F.eq(RES_OK, res)) {
+ if (log.isDebugEnabled()) {
+ log.debug("Sent join request directly to coordinator " +
+ "[msg=" + msg + ", crd=" + crd + ']');
+ }
+
+ return;
+ }
+ }
+ catch (IgniteSpiException e) {
+ sndErr = e;
+ }
+
+ if (log.isDebugEnabled()) {
+ log.debug("Failed to send join request to coordinator, will process from " +
+ "message worker [msg=" + msg + ", crd=" + crd + ", err=" + sndErr +
+ ", res=" + res + ']');
+ }
+
+ msg.directSendFailed(true);
+
+ msgWorker.addMessage(msg);
+ }
+ });
- if (F.eq(RES_OK, res))
return;
+ }
}
sendMessageAcrossRing(msg);
http://git-wip-us.apache.org/repos/asf/ignite/blob/2ee115dc/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryJoinRequestMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryJoinRequestMessage.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryJoinRequestMessage.java
index 22ffae8..202c29c 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryJoinRequestMessage.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryJoinRequestMessage.java
@@ -36,6 +36,9 @@ public class TcpDiscoveryJoinRequestMessage extends TcpDiscoveryAbstractMessage
/** Discovery data. */
private final Map<Integer, byte[]> discoData;
+ /** */
+ private transient boolean directSndFailed;
+
/**
* Constructor.
*
@@ -79,6 +82,14 @@ public class TcpDiscoveryJoinRequestMessage extends TcpDiscoveryAbstractMessage
setFlag(RESPONDED_FLAG_POS, responded);
}
+ public boolean directSendFailed() {
+ return directSndFailed;
+ }
+
+ public void directSendFailed(boolean directSndFailed) {
+ this.directSndFailed = directSndFailed;
+ }
+
/** {@inheritDoc} */
@Override public boolean equals(Object obj) {
// NOTE!
[4/4] ignite git commit: Merge branch 'ignite-4154' into
ignite-4154-opt2
Posted by sb...@apache.org.
Merge branch 'ignite-4154' into ignite-4154-opt2
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/c4895794
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/c4895794
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/c4895794
Branch: refs/heads/ignite-4154-opt2
Commit: c4895794057e7d82e1a0958c4ff35c6709e79331
Parents: fb919d0 5a0a9f4
Author: sboikov <sb...@gridgain.com>
Authored: Fri Nov 11 11:21:45 2016 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Fri Nov 11 11:21:45 2016 +0300
----------------------------------------------------------------------
.../IgniteNoCustomEventsOnNodeStart.java | 7 +
.../junits/common/GridCommonAbstractTest.java | 14 ++
.../cache/IgniteCacheOffheapEvictQueryTest.java | 7 +
...lientQueryReplicatedNodeRestartSelfTest.java | 7 +
...butedQueryStopOnCancelOrTimeoutSelfTest.java | 7 +
modules/platforms/cpp/DEVNOTES.txt | 12 ++
.../platforms/cpp/odbc-test/include/test_type.h | 42 ++++--
.../cpp/odbc-test/src/queries_test.cpp | 139 +++++++++++++++++--
.../cpp/odbc-test/src/sql_outer_join_test.cpp | 2 +-
modules/platforms/cpp/odbc/README.txt | 23 +--
.../cpp/odbc/install/ignite-odbc-amd64.wxs | 114 +++++++++++++++
.../cpp/odbc/install/ignite-odbc-x86.wxs | 114 +++++++++++++++
.../odbc/src/app/application_data_buffer.cpp | 34 ++++-
.../src/test/config/incorrect-store-cache.xml | 2 +
.../src/test/config/jdbc-pojo-store-builtin.xml | 3 +
.../src/test/config/jdbc-pojo-store-obj.xml | 3 +
modules/spring/src/test/config/node.xml | 2 +
modules/spring/src/test/config/node1.xml | 2 +
.../test/config/pojo-incorrect-store-cache.xml | 2 +
modules/spring/src/test/config/store-cache.xml | 2 +
modules/spring/src/test/config/store-cache1.xml | 2 +
pom.xml | 8 ++
22 files changed, 510 insertions(+), 38 deletions(-)
----------------------------------------------------------------------