You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by se...@apache.org on 2015/07/22 08:05:09 UTC
[1/9] incubator-ignite git commit: # ignite-1090 finishTxs() should
wait for rolling back transactions
Repository: incubator-ignite
Updated Branches:
refs/heads/ignite-1015 1486aea6c -> 52025271f
# ignite-1090 finishTxs() should wait for rolling back transactions
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/055d7865
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/055d7865
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/055d7865
Branch: refs/heads/ignite-1015
Commit: 055d78653f34c21c79f41d17b07f88c3da832b9a
Parents: 73a2b14
Author: sboikov <se...@inria.fr>
Authored: Wed Jul 22 00:05:34 2015 +0300
Committer: sboikov <se...@inria.fr>
Committed: Wed Jul 22 00:05:34 2015 +0300
----------------------------------------------------------------------
.../processors/cache/GridCacheMvccManager.java | 14 +++++++++
.../distributed/dht/GridDhtTxFinishFuture.java | 13 +++++++-
.../GridDhtPartitionsExchangeFuture.java | 10 +++++--
.../near/GridNearOptimisticTxPrepareFuture.java | 4 ++-
.../GridNearPessimisticTxPrepareFuture.java | 2 +-
.../near/GridNearTxFinishFuture.java | 17 ++++++++++-
.../cache/transactions/IgniteTxManager.java | 5 ++--
.../cache/GridCachePutAllFailoverSelfTest.java | 3 ++
.../GridCacheAbstractNodeRestartSelfTest.java | 9 ++++++
...NearDisabledOptimisticTxNodeRestartTest.java | 31 ++++++++++++++++++++
.../GridCachePartitionedFailoverSelfTest.java | 5 ----
...ePartitionedOptimisticTxNodeRestartTest.java | 12 +++++++-
.../IgniteCacheFailoverTestSuite2.java | 4 +++
.../testsuites/IgniteCacheRestartTestSuite.java | 5 ++--
14 files changed, 116 insertions(+), 18 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/055d7865/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMvccManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMvccManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMvccManager.java
index bfb23e8..a0d9051 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMvccManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMvccManager.java
@@ -603,6 +603,20 @@ public class GridCacheMvccManager extends GridCacheSharedManagerAdapter {
}
/**
+ * @return Locked keys.
+ */
+ public Collection<IgniteTxKey> lockedKeys() {
+ return locked.keySet();
+ }
+
+ /**
+ * @return Locked near keys.
+ */
+ public Collection<IgniteTxKey> nearLockedKeys() {
+ return nearLocked.keySet();
+ }
+
+ /**
* This method has poor performance, so use with care. It is currently only used by {@code DGC}.
*
* @return Remote candidates.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/055d7865/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishFuture.java
index 7fd79e5..9aa9c17 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishFuture.java
@@ -466,7 +466,18 @@ public final class GridDhtTxFinishFuture<K, V> extends GridCompoundIdentityFutur
/** {@inheritDoc} */
@Override public String toString() {
- return S.toString(GridDhtTxFinishFuture.class, this, super.toString());
+ Collection<String> futs = F.viewReadOnly(futures(), new C1<IgniteInternalFuture<?>, String>() {
+ @SuppressWarnings("unchecked")
+ @Override public String apply(IgniteInternalFuture<?> f) {
+ return "[node=" + ((MiniFuture)f).node().id() +
+ ", loc=" + ((MiniFuture)f).node().isLocal() +
+ ", done=" + f.isDone() + "]";
+ }
+ });
+
+ return S.toString(GridDhtTxFinishFuture.class, this,
+ "innerFuts", futs,
+ "super", super.toString());
}
/**
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/055d7865/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 b3f19f6..3664220 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
@@ -741,13 +741,19 @@ public class GridDhtPartitionsExchangeFuture extends GridFutureAdapter<AffinityT
U.warn(log, "Failed to wait for locks release future. " +
"Dumping pending objects that might be the cause: " + cctx.localNodeId());
- U.warn(log, "Locked entries:");
+ U.warn(log, "Locked keys:");
+
+ for (IgniteTxKey key : cctx.mvcc().lockedKeys())
+ U.warn(log, "Locked key: " + key);
+
+ for (IgniteTxKey key : cctx.mvcc().nearLockedKeys())
+ U.warn(log, "Locked near key: " + key);
Map<IgniteTxKey, Collection<GridCacheMvccCandidate>> locks =
cctx.mvcc().unfinishedLocks(exchId.topologyVersion());
for (Map.Entry<IgniteTxKey, Collection<GridCacheMvccCandidate>> e : locks.entrySet())
- U.warn(log, "Locked entry [key=" + e.getKey() + ", mvcc=" + e.getValue() + ']');
+ U.warn(log, "Awaited locked entry [key=" + e.getKey() + ", mvcc=" + e.getValue() + ']');
}
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/055d7865/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOptimisticTxPrepareFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOptimisticTxPrepareFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOptimisticTxPrepareFuture.java
index 44b7997..234121b 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOptimisticTxPrepareFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOptimisticTxPrepareFuture.java
@@ -50,6 +50,7 @@ import static org.apache.ignite.transactions.TransactionState.*;
public class GridNearOptimisticTxPrepareFuture extends GridNearTxPrepareFutureAdapter
implements GridCacheMvccFuture<IgniteInternalTx> {
/** */
+ @GridToStringInclude
private Collection<IgniteTxKey> lockKeys = new GridConcurrentHashSet<>();
/**
@@ -662,7 +663,8 @@ public class GridNearOptimisticTxPrepareFuture extends GridNearTxPrepareFutureAd
});
return S.toString(GridNearOptimisticTxPrepareFuture.class, this,
- "futs", futs,
+ "innerFuts", futs,
+ "tx", tx,
"super", super.toString());
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/055d7865/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearPessimisticTxPrepareFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearPessimisticTxPrepareFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearPessimisticTxPrepareFuture.java
index 7006114..f51b4b8 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearPessimisticTxPrepareFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearPessimisticTxPrepareFuture.java
@@ -265,7 +265,7 @@ public class GridNearPessimisticTxPrepareFuture extends GridNearTxPrepareFutureA
});
return S.toString(GridNearPessimisticTxPrepareFuture.class, this,
- "futs", futs,
+ "innerFuts", futs,
"super", super.toString());
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/055d7865/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java
index 3052810..6e1195f 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java
@@ -403,7 +403,22 @@ public final class GridNearTxFinishFuture<K, V> extends GridCompoundIdentityFutu
/** {@inheritDoc} */
@Override public String toString() {
- return S.toString(GridNearTxFinishFuture.class, this, super.toString());
+ Collection<String> futs = F.viewReadOnly(futures(), new C1<IgniteInternalFuture<?>, String>() {
+ @SuppressWarnings("unchecked")
+ @Override public String apply(IgniteInternalFuture<?> f) {
+ if (isMini(f)) {
+ return "[node=" + ((MiniFuture) f).node().id() +
+ ", loc=" + ((MiniFuture) f).node().isLocal() +
+ ", done=" + f.isDone() + "]";
+ }
+ else
+ return "[loc=true, done=" + f.isDone() + "]";
+ }
+ });
+
+ return S.toString(GridNearTxFinishFuture.class, this,
+ "innerFuts", futs,
+ "super", super.toString());
}
/**
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/055d7865/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
index ee634ab..630330e 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
@@ -538,10 +538,9 @@ public class IgniteTxManager extends GridCacheSharedManagerAdapter {
TransactionState state = tx.state();
AffinityTopologyVersion txTopVer = tx.topologyVersion();
- if ((state == PREPARING || state == PREPARED || state == COMMITTING)
- && txTopVer.compareTo(AffinityTopologyVersion.ZERO) > 0 && txTopVer.compareTo(topVer) < 0) {
+ if ((state != ACTIVE && state != COMMITTED && state != ROLLED_BACK && state != UNKNOWN)
+ && txTopVer.compareTo(AffinityTopologyVersion.ZERO) > 0 && txTopVer.compareTo(topVer) < 0)
res.add(tx.finishFuture());
- }
}
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/055d7865/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCachePutAllFailoverSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCachePutAllFailoverSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCachePutAllFailoverSelfTest.java
index fc9e17b..dc6e71e 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCachePutAllFailoverSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCachePutAllFailoverSelfTest.java
@@ -29,6 +29,7 @@ import org.apache.ignite.internal.util.typedef.internal.*;
import org.apache.ignite.lang.*;
import org.apache.ignite.resources.*;
import org.apache.ignite.spi.*;
+import org.apache.ignite.spi.communication.tcp.*;
import org.apache.ignite.spi.discovery.tcp.*;
import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
@@ -609,6 +610,8 @@ public class GridCachePutAllFailoverSelfTest extends GridCommonAbstractTest {
@Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
IgniteConfiguration cfg = super.getConfiguration(gridName);
+ ((TcpCommunicationSpi)cfg.getCommunicationSpi()).setSharedMemoryPort(-1);
+
cfg.setPeerClassLoadingEnabled(false);
cfg.setDeploymentMode(DeploymentMode.CONTINUOUS);
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/055d7865/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheAbstractNodeRestartSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheAbstractNodeRestartSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheAbstractNodeRestartSelfTest.java
index ec1a12c..4cb2c96 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheAbstractNodeRestartSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheAbstractNodeRestartSelfTest.java
@@ -20,6 +20,7 @@ package org.apache.ignite.internal.processors.cache.distributed;
import org.apache.ignite.*;
import org.apache.ignite.cache.*;
import org.apache.ignite.configuration.*;
+import org.apache.ignite.spi.communication.tcp.*;
import org.apache.ignite.spi.discovery.tcp.*;
import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
@@ -100,6 +101,8 @@ public abstract class GridCacheAbstractNodeRestartSelfTest extends GridCommonAbs
@Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
IgniteConfiguration c = super.getConfiguration(gridName);
+ ((TcpCommunicationSpi)c.getCommunicationSpi()).setSharedMemoryPort(-1);
+
// Discovery.
TcpDiscoverySpi disco = new TcpDiscoverySpi();
@@ -507,6 +510,8 @@ public abstract class GridCacheAbstractNodeRestartSelfTest extends GridCommonAbs
info("Starting put thread: " + gridIdx);
+ Thread.currentThread().setName("put-worker-" + grid(gridIdx).name());
+
IgniteCache<Integer, String> cache = grid(gridIdx).cache(CACHE_NAME);
while (System.currentTimeMillis() < endTime && err.get() == null) {
@@ -628,6 +633,8 @@ public abstract class GridCacheAbstractNodeRestartSelfTest extends GridCommonAbs
Ignite ignite = grid(gridIdx);
+ Thread.currentThread().setName("put-worker-" + ignite.name());
+
UUID locNodeId = ignite.cluster().localNode().id();
IgniteCache<Integer, String> cache = ignite.cache(CACHE_NAME);
@@ -784,6 +791,8 @@ public abstract class GridCacheAbstractNodeRestartSelfTest extends GridCommonAbs
Ignite ignite = grid(gridIdx);
+ Thread.currentThread().setName("put-worker-" + ignite.name());
+
UUID locNodeId = ignite.cluster().localNode().id();
IgniteCache<Integer, String> cache = ignite.cache(CACHE_NAME);
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/055d7865/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCachePartitionedNearDisabledOptimisticTxNodeRestartTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCachePartitionedNearDisabledOptimisticTxNodeRestartTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCachePartitionedNearDisabledOptimisticTxNodeRestartTest.java
new file mode 100644
index 0000000..cacc63e
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCachePartitionedNearDisabledOptimisticTxNodeRestartTest.java
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.cache.distributed.dht;
+
+import org.apache.ignite.internal.processors.cache.distributed.near.*;
+
+/**
+ *
+ */
+public class GridCachePartitionedNearDisabledOptimisticTxNodeRestartTest
+ extends GridCachePartitionedOptimisticTxNodeRestartTest {
+ /** {@inheritDoc} */
+ @Override protected boolean nearEnabled() {
+ return false;
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/055d7865/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedFailoverSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedFailoverSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedFailoverSelfTest.java
index 64e8f81..553d748 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedFailoverSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedFailoverSelfTest.java
@@ -27,11 +27,6 @@ import static org.apache.ignite.cache.CacheMode.*;
*/
public class GridCachePartitionedFailoverSelfTest extends GridCacheAbstractFailoverTxSelfTest {
/** {@inheritDoc} */
- @Override protected void beforeTest() throws Exception {
- fail("https://issues.apache.org/jira/browse/IGNITE-1092");
- }
-
- /** {@inheritDoc} */
@Override protected CacheMode cacheMode() {
return PARTITIONED;
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/055d7865/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedOptimisticTxNodeRestartTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedOptimisticTxNodeRestartTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedOptimisticTxNodeRestartTest.java
index 2d8f431..823ad33 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedOptimisticTxNodeRestartTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedOptimisticTxNodeRestartTest.java
@@ -32,7 +32,8 @@ import static org.apache.ignite.transactions.TransactionConcurrency.*;
public class GridCachePartitionedOptimisticTxNodeRestartTest extends GridCacheAbstractNodeRestartSelfTest {
/** {@inheritDoc} */
@Override protected void beforeTest() throws Exception {
- fail("https://issues.apache.org/jira/browse/IGNITE-1090");
+ if (nearEnabled())
+ fail("https://issues.apache.org/jira/browse/IGNITE-1090");
}
/** {@inheritDoc} */
@@ -52,11 +53,20 @@ public class GridCachePartitionedOptimisticTxNodeRestartTest extends GridCacheAb
cc.setAffinity(new RendezvousAffinityFunction(false, partitions));
cc.setBackups(backups);
+ cc.setNearConfiguration(nearEnabled() ? new NearCacheConfiguration() : null);
+
c.setCacheConfiguration(cc);
return c;
}
+ /**
+ * @return {@code True} if near cache enabled.
+ */
+ protected boolean nearEnabled() {
+ return true;
+ }
+
/** {@inheritDoc} */
@Override protected TransactionConcurrency txConcurrency() {
return OPTIMISTIC;
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/055d7865/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheFailoverTestSuite2.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheFailoverTestSuite2.java b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheFailoverTestSuite2.java
index 3bb4e97..97c558a 100644
--- a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheFailoverTestSuite2.java
+++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheFailoverTestSuite2.java
@@ -18,6 +18,7 @@
package org.apache.ignite.testsuites;
import junit.framework.*;
+import org.apache.ignite.internal.processors.cache.*;
import org.apache.ignite.internal.processors.cache.distributed.dht.*;
import org.apache.ignite.internal.processors.cache.distributed.dht.atomic.*;
import org.apache.ignite.internal.processors.cache.distributed.near.*;
@@ -34,6 +35,9 @@ public class IgniteCacheFailoverTestSuite2 {
public static TestSuite suite() throws Exception {
TestSuite suite = new TestSuite("Cache Failover Test Suite2");
+ suite.addTestSuite(GridCachePartitionedTxSalvageSelfTest.class);
+ suite.addTestSuite(CacheGetFromJobTest.class);
+
suite.addTestSuite(GridCacheAtomicFailoverSelfTest.class);
suite.addTestSuite(GridCacheAtomicPrimaryWriteOrderFailoverSelfTest.class);
suite.addTestSuite(GridCacheAtomicReplicatedFailoverSelfTest.class);
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/055d7865/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheRestartTestSuite.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheRestartTestSuite.java b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheRestartTestSuite.java
index f0649f5..29c981e 100644
--- a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheRestartTestSuite.java
+++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheRestartTestSuite.java
@@ -20,6 +20,7 @@ package org.apache.ignite.testsuites;
import junit.framework.*;
import org.apache.ignite.internal.processors.cache.*;
import org.apache.ignite.internal.processors.cache.distributed.*;
+import org.apache.ignite.internal.processors.cache.distributed.dht.*;
import org.apache.ignite.internal.processors.cache.distributed.near.*;
import org.apache.ignite.internal.processors.cache.distributed.replicated.*;
@@ -34,11 +35,10 @@ public class IgniteCacheRestartTestSuite extends TestSuite {
public static TestSuite suite() throws Exception {
TestSuite suite = new TestSuite("Cache Restart Test Suite");
- suite.addTestSuite(GridCachePartitionedTxSalvageSelfTest.class);
-
suite.addTestSuite(GridCachePartitionedNodeRestartTest.class);
suite.addTestSuite(GridCachePartitionedOptimisticTxNodeRestartTest.class);
suite.addTestSuite(GridCacheReplicatedNodeRestartSelfTest.class);
+ suite.addTestSuite(GridCachePartitionedNearDisabledOptimisticTxNodeRestartTest.class);
suite.addTestSuite(IgniteCacheAtomicNodeRestartTest.class);
suite.addTestSuite(IgniteCacheAtomicReplicatedNodeRestartSelfTest.class);
@@ -46,7 +46,6 @@ public class IgniteCacheRestartTestSuite extends TestSuite {
suite.addTestSuite(IgniteCacheAtomicPutAllFailoverSelfTest.class);
suite.addTestSuite(IgniteCachePutAllRestartTest.class);
suite.addTestSuite(GridCachePutAllFailoverSelfTest.class);
- suite.addTestSuite(CacheGetFromJobTest.class);
return suite;
}
[8/9] incubator-ignite git commit: ignite-1015 - fixes
Posted by se...@apache.org.
ignite-1015 - fixes
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/301f573d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/301f573d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/301f573d
Branch: refs/heads/ignite-1015
Commit: 301f573dd05788eb6e154c16ad2403700a5b1e9e
Parents: 0871a7a
Author: S.Vladykin <sv...@gridgain.com>
Authored: Wed Jul 22 09:04:41 2015 +0300
Committer: S.Vladykin <sv...@gridgain.com>
Committed: Wed Jul 22 09:04:41 2015 +0300
----------------------------------------------------------------------
.../query/h2/sql/GridSqlQuerySplitter.java | 56 ++++++++++++++++++--
.../cache/GridCacheCrossCacheQuerySelfTest.java | 5 +-
2 files changed, 55 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/301f573d/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlQuerySplitter.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlQuerySplitter.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlQuerySplitter.java
index 536f72d..056aafe 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlQuerySplitter.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlQuerySplitter.java
@@ -395,15 +395,17 @@ public class GridSqlQuerySplitter {
el = alias.child();
}
- if (!collocated && el instanceof GridSqlAggregateFunction) {
+ if (!collocated && hasAggregates(el)) {
aggregateFound = true;
if (alias == null)
alias = alias(columnName(idx), el);
- splitAggregate(alias, 0, mapSelect, idx, true);
+ // We can update original alias here as well since it will be dropped from mapSelect.
+ splitAggregates(alias, 0, mapSelect, idx, true);
- rdcSelect[idx] = alias;
+ if (idx < rdcSelect.length)
+ rdcSelect[idx] = alias;
}
else {
String mapColAlias = columnName(idx);
@@ -417,7 +419,7 @@ public class GridSqlQuerySplitter {
// Always wrap map column into generated alias.
mapSelect.set(idx, alias(mapColAlias, el)); // `el` is known not to be an alias.
- if (idx < rdcSelect.length) { // SELECT __C0 AS orginal_alias
+ if (idx < rdcSelect.length) { // SELECT __C0 AS original_alias
GridSqlElement rdcEl = column(mapColAlias);
GridSqlType type = el.expressionResultType();
@@ -436,6 +438,52 @@ public class GridSqlQuerySplitter {
}
/**
+ * @param el Expression.
+ * @return {@code true} If expression contains aggregates.
+ */
+ private static boolean hasAggregates(GridSqlElement el) {
+ if (el instanceof GridSqlAggregateFunction)
+ return true;
+
+ for (GridSqlElement child : el) {
+ if (hasAggregates(child))
+ return true;
+ }
+
+ return false;
+ }
+
+ /**
+ * @param parentExpr Parent expression.
+ * @param childIdx Child index to try to split.
+ * @param mapSelect List of expressions in map SELECT clause.
+ * @param exprIdx Index of the original expression in map SELECT clause.
+ * @param first If the first aggregate is already found in this expression.
+ * @return {@code true} If the first aggregate is already found.
+ */
+ private static boolean splitAggregates(
+ final GridSqlElement parentExpr,
+ final int childIdx,
+ final List<GridSqlElement> mapSelect,
+ final int exprIdx,
+ boolean first) {
+ GridSqlElement el = parentExpr.child(childIdx);
+
+ if (el instanceof GridSqlAggregateFunction) {
+ splitAggregate(parentExpr, childIdx, mapSelect, exprIdx, first);
+
+ return true;
+ }
+
+ for (int i = 0; i < el.size(); i++) {
+ if (splitAggregates(el, i, mapSelect, exprIdx, first))
+ first = false;
+ }
+
+ return !first;
+ }
+
+ /**
* @param parentExpr Parent expression.
* @param aggIdx Index of the aggregate to split in this expression.
* @param mapSelect List of expressions in map SELECT clause.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/301f573d/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheCrossCacheQuerySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheCrossCacheQuerySelfTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheCrossCacheQuerySelfTest.java
index f94d695..a393991 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheCrossCacheQuerySelfTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheCrossCacheQuerySelfTest.java
@@ -145,12 +145,12 @@ public class GridCacheCrossCacheQuerySelfTest extends GridCommonAbstractTest {
assertEquals(set0, set1);
- X.println("___ GROUP BY AVG MIN MAX SUM COUNT(*) COUNT(x)");
+ X.println("___ GROUP BY AVG MIN MAX SUM COUNT(*) COUNT(x) (MAX - MIN) * 2 as");
Set<String> names = new HashSet<>();
qry = new SqlFieldsQuery("select p.name, avg(f.price), min(f.price), max(f.price), sum(f.price), count(*), " +
- "count(nullif(f.price, 5)) " +
+ "count(nullif(f.price, 5)), (max(f.price) - min(f.price)) * 3 as nn " +
"from FactPurchase f, \"replicated\".DimProduct p " +
"where p.id = f.productId " +
"group by f.productId, p.name");
@@ -160,6 +160,7 @@ public class GridCacheCrossCacheQuerySelfTest extends GridCommonAbstractTest {
assertTrue(names.add((String)o.get(0)));
assertEquals(i(o, 4), i(o, 2) + i(o, 3));
+ assertEquals(i(o, 7), (i(o, 3) - i(o, 2)) * 3);
}
X.println("___ SUM HAVING");
[3/9] incubator-ignite git commit: ignite-1015 - HAVING alias fix
Posted by se...@apache.org.
ignite-1015 - HAVING alias fix
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/cbdc6143
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/cbdc6143
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/cbdc6143
Branch: refs/heads/ignite-1015
Commit: cbdc6143a7df7a7c39c11ef073c64de300414360
Parents: 1486aea
Author: S.Vladykin <sv...@gridgain.com>
Authored: Wed Jul 22 06:09:33 2015 +0300
Committer: S.Vladykin <sv...@gridgain.com>
Committed: Wed Jul 22 06:09:33 2015 +0300
----------------------------------------------------------------------
.../processors/query/h2/sql/GridSqlSelect.java | 25 +++++++++++++-------
1 file changed, 17 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/cbdc6143/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlSelect.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlSelect.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlSelect.java
index 84b0031..08304aa 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlSelect.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlSelect.java
@@ -84,19 +84,17 @@ public class GridSqlSelect extends GridSqlQuery {
buff.resetCount();
for (int grpCol : grpCols) {
- GridSqlElement expression = allExprs.get(grpCol);
-
buff.appendExceptFirst(", ");
- if (expression instanceof GridSqlAlias)
- buff.append(StringUtils.unEnclose((expression.child().getSQL())));
- else
- buff.append(StringUtils.unEnclose(expression.getSQL()));
+ addAlias(buff, allExprs.get(grpCol));
}
}
- if (havingCol >= 0)
- buff.append("\nHAVING ").append(StringUtils.unEnclose(allExprs.get(havingCol).getSQL()));
+ if (havingCol >= 0) {
+ buff.append("\nHAVING ");
+
+ addAlias(buff, allExprs.get(havingCol));
+ }
getSortLimitSQL(buff);
@@ -104,6 +102,17 @@ public class GridSqlSelect extends GridSqlQuery {
}
/**
+ * @param buff Statement builder.
+ * @param expression Alias expression.
+ */
+ private static void addAlias(StatementBuilder buff, GridSqlElement expression) {
+ if (expression instanceof GridSqlAlias)
+ expression = expression.child();
+
+ buff.append(StringUtils.unEnclose(expression.getSQL()));
+ }
+
+ /**
* @param visibleOnly If only visible expressions needed.
* @return Select phrase expressions.
*/
[5/9] incubator-ignite git commit: ignite-1015 - lists
Posted by se...@apache.org.
ignite-1015 - lists
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/12af70bf
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/12af70bf
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/12af70bf
Branch: refs/heads/ignite-1015
Commit: 12af70bf57bdf77acf376a5baec9cbde6083565a
Parents: 0bb26bb
Author: S.Vladykin <sv...@gridgain.com>
Authored: Wed Jul 22 07:27:25 2015 +0300
Committer: S.Vladykin <sv...@gridgain.com>
Committed: Wed Jul 22 07:27:25 2015 +0300
----------------------------------------------------------------------
.../processors/query/h2/sql/GridSqlAlias.java | 16 +++++++++++++++-
.../processors/query/h2/sql/GridSqlColumn.java | 4 ++++
.../processors/query/h2/sql/GridSqlConst.java | 4 ++++
.../processors/query/h2/sql/GridSqlElement.java | 16 ++++++++++++++--
.../processors/query/h2/sql/GridSqlFunction.java | 2 ++
.../processors/query/h2/sql/GridSqlJoin.java | 4 ++++
.../processors/query/h2/sql/GridSqlOperation.java | 7 +++++++
.../query/h2/sql/GridSqlOperationType.java | 2 ++
.../processors/query/h2/sql/GridSqlParameter.java | 4 ++++
.../processors/query/h2/sql/GridSqlPlaceholder.java | 4 ++++
.../query/h2/sql/GridSqlQuerySplitter.java | 2 +-
.../processors/query/h2/sql/GridSqlSubquery.java | 4 ++++
.../processors/query/h2/sql/GridSqlTable.java | 4 ++++
13 files changed, 69 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12af70bf/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlAlias.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlAlias.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlAlias.java
index 464a135..5e827a0 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlAlias.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlAlias.java
@@ -19,6 +19,8 @@ package org.apache.ignite.internal.processors.query.h2.sql;
import org.h2.command.*;
+import java.util.*;
+
/**
* Alias for column or table.
*/
@@ -43,12 +45,24 @@ public class GridSqlAlias extends GridSqlElement {
* @param useAs Use 'AS' keyword.
*/
public GridSqlAlias(String alias, GridSqlElement expr, boolean useAs) {
- addChild(expr);
+ super(list(expr));
this.useAs = useAs;
this.alias = alias;
}
+ /**
+ * @param el Element.
+ * @return List.
+ */
+ private static List<GridSqlElement> list(GridSqlElement el) {
+ List<GridSqlElement> res = new ArrayList<>(1);
+
+ res.add(el);
+
+ return res;
+ }
+
/** {@inheritDoc} */
@Override public String getSQL() {
return child().getSQL() + (useAs ? " AS " : " ") + Parser.quoteIdentifier(alias);
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12af70bf/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlColumn.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlColumn.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlColumn.java
index 2353b48..d3d7d1d 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlColumn.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlColumn.java
@@ -17,6 +17,8 @@
package org.apache.ignite.internal.processors.query.h2.sql;
+import java.util.*;
+
/**
* Column.
*/
@@ -36,6 +38,8 @@ public class GridSqlColumn extends GridSqlElement implements GridSqlValue {
* @param sqlText Text.
*/
public GridSqlColumn(GridSqlElement from, String name, String sqlText) {
+ super(Collections.<GridSqlElement>emptyList());
+
assert sqlText != null;
expressionInFrom = from;
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12af70bf/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlConst.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlConst.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlConst.java
index f416243..124bc94 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlConst.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlConst.java
@@ -19,6 +19,8 @@ package org.apache.ignite.internal.processors.query.h2.sql;
import org.h2.value.*;
+import java.util.*;
+
/**
* Constant value.
*/
@@ -30,6 +32,8 @@ public class GridSqlConst extends GridSqlElement implements GridSqlValue {
* @param val Value.
*/
public GridSqlConst(Value val) {
+ super(Collections.<GridSqlElement>emptyList());
+
this.val = val;
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12af70bf/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlElement.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlElement.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlElement.java
index 9a6b410..7ad8d5a 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlElement.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlElement.java
@@ -24,12 +24,21 @@ import java.util.*;
*/
public abstract class GridSqlElement implements Iterable<GridSqlElement> {
/** */
- protected List<GridSqlElement> children = new ArrayList<>();
+ protected List<GridSqlElement> children;
/** */
private GridSqlType expressionResultType;
/**
+ * @param children Initial child list.
+ */
+ protected GridSqlElement(List<GridSqlElement> children) {
+ assert children != null;
+
+ this.children = children;
+ }
+
+ /**
* @return Optional expression result type (if this is an expression and result type is known).
*/
public GridSqlType expressionResultType() {
@@ -67,7 +76,7 @@ public abstract class GridSqlElement implements Iterable<GridSqlElement> {
* @return First child.
*/
public GridSqlElement child() {
- return children.get(0);
+ return child(0);
}
/**
@@ -83,6 +92,9 @@ public abstract class GridSqlElement implements Iterable<GridSqlElement> {
* @param child New child.
*/
public void child(int idx, GridSqlElement child) {
+ if (child == null)
+ throw new NullPointerException();
+
children.set(idx, child);
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12af70bf/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlFunction.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlFunction.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlFunction.java
index 9479538..c41bbb7 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlFunction.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlFunction.java
@@ -66,6 +66,8 @@ public class GridSqlFunction extends GridSqlElement {
* @param name Name.
*/
private GridSqlFunction(String schema, GridSqlFunctionType type, String name) {
+ super(new ArrayList<GridSqlElement>());
+
if (name == null)
throw new NullPointerException();
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12af70bf/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlJoin.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlJoin.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlJoin.java
index 69ebdbf..ddd9ba7 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlJoin.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlJoin.java
@@ -20,6 +20,8 @@ package org.apache.ignite.internal.processors.query.h2.sql;
import org.h2.util.*;
import org.jetbrains.annotations.*;
+import java.util.*;
+
/**
* Join of two tables or subqueries.
*/
@@ -34,6 +36,8 @@ public class GridSqlJoin extends GridSqlElement {
* @param on Join condition.
*/
public GridSqlJoin(GridSqlElement leftTbl, GridSqlElement rightTbl, boolean leftOuter, @Nullable GridSqlElement on) {
+ super(new ArrayList<GridSqlElement>(on == null ? 2 : 3));
+
addChild(leftTbl);
addChild(rightTbl);
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12af70bf/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlOperation.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlOperation.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlOperation.java
index 6100618..395754b 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlOperation.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlOperation.java
@@ -17,6 +17,10 @@
package org.apache.ignite.internal.processors.query.h2.sql;
+import java.util.*;
+
+import static org.apache.ignite.internal.processors.query.h2.sql.GridSqlOperationType.*;
+
/**
* Unary or binary operation.
*/
@@ -28,6 +32,9 @@ public class GridSqlOperation extends GridSqlElement {
* @param opType Operation type.
*/
public GridSqlOperation(GridSqlOperationType opType) {
+ super(opType == IN ? new ArrayList<GridSqlElement>() :
+ new ArrayList<GridSqlElement>(opType.childrenCount()));
+
this.opType = opType;
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12af70bf/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlOperationType.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlOperationType.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlOperationType.java
index a071e73..cfe7576 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlOperationType.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlOperationType.java
@@ -70,6 +70,8 @@ public enum GridSqlOperationType {
* @param sqlGenerator sqlGenerator.
*/
GridSqlOperationType(int childrenCnt, SqlGenerator sqlGenerator) {
+ assert childrenCnt > 0 || sqlGenerator instanceof ConditionInSqlGenerator : childrenCnt;
+
this.childrenCnt = childrenCnt;
this.sqlGenerator = sqlGenerator;
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12af70bf/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlParameter.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlParameter.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlParameter.java
index 1332c97..fc71659 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlParameter.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlParameter.java
@@ -17,6 +17,8 @@
package org.apache.ignite.internal.processors.query.h2.sql;
+import java.util.*;
+
/**
* Query parameter.
*/
@@ -28,6 +30,8 @@ public class GridSqlParameter extends GridSqlElement implements GridSqlValue {
* @param idx Index.
*/
public GridSqlParameter(int idx) {
+ super(Collections.<GridSqlElement>emptyList());
+
this.idx = idx;
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12af70bf/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlPlaceholder.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlPlaceholder.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlPlaceholder.java
index 02fa7d7..6b94f20 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlPlaceholder.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlPlaceholder.java
@@ -17,6 +17,8 @@
package org.apache.ignite.internal.processors.query.h2.sql;
+import java.util.*;
+
/**
* Placeholder.
*/
@@ -31,6 +33,8 @@ public class GridSqlPlaceholder extends GridSqlElement {
* @param sql SQL.
*/
public GridSqlPlaceholder(String sql) {
+ super(Collections.<GridSqlElement>emptyList());
+
this.sql = sql;
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12af70bf/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlQuerySplitter.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlQuerySplitter.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlQuerySplitter.java
index b1dc0dc..6c1886b 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlQuerySplitter.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlQuerySplitter.java
@@ -285,7 +285,7 @@ public class GridSqlQuerySplitter {
if (el instanceof GridSqlAlias)
el = el.child();
- if (el instanceof GridSqlOperation || el instanceof GridSqlFunction || el instanceof GridSqlAggregateFunction) {
+ if (el instanceof GridSqlOperation || el instanceof GridSqlFunction) {
for (GridSqlElement child : el)
collectAllSpacesInSubqueries(child, spaces);
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12af70bf/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlSubquery.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlSubquery.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlSubquery.java
index 4b60969..04314c7 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlSubquery.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlSubquery.java
@@ -17,6 +17,8 @@
package org.apache.ignite.internal.processors.query.h2.sql;
+import java.util.*;
+
/**
* Subquery.
*/
@@ -28,6 +30,8 @@ public class GridSqlSubquery extends GridSqlElement {
* @param select Select.
*/
public GridSqlSubquery(GridSqlQuery select) {
+ super(Collections.<GridSqlElement>emptyList());
+
this.select = select;
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12af70bf/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlTable.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlTable.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlTable.java
index b51845a..b76f962 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlTable.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlTable.java
@@ -20,6 +20,8 @@ package org.apache.ignite.internal.processors.query.h2.sql;
import org.h2.command.*;
import org.jetbrains.annotations.*;
+import java.util.*;
+
/**
* Table with optional schema.
*/
@@ -35,6 +37,8 @@ public class GridSqlTable extends GridSqlElement {
* @param tblName Table name.
*/
public GridSqlTable(@Nullable String schema, String tblName) {
+ super(Collections.<GridSqlElement>emptyList());
+
this.schema = schema;
this.tblName = tblName;
}
[7/9] incubator-ignite git commit: ignite-1015 - refactor
Posted by se...@apache.org.
ignite-1015 - refactor
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/0871a7a8
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/0871a7a8
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/0871a7a8
Branch: refs/heads/ignite-1015
Commit: 0871a7a8cacdfde1dab817d782dd6de3e7a512b4
Parents: 38d2a93
Author: S.Vladykin <sv...@gridgain.com>
Authored: Wed Jul 22 08:23:36 2015 +0300
Committer: S.Vladykin <sv...@gridgain.com>
Committed: Wed Jul 22 08:23:36 2015 +0300
----------------------------------------------------------------------
.../query/h2/sql/GridSqlQuerySplitter.java | 163 +++++++++++--------
1 file changed, 94 insertions(+), 69 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0871a7a8/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlQuerySplitter.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlQuerySplitter.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlQuerySplitter.java
index 6c1886b..536f72d 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlQuerySplitter.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlQuerySplitter.java
@@ -28,6 +28,7 @@ import org.jetbrains.annotations.*;
import java.util.*;
import static org.apache.ignite.internal.processors.query.h2.sql.GridSqlFunctionType.*;
+import static org.apache.ignite.internal.processors.query.h2.sql.GridSqlPlaceholder.*;
/**
* Splits a single SQL query into two step map-reduce query.
@@ -397,77 +398,12 @@ public class GridSqlQuerySplitter {
if (!collocated && el instanceof GridSqlAggregateFunction) {
aggregateFound = true;
- GridSqlAggregateFunction agg = (GridSqlAggregateFunction)el;
+ if (alias == null)
+ alias = alias(columnName(idx), el);
- GridSqlElement mapAgg, rdcAgg;
+ splitAggregate(alias, 0, mapSelect, idx, true);
- String mapAggAlias = columnName(idx);
-
- switch (agg.type()) {
- case AVG: // SUM( AVG(CAST(x AS DOUBLE))*COUNT(x) )/SUM( COUNT(x) ).
- //-- COUNT(x) map
- GridSqlElement cntMapAgg = aggregate(agg.distinct(), COUNT).addChild(agg.child());
-
- // Add generated alias to COUNT(x).
- // Using size as index since COUNT will be added as the last select element to the map query.
- String cntMapAggAlias = columnName(mapSelect.size());
-
- cntMapAgg = alias(cntMapAggAlias, cntMapAgg);
-
- mapSelect.add(cntMapAgg);
-
- //-- AVG(CAST(x AS DOUBLE)) map
- mapAgg = aggregate(agg.distinct(), AVG).addChild( // Add function argument.
- function(CAST).setCastType("DOUBLE").addChild(agg.child()));
-
- //-- SUM( AVG(x)*COUNT(x) )/SUM( COUNT(x) ) reduce
- GridSqlElement sumUpRdc = aggregate(false, SUM).addChild(
- op(GridSqlOperationType.MULTIPLY,
- column(mapAggAlias),
- column(cntMapAggAlias)));
-
- GridSqlElement sumDownRdc = aggregate(false, SUM).addChild(column(cntMapAggAlias));
-
- rdcAgg = op(GridSqlOperationType.DIVIDE, sumUpRdc, sumDownRdc);
-
- break;
-
- case SUM: // SUM( SUM(x) )
- case MAX: // MAX( MAX(x) )
- case MIN: // MIN( MIN(x) )
- mapAgg = aggregate(agg.distinct(), agg.type()).addChild(agg.child());
- rdcAgg = aggregate(agg.distinct(), agg.type()).addChild(column(mapAggAlias));
-
- break;
-
- case COUNT_ALL: // CAST(SUM( COUNT(*) ) AS BIGINT)
- case COUNT: // CAST(SUM( COUNT(x) ) AS BIGINT)
- mapAgg = aggregate(agg.distinct(), agg.type());
-
- if (agg.type() == COUNT)
- mapAgg.addChild(agg.child());
-
- rdcAgg = aggregate(false, SUM).addChild(column(mapAggAlias));
- rdcAgg = function(CAST).setCastType("BIGINT").addChild(rdcAgg);
-
- break;
-
- default:
- throw new IgniteException("Unsupported aggregate: " + agg.type());
- }
-
- assert !(mapAgg instanceof GridSqlAlias);
-
- // Add generated alias to map aggregate.
- mapAgg = alias(mapAggAlias, mapAgg);
-
- if (alias != null) // Add initial alias if it was set.
- rdcAgg = alias(alias.alias(), rdcAgg);
-
- // Set map and reduce aggregates to their places in selects.
- mapSelect.set(idx, mapAgg);
-
- rdcSelect[idx] = rdcAgg;
+ rdcSelect[idx] = alias;
}
else {
String mapColAlias = columnName(idx);
@@ -500,6 +436,95 @@ public class GridSqlQuerySplitter {
}
/**
+ * @param parentExpr Parent expression.
+ * @param aggIdx Index of the aggregate to split in this expression.
+ * @param mapSelect List of expressions in map SELECT clause.
+ * @param exprIdx Index of the original expression in map SELECT clause.
+ * @param first If this is the first aggregate found in this expression.
+ */
+ private static void splitAggregate(
+ GridSqlElement parentExpr,
+ int aggIdx,
+ List<GridSqlElement> mapSelect,
+ int exprIdx,
+ boolean first
+ ) {
+ GridSqlAggregateFunction agg = parentExpr.child(aggIdx);
+
+ GridSqlElement mapAgg, rdcAgg;
+
+ // Create stubbed map alias to fill it with correct expression later.
+ GridSqlAlias mapAggAlias = alias(columnName(first ? exprIdx : mapSelect.size()), EMPTY);
+
+ // Replace original expression if it is the first aggregate in expression or add to the end.
+ if (first)
+ mapSelect.set(exprIdx, mapAggAlias);
+ else
+ mapSelect.add(mapAggAlias);
+
+ switch (agg.type()) {
+ case AVG: // SUM( AVG(CAST(x AS DOUBLE))*COUNT(x) )/SUM( COUNT(x) ).
+ //-- COUNT(x) map
+ GridSqlElement cntMapAgg = aggregate(agg.distinct(), COUNT).addChild(agg.child());
+
+ // Add generated alias to COUNT(x).
+ // Using size as index since COUNT will be added as the last select element to the map query.
+ String cntMapAggAlias = columnName(mapSelect.size());
+
+ cntMapAgg = alias(cntMapAggAlias, cntMapAgg);
+
+ mapSelect.add(cntMapAgg);
+
+ //-- AVG(CAST(x AS DOUBLE)) map
+ mapAgg = aggregate(agg.distinct(), AVG).addChild( // Add function argument.
+ function(CAST).setCastType("DOUBLE").addChild(agg.child()));
+
+ //-- SUM( AVG(x)*COUNT(x) )/SUM( COUNT(x) ) reduce
+ GridSqlElement sumUpRdc = aggregate(false, SUM).addChild(
+ op(GridSqlOperationType.MULTIPLY,
+ column(mapAggAlias.alias()),
+ column(cntMapAggAlias)));
+
+ GridSqlElement sumDownRdc = aggregate(false, SUM).addChild(column(cntMapAggAlias));
+
+ rdcAgg = op(GridSqlOperationType.DIVIDE, sumUpRdc, sumDownRdc);
+
+ break;
+
+ case SUM: // SUM( SUM(x) )
+ case MAX: // MAX( MAX(x) )
+ case MIN: // MIN( MIN(x) )
+ mapAgg = aggregate(agg.distinct(), agg.type()).addChild(agg.child());
+ rdcAgg = aggregate(agg.distinct(), agg.type()).addChild(column(mapAggAlias.alias()));
+
+ break;
+
+ case COUNT_ALL: // CAST(SUM( COUNT(*) ) AS BIGINT)
+ case COUNT: // CAST(SUM( COUNT(x) ) AS BIGINT)
+ mapAgg = aggregate(agg.distinct(), agg.type());
+
+ if (agg.type() == COUNT)
+ mapAgg.addChild(agg.child());
+
+ rdcAgg = aggregate(false, SUM).addChild(column(mapAggAlias.alias()));
+ rdcAgg = function(CAST).setCastType("BIGINT").addChild(rdcAgg);
+
+ break;
+
+ default:
+ throw new IgniteException("Unsupported aggregate: " + agg.type());
+ }
+
+ assert !(mapAgg instanceof GridSqlAlias);
+
+ // Fill the map alias with aggregate.
+ mapAggAlias.child(0, mapAgg);
+
+ // Replace in original expression aggregate with reduce aggregate.
+ parentExpr.child(aggIdx, rdcAgg);
+ }
+
+ /**
* @param distinct Distinct.
* @param type Type.
* @return Aggregate function.
[6/9] incubator-ignite git commit: ignite-1015 - minor
Posted by se...@apache.org.
ignite-1015 - minor
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/38d2a93d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/38d2a93d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/38d2a93d
Branch: refs/heads/ignite-1015
Commit: 38d2a93d0031e599d2e6917a3d070f362892ba47
Parents: 12af70b
Author: S.Vladykin <sv...@gridgain.com>
Authored: Wed Jul 22 08:23:09 2015 +0300
Committer: S.Vladykin <sv...@gridgain.com>
Committed: Wed Jul 22 08:23:09 2015 +0300
----------------------------------------------------------------------
.../processors/query/h2/sql/GridSqlAlias.java | 16 +++-------------
.../processors/query/h2/sql/GridSqlElement.java | 7 ++++---
2 files changed, 7 insertions(+), 16 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/38d2a93d/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlAlias.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlAlias.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlAlias.java
index 5e827a0..d683370 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlAlias.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlAlias.java
@@ -45,24 +45,14 @@ public class GridSqlAlias extends GridSqlElement {
* @param useAs Use 'AS' keyword.
*/
public GridSqlAlias(String alias, GridSqlElement expr, boolean useAs) {
- super(list(expr));
+ super(new ArrayList<GridSqlElement>(1));
+
+ addChild(expr);
this.useAs = useAs;
this.alias = alias;
}
- /**
- * @param el Element.
- * @return List.
- */
- private static List<GridSqlElement> list(GridSqlElement el) {
- List<GridSqlElement> res = new ArrayList<>(1);
-
- res.add(el);
-
- return res;
- }
-
/** {@inheritDoc} */
@Override public String getSQL() {
return child().getSQL() + (useAs ? " AS " : " ") + Parser.quoteIdentifier(alias);
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/38d2a93d/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlElement.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlElement.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlElement.java
index 7ad8d5a..44705de 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlElement.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlElement.java
@@ -75,7 +75,7 @@ public abstract class GridSqlElement implements Iterable<GridSqlElement> {
/**
* @return First child.
*/
- public GridSqlElement child() {
+ public <E extends GridSqlElement> E child() {
return child(0);
}
@@ -83,8 +83,9 @@ public abstract class GridSqlElement implements Iterable<GridSqlElement> {
* @param idx Index.
* @return Child.
*/
- public GridSqlElement child(int idx) {
- return children.get(idx);
+ @SuppressWarnings("unchecked")
+ public <E extends GridSqlElement> E child(int idx) {
+ return (E)children.get(idx);
}
/**
[2/9] incubator-ignite git commit: IgniteRDD - added convenient
constructor.
Posted by se...@apache.org.
IgniteRDD - added convenient constructor.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/8e1492a3
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/8e1492a3
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/8e1492a3
Branch: refs/heads/ignite-1015
Commit: 8e1492a37f33d05638f158fdf54034e0dcdfb6c6
Parents: 055d786
Author: Alexey Goncharuk <ag...@gridgain.com>
Authored: Tue Jul 21 18:44:57 2015 -0700
Committer: Alexey Goncharuk <ag...@gridgain.com>
Committed: Tue Jul 21 18:44:57 2015 -0700
----------------------------------------------------------------------
.../scala/org/apache/ignite/spark/IgniteContext.scala | 14 ++++++++++++++
1 file changed, 14 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8e1492a3/modules/spark/src/main/scala/org/apache/ignite/spark/IgniteContext.scala
----------------------------------------------------------------------
diff --git a/modules/spark/src/main/scala/org/apache/ignite/spark/IgniteContext.scala b/modules/spark/src/main/scala/org/apache/ignite/spark/IgniteContext.scala
index 5dbb1d3..5267244a 100644
--- a/modules/spark/src/main/scala/org/apache/ignite/spark/IgniteContext.scala
+++ b/modules/spark/src/main/scala/org/apache/ignite/spark/IgniteContext.scala
@@ -64,6 +64,20 @@ class IgniteContext[K, V](
*/
def this(
sc: SparkContext,
+ springUrl: String,
+ client: Boolean
+ ) {
+ this(sc, () ⇒ IgnitionEx.loadConfiguration(springUrl).get1(), client)
+ }
+
+ /**
+ * Creates an instance of IgniteContext with the given spring configuration.
+ *
+ * @param sc Spark context.
+ * @param springUrl Spring configuration path.
+ */
+ def this(
+ sc: SparkContext,
springUrl: String
) {
this(sc, () ⇒ IgnitionEx.loadConfiguration(springUrl).get1())
[9/9] incubator-ignite git commit: Merge branch 'master' of
https://git-wip-us.apache.org/repos/asf/incubator-ignite into ignite-1015
Posted by se...@apache.org.
Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/incubator-ignite into ignite-1015
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/52025271
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/52025271
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/52025271
Branch: refs/heads/ignite-1015
Commit: 52025271f3db6e764ab62d0483966159d004b42c
Parents: 301f573 8e1492a
Author: S.Vladykin <sv...@gridgain.com>
Authored: Wed Jul 22 09:04:55 2015 +0300
Committer: S.Vladykin <sv...@gridgain.com>
Committed: Wed Jul 22 09:04:55 2015 +0300
----------------------------------------------------------------------
.../processors/cache/GridCacheMvccManager.java | 14 +++++++++
.../distributed/dht/GridDhtTxFinishFuture.java | 13 +++++++-
.../GridDhtPartitionsExchangeFuture.java | 10 +++++--
.../near/GridNearOptimisticTxPrepareFuture.java | 4 ++-
.../GridNearPessimisticTxPrepareFuture.java | 2 +-
.../near/GridNearTxFinishFuture.java | 17 ++++++++++-
.../cache/transactions/IgniteTxManager.java | 5 ++--
.../cache/GridCachePutAllFailoverSelfTest.java | 3 ++
.../GridCacheAbstractNodeRestartSelfTest.java | 9 ++++++
...NearDisabledOptimisticTxNodeRestartTest.java | 31 ++++++++++++++++++++
.../GridCachePartitionedFailoverSelfTest.java | 5 ----
...ePartitionedOptimisticTxNodeRestartTest.java | 12 +++++++-
.../IgniteCacheFailoverTestSuite2.java | 4 +++
.../testsuites/IgniteCacheRestartTestSuite.java | 5 ++--
.../org/apache/ignite/spark/IgniteContext.scala | 14 +++++++++
15 files changed, 130 insertions(+), 18 deletions(-)
----------------------------------------------------------------------
[4/9] incubator-ignite git commit: ignite-1015 - minor
Posted by se...@apache.org.
ignite-1015 - minor
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/0bb26bb1
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/0bb26bb1
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/0bb26bb1
Branch: refs/heads/ignite-1015
Commit: 0bb26bb1d8823104012c764d890919b08a449462
Parents: cbdc614
Author: S.Vladykin <sv...@gridgain.com>
Authored: Wed Jul 22 06:17:04 2015 +0300
Committer: S.Vladykin <sv...@gridgain.com>
Committed: Wed Jul 22 06:17:04 2015 +0300
----------------------------------------------------------------------
.../internal/processors/query/h2/sql/GridSqlQuery.java | 8 ++------
.../internal/processors/query/h2/sql/GridSqlSelect.java | 2 +-
2 files changed, 3 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0bb26bb1/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlQuery.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlQuery.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlQuery.java
index b562279..ad13dfe 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlQuery.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlQuery.java
@@ -145,13 +145,10 @@ public abstract class GridSqlQuery {
int visibleCols = visibleColumns();
- boolean first = true;
+ buff.resetCount();
for (GridSqlSortColumn col : sort) {
- if (first)
- first = false;
- else
- buff.append(", ");
+ buff.appendExceptFirst(", ");
int idx = col.column();
@@ -183,6 +180,5 @@ public abstract class GridSqlQuery {
if (offset != null)
buff.append(" OFFSET ").append(StringUtils.unEnclose(offset.getSQL()));
-
}
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0bb26bb1/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlSelect.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlSelect.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlSelect.java
index 08304aa..fb2643e 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlSelect.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlSelect.java
@@ -70,7 +70,7 @@ public class GridSqlSelect extends GridSqlQuery {
for (GridSqlElement expression : select) {
buff.appendExceptFirst(",");
buff.append('\n');
- buff.append(StringUtils.indent(expression.getSQL(), 4, false));
+ buff.append(expression.getSQL());
}
buff.append("\nFROM ").append(from.getSQL());