[1/3] phoenix git commit: PHOENIX-1455 Replace org.xerial.snappy with org.iq80.snappy pure Java snappy implementation
Repository: phoenix Updated Branches: refs/heads/3.2 b805aa64c - 43abdea7d refs/heads/4.2 e00763ee0 - ab0bcb839 refs/heads/master bc89c9a51 - 300edd0b5 PHOENIX-1455 Replace org.xerial.snappy with org.iq80.snappy pure Java snappy implementation Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/300edd0b Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/300edd0b Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/300edd0b Branch: refs/heads/master Commit: 300edd0b523638461e1dd09f191d666136ec715e Parents: bc89c9a Author: Andrew Purtell apurt...@apache.org Authored: Mon Nov 17 18:05:33 2014 -0800 Committer: Andrew Purtell apurt...@apache.org Committed: Mon Nov 17 18:05:33 2014 -0800 -- phoenix-core/pom.xml| 6 ++--- .../DistinctValueWithCountClientAggregator.java | 17 ++ .../DistinctValueWithCountServerAggregator.java | 24 ++-- .../apache/phoenix/join/HashCacheClient.java| 3 ++- .../apache/phoenix/join/HashCacheFactory.java | 15 pom.xml | 14 +--- 6 files changed, 45 insertions(+), 34 deletions(-) -- http://git-wip-us.apache.org/repos/asf/phoenix/blob/300edd0b/phoenix-core/pom.xml -- diff --git a/phoenix-core/pom.xml b/phoenix-core/pom.xml index 90a7142..b98e9b2 100644 --- a/phoenix-core/pom.xml +++ b/phoenix-core/pom.xml @@ -276,8 +276,8 @@ version${slf4j.version}/version /dependency dependency - groupIdorg.xerial.snappy/groupId - artifactIdsnappy-java/artifactId + groupIdorg.iq80.snappy/groupId + artifactIdsnappy/artifactId version${snappy.version}/version /dependency dependency @@ -399,4 +399,4 @@ artifactIdhadoop-minicluster/artifactId /dependency /dependencies -/project \ No newline at end of file +/project http://git-wip-us.apache.org/repos/asf/phoenix/blob/300edd0b/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/DistinctValueWithCountClientAggregator.java -- diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/DistinctValueWithCountClientAggregator.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/DistinctValueWithCountClientAggregator.java index f29f46a..56ca000 100644 --- a/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/DistinctValueWithCountClientAggregator.java +++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/DistinctValueWithCountClientAggregator.java @@ -35,6 +35,7 @@ import org.apache.phoenix.schema.PDataType; import org.apache.phoenix.schema.SortOrder; import org.apache.phoenix.schema.tuple.SingleKeyValueTuple; import org.apache.phoenix.schema.tuple.Tuple; +import org.iq80.snappy.Snappy; /** * Client side Aggregator which will aggregate data and find distinct values with number of occurrences for each. @@ -59,14 +60,20 @@ public abstract class DistinctValueWithCountClientAggregator extends BaseAggrega PDataType resultDataType = getResultDataType(); cachedResult = resultDataType.toObject(ptr, resultDataType, sortOrder); } else { -InputStream is = new ByteArrayInputStream(ptr.get(), ptr.getOffset() + 1, ptr.getLength() - 1); +InputStream is; try { if (Bytes.equals(ptr.get(), ptr.getOffset(), 1, DistinctValueWithCountServerAggregator.COMPRESS_MARKER, 0, 1)) { -InputStream decompressionStream = DistinctValueWithCountServerAggregator.COMPRESS_ALGO -.createDecompressionStream(is, - DistinctValueWithCountServerAggregator.COMPRESS_ALGO.getDecompressor(), 0); -is = decompressionStream; +// This reads the uncompressed length from the front of the compressed input +int uncompressedLength = Snappy.getUncompressedLength(ptr.get(), ptr.getOffset() + 1); +byte[] uncompressed = new byte[uncompressedLength]; +// This will throw CorruptionException, a RuntimeException if the snappy data is invalid. +// We're making a RuntimeException out of a checked IOException below so assume it's ok +// to let any CorruptionException escape. +Snappy.uncompress(ptr.get(), ptr.getOffset() + 1, ptr.getLength() - 1, uncompressed, 0); +is = new ByteArrayInputStream(uncompressed, 0, uncompressedLength); +} else { +is = new
[3/3] phoenix git commit: PHOENIX-1455 Replace org.xerial.snappy with org.iq80.snappy pure Java snappy implementation
PHOENIX-1455 Replace org.xerial.snappy with org.iq80.snappy pure Java snappy implementation Conflicts: phoenix-core/pom.xml phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/DistinctValueWithCountServerAggregator.java pom.xml Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/43abdea7 Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/43abdea7 Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/43abdea7 Branch: refs/heads/3.2 Commit: 43abdea7d67f0de11a0d23f7c1d5fddadf039607 Parents: b805aa6 Author: Andrew Purtell apurt...@apache.org Authored: Mon Nov 17 18:05:33 2014 -0800 Committer: Andrew Purtell apurt...@apache.org Committed: Mon Nov 17 18:10:49 2014 -0800 -- phoenix-core/pom.xml| 5 .../DistinctValueWithCountClientAggregator.java | 17 ++ .../DistinctValueWithCountServerAggregator.java | 24 ++-- .../apache/phoenix/join/HashCacheClient.java| 3 ++- .../apache/phoenix/join/HashCacheFactory.java | 15 pom.xml | 14 +--- 6 files changed, 47 insertions(+), 31 deletions(-) -- http://git-wip-us.apache.org/repos/asf/phoenix/blob/43abdea7/phoenix-core/pom.xml -- diff --git a/phoenix-core/pom.xml b/phoenix-core/pom.xml index e331db3..9c6d183 100644 --- a/phoenix-core/pom.xml +++ b/phoenix-core/pom.xml @@ -272,6 +272,11 @@ artifactIdjackson-xc/artifactId /dependency dependency + groupIdorg.iq80.snappy/groupId + artifactIdsnappy/artifactId + version${snappy.version}/version +/dependency +dependency groupIdcom.google.code.findbugs/groupId artifactIdjsr305/artifactId /dependency http://git-wip-us.apache.org/repos/asf/phoenix/blob/43abdea7/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/DistinctValueWithCountClientAggregator.java -- diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/DistinctValueWithCountClientAggregator.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/DistinctValueWithCountClientAggregator.java index f29f46a..56ca000 100644 --- a/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/DistinctValueWithCountClientAggregator.java +++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/DistinctValueWithCountClientAggregator.java @@ -35,6 +35,7 @@ import org.apache.phoenix.schema.PDataType; import org.apache.phoenix.schema.SortOrder; import org.apache.phoenix.schema.tuple.SingleKeyValueTuple; import org.apache.phoenix.schema.tuple.Tuple; +import org.iq80.snappy.Snappy; /** * Client side Aggregator which will aggregate data and find distinct values with number of occurrences for each. @@ -59,14 +60,20 @@ public abstract class DistinctValueWithCountClientAggregator extends BaseAggrega PDataType resultDataType = getResultDataType(); cachedResult = resultDataType.toObject(ptr, resultDataType, sortOrder); } else { -InputStream is = new ByteArrayInputStream(ptr.get(), ptr.getOffset() + 1, ptr.getLength() - 1); +InputStream is; try { if (Bytes.equals(ptr.get(), ptr.getOffset(), 1, DistinctValueWithCountServerAggregator.COMPRESS_MARKER, 0, 1)) { -InputStream decompressionStream = DistinctValueWithCountServerAggregator.COMPRESS_ALGO -.createDecompressionStream(is, - DistinctValueWithCountServerAggregator.COMPRESS_ALGO.getDecompressor(), 0); -is = decompressionStream; +// This reads the uncompressed length from the front of the compressed input +int uncompressedLength = Snappy.getUncompressedLength(ptr.get(), ptr.getOffset() + 1); +byte[] uncompressed = new byte[uncompressedLength]; +// This will throw CorruptionException, a RuntimeException if the snappy data is invalid. +// We're making a RuntimeException out of a checked IOException below so assume it's ok +// to let any CorruptionException escape. +Snappy.uncompress(ptr.get(), ptr.getOffset() + 1, ptr.getLength() - 1, uncompressed, 0); +is = new ByteArrayInputStream(uncompressed, 0, uncompressedLength); +} else { +is = new ByteArrayInputStream(ptr.get(), ptr.getOffset() + 1, ptr.getLength() - 1); }
[2/3] phoenix git commit: PHOENIX-1455 Replace org.xerial.snappy with org.iq80.snappy pure Java snappy implementation
PHOENIX-1455 Replace org.xerial.snappy with org.iq80.snappy pure Java snappy implementation Conflicts: phoenix-core/src/main/java/org/apache/phoenix/join/HashCacheFactory.java Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/ab0bcb83 Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/ab0bcb83 Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/ab0bcb83 Branch: refs/heads/4.2 Commit: ab0bcb8393ae01c063fa30ef7902f0a1c594f804 Parents: e00763e Author: Andrew Purtell apurt...@apache.org Authored: Mon Nov 17 18:05:33 2014 -0800 Committer: Andrew Purtell apurt...@apache.org Committed: Mon Nov 17 18:07:02 2014 -0800 -- phoenix-core/pom.xml| 6 ++--- .../DistinctValueWithCountClientAggregator.java | 17 ++ .../DistinctValueWithCountServerAggregator.java | 24 ++-- .../apache/phoenix/join/HashCacheClient.java| 3 ++- .../apache/phoenix/join/HashCacheFactory.java | 15 pom.xml | 14 +--- 6 files changed, 45 insertions(+), 34 deletions(-) -- http://git-wip-us.apache.org/repos/asf/phoenix/blob/ab0bcb83/phoenix-core/pom.xml -- diff --git a/phoenix-core/pom.xml b/phoenix-core/pom.xml index 6b8676b..146f709 100644 --- a/phoenix-core/pom.xml +++ b/phoenix-core/pom.xml @@ -276,8 +276,8 @@ version${slf4j.version}/version /dependency dependency - groupIdorg.xerial.snappy/groupId - artifactIdsnappy-java/artifactId + groupIdorg.iq80.snappy/groupId + artifactIdsnappy/artifactId version${snappy.version}/version /dependency dependency @@ -399,4 +399,4 @@ artifactIdhadoop-minicluster/artifactId /dependency /dependencies -/project \ No newline at end of file +/project http://git-wip-us.apache.org/repos/asf/phoenix/blob/ab0bcb83/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/DistinctValueWithCountClientAggregator.java -- diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/DistinctValueWithCountClientAggregator.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/DistinctValueWithCountClientAggregator.java index f29f46a..56ca000 100644 --- a/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/DistinctValueWithCountClientAggregator.java +++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/DistinctValueWithCountClientAggregator.java @@ -35,6 +35,7 @@ import org.apache.phoenix.schema.PDataType; import org.apache.phoenix.schema.SortOrder; import org.apache.phoenix.schema.tuple.SingleKeyValueTuple; import org.apache.phoenix.schema.tuple.Tuple; +import org.iq80.snappy.Snappy; /** * Client side Aggregator which will aggregate data and find distinct values with number of occurrences for each. @@ -59,14 +60,20 @@ public abstract class DistinctValueWithCountClientAggregator extends BaseAggrega PDataType resultDataType = getResultDataType(); cachedResult = resultDataType.toObject(ptr, resultDataType, sortOrder); } else { -InputStream is = new ByteArrayInputStream(ptr.get(), ptr.getOffset() + 1, ptr.getLength() - 1); +InputStream is; try { if (Bytes.equals(ptr.get(), ptr.getOffset(), 1, DistinctValueWithCountServerAggregator.COMPRESS_MARKER, 0, 1)) { -InputStream decompressionStream = DistinctValueWithCountServerAggregator.COMPRESS_ALGO -.createDecompressionStream(is, - DistinctValueWithCountServerAggregator.COMPRESS_ALGO.getDecompressor(), 0); -is = decompressionStream; +// This reads the uncompressed length from the front of the compressed input +int uncompressedLength = Snappy.getUncompressedLength(ptr.get(), ptr.getOffset() + 1); +byte[] uncompressed = new byte[uncompressedLength]; +// This will throw CorruptionException, a RuntimeException if the snappy data is invalid. +// We're making a RuntimeException out of a checked IOException below so assume it's ok +// to let any CorruptionException escape. +Snappy.uncompress(ptr.get(), ptr.getOffset() + 1, ptr.getLength() - 1, uncompressed, 0); +is = new ByteArrayInputStream(uncompressed, 0, uncompressedLength); +} else { +is = new ByteArrayInputStream(ptr.get(), ptr.getOffset() + 1, ptr.getLength()
Apache-Phoenix | Master | Build Successful
Master branch build status Successful Source repository https://git-wip-us.apache.org/repos/asf/phoenix.git Last Successful Compiled Artifacts https://builds.apache.org/job/Phoenix-master/lastSuccessfulBuild/artifact/ Last Complete Test Report https://builds.apache.org/job/Phoenix-master/lastCompletedBuild/testReport/ Changes [apurtell] PHOENIX-1455 Replace org.xerial.snappy with org.iq80.snappy pure Java snappy implementation
phoenix git commit: Phoenix-1462 - Create unit test for COUNT DISTINCT using compression (Ram)
Repository: phoenix Updated Branches: refs/heads/master 300edd0b5 - d1d580a39 Phoenix-1462 - Create unit test for COUNT DISTINCT using compression (Ram) Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/d1d580a3 Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/d1d580a3 Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/d1d580a3 Branch: refs/heads/master Commit: d1d580a39e2048d0ba814c48dac721603b4a7523 Parents: 300edd0 Author: Ramkrishna ramkrishna.s.vasude...@intel.com Authored: Tue Nov 18 11:37:42 2014 +0530 Committer: Ramkrishna ramkrishna.s.vasude...@intel.com Committed: Tue Nov 18 11:37:42 2014 +0530 -- .../end2end/CountDistinctCompressionIT.java | 71 1 file changed, 71 insertions(+) -- http://git-wip-us.apache.org/repos/asf/phoenix/blob/d1d580a3/phoenix-core/src/it/java/org/apache/phoenix/end2end/CountDistinctCompressionIT.java -- diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/CountDistinctCompressionIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/CountDistinctCompressionIT.java new file mode 100644 index 000..97703f5 --- /dev/null +++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/CountDistinctCompressionIT.java @@ -0,0 +1,71 @@ +/* + * 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.phoenix.end2end; + +import static org.apache.phoenix.util.TestUtil.TEST_PROPERTIES; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import java.sql.Connection; +import java.sql.Date; +import java.sql.DriverManager; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.util.Map; +import java.util.Properties; + +import org.apache.phoenix.query.QueryServices; +import org.apache.phoenix.util.PropertiesUtil; +import org.apache.phoenix.util.ReadOnlyProps; +import org.junit.BeforeClass; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +import com.google.common.collect.Maps; + +@Category(NeedsOwnMiniClusterTest.class) +public class CountDistinctCompressionIT extends BaseOwnClusterHBaseManagedTimeIT { +@BeforeClass +public static void doSetup() throws Exception { +MapString, String props = Maps.newHashMapWithExpectedSize(3); +// Must update config before starting server +props.put(QueryServices.DISTINCT_VALUE_COMPRESS_THRESHOLD_ATTRIB, Long.toString(1)); +setUpTestDriver(new ReadOnlyProps(props.entrySet().iterator())); +} + +@Test +public void testDistinctCountOnColumn() throws Exception { +String tenantId = getOrganizationId(); +initATableValues(tenantId, getDefaultSplits(tenantId), (Date)null, getUrl()); + +String query = SELECT count(DISTINCT A_STRING) FROM aTable; + +Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES); +Connection conn = DriverManager.getConnection(getUrl(), props); +try { +PreparedStatement statement = conn.prepareStatement(query); +ResultSet rs = statement.executeQuery(); +assertTrue(rs.next()); +assertEquals(3, rs.getLong(1)); +assertFalse(rs.next()); +} finally { +conn.close(); +} +} +}
phoenix git commit: Phoenix-1462 Create unit test for COUNT DISTINCT using compression (Ram)
Repository: phoenix Updated Branches: refs/heads/4.2 ab0bcb839 - e4ac94a1f Phoenix-1462 Create unit test for COUNT DISTINCT using compression (Ram) Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/e4ac94a1 Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/e4ac94a1 Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/e4ac94a1 Branch: refs/heads/4.2 Commit: e4ac94a1f245b475d3cd2748ac3b80c49aab566a Parents: ab0bcb8 Author: Ramkrishna ramkrishna.s.vasude...@intel.com Authored: Tue Nov 18 11:38:58 2014 +0530 Committer: Ramkrishna ramkrishna.s.vasude...@intel.com Committed: Tue Nov 18 11:38:58 2014 +0530 -- .../end2end/CountDistinctCompressionIT.java | 71 1 file changed, 71 insertions(+) -- http://git-wip-us.apache.org/repos/asf/phoenix/blob/e4ac94a1/phoenix-core/src/it/java/org/apache/phoenix/end2end/CountDistinctCompressionIT.java -- diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/CountDistinctCompressionIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/CountDistinctCompressionIT.java new file mode 100644 index 000..97703f5 --- /dev/null +++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/CountDistinctCompressionIT.java @@ -0,0 +1,71 @@ +/* + * 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.phoenix.end2end; + +import static org.apache.phoenix.util.TestUtil.TEST_PROPERTIES; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import java.sql.Connection; +import java.sql.Date; +import java.sql.DriverManager; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.util.Map; +import java.util.Properties; + +import org.apache.phoenix.query.QueryServices; +import org.apache.phoenix.util.PropertiesUtil; +import org.apache.phoenix.util.ReadOnlyProps; +import org.junit.BeforeClass; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +import com.google.common.collect.Maps; + +@Category(NeedsOwnMiniClusterTest.class) +public class CountDistinctCompressionIT extends BaseOwnClusterHBaseManagedTimeIT { +@BeforeClass +public static void doSetup() throws Exception { +MapString, String props = Maps.newHashMapWithExpectedSize(3); +// Must update config before starting server +props.put(QueryServices.DISTINCT_VALUE_COMPRESS_THRESHOLD_ATTRIB, Long.toString(1)); +setUpTestDriver(new ReadOnlyProps(props.entrySet().iterator())); +} + +@Test +public void testDistinctCountOnColumn() throws Exception { +String tenantId = getOrganizationId(); +initATableValues(tenantId, getDefaultSplits(tenantId), (Date)null, getUrl()); + +String query = SELECT count(DISTINCT A_STRING) FROM aTable; + +Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES); +Connection conn = DriverManager.getConnection(getUrl(), props); +try { +PreparedStatement statement = conn.prepareStatement(query); +ResultSet rs = statement.executeQuery(); +assertTrue(rs.next()); +assertEquals(3, rs.getLong(1)); +assertFalse(rs.next()); +} finally { +conn.close(); +} +} +}
phoenix git commit: Phoenix-1462 - Create unit test for COUNT DISTINCT using compression (Ram)
Repository: phoenix Updated Branches: refs/heads/3.2 43abdea7d - 61f60c24d Phoenix-1462 - Create unit test for COUNT DISTINCT using compression (Ram) Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/61f60c24 Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/61f60c24 Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/61f60c24 Branch: refs/heads/3.2 Commit: 61f60c24d3794ae282a8a0114634a49f10a1cf32 Parents: 43abdea Author: Ramkrishna ramkrishna.s.vasude...@intel.com Authored: Tue Nov 18 11:50:13 2014 +0530 Committer: Ramkrishna ramkrishna.s.vasude...@intel.com Committed: Tue Nov 18 11:50:13 2014 +0530 -- .../end2end/CountDistinctCompressionIT.java | 71 1 file changed, 71 insertions(+) -- http://git-wip-us.apache.org/repos/asf/phoenix/blob/61f60c24/phoenix-core/src/it/java/org/apache/phoenix/end2end/CountDistinctCompressionIT.java -- diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/CountDistinctCompressionIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/CountDistinctCompressionIT.java new file mode 100644 index 000..97703f5 --- /dev/null +++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/CountDistinctCompressionIT.java @@ -0,0 +1,71 @@ +/* + * 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.phoenix.end2end; + +import static org.apache.phoenix.util.TestUtil.TEST_PROPERTIES; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import java.sql.Connection; +import java.sql.Date; +import java.sql.DriverManager; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.util.Map; +import java.util.Properties; + +import org.apache.phoenix.query.QueryServices; +import org.apache.phoenix.util.PropertiesUtil; +import org.apache.phoenix.util.ReadOnlyProps; +import org.junit.BeforeClass; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +import com.google.common.collect.Maps; + +@Category(NeedsOwnMiniClusterTest.class) +public class CountDistinctCompressionIT extends BaseOwnClusterHBaseManagedTimeIT { +@BeforeClass +public static void doSetup() throws Exception { +MapString, String props = Maps.newHashMapWithExpectedSize(3); +// Must update config before starting server +props.put(QueryServices.DISTINCT_VALUE_COMPRESS_THRESHOLD_ATTRIB, Long.toString(1)); +setUpTestDriver(new ReadOnlyProps(props.entrySet().iterator())); +} + +@Test +public void testDistinctCountOnColumn() throws Exception { +String tenantId = getOrganizationId(); +initATableValues(tenantId, getDefaultSplits(tenantId), (Date)null, getUrl()); + +String query = SELECT count(DISTINCT A_STRING) FROM aTable; + +Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES); +Connection conn = DriverManager.getConnection(getUrl(), props); +try { +PreparedStatement statement = conn.prepareStatement(query); +ResultSet rs = statement.executeQuery(); +assertTrue(rs.next()); +assertEquals(3, rs.getLong(1)); +assertFalse(rs.next()); +} finally { +conn.close(); +} +} +}
Apache-Phoenix | Master | Build Successful
Master branch build status Successful Source repository https://git-wip-us.apache.org/repos/asf/phoenix.git Last Successful Compiled Artifacts https://builds.apache.org/job/Phoenix-master/lastSuccessfulBuild/artifact/ Last Complete Test Report https://builds.apache.org/job/Phoenix-master/lastCompletedBuild/testReport/ Changes [ramkrishna] Phoenix-1462 - Create unit test for COUNT DISTINCT using compression (Ram)
phoenix git commit: Phoenix-1462 - Create unit test for COUNT DISTINCT using compression (Ram)
Repository: phoenix Updated Branches: refs/heads/4.0 ebc7ee42c - 0e13b9ba1 Phoenix-1462 - Create unit test for COUNT DISTINCT using compression (Ram) Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/0e13b9ba Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/0e13b9ba Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/0e13b9ba Branch: refs/heads/4.0 Commit: 0e13b9ba146339617866db632aaa0929c910e254 Parents: ebc7ee4 Author: Ramkrishna ramkrishna.s.vasude...@intel.com Authored: Tue Nov 18 12:25:00 2014 +0530 Committer: Ramkrishna ramkrishna.s.vasude...@intel.com Committed: Tue Nov 18 12:25:00 2014 +0530 -- .../end2end/CountDistinctCompressionIT.java | 71 1 file changed, 71 insertions(+) -- http://git-wip-us.apache.org/repos/asf/phoenix/blob/0e13b9ba/phoenix-core/src/it/java/org/apache/phoenix/end2end/CountDistinctCompressionIT.java -- diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/CountDistinctCompressionIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/CountDistinctCompressionIT.java new file mode 100644 index 000..97703f5 --- /dev/null +++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/CountDistinctCompressionIT.java @@ -0,0 +1,71 @@ +/* + * 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.phoenix.end2end; + +import static org.apache.phoenix.util.TestUtil.TEST_PROPERTIES; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import java.sql.Connection; +import java.sql.Date; +import java.sql.DriverManager; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.util.Map; +import java.util.Properties; + +import org.apache.phoenix.query.QueryServices; +import org.apache.phoenix.util.PropertiesUtil; +import org.apache.phoenix.util.ReadOnlyProps; +import org.junit.BeforeClass; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +import com.google.common.collect.Maps; + +@Category(NeedsOwnMiniClusterTest.class) +public class CountDistinctCompressionIT extends BaseOwnClusterHBaseManagedTimeIT { +@BeforeClass +public static void doSetup() throws Exception { +MapString, String props = Maps.newHashMapWithExpectedSize(3); +// Must update config before starting server +props.put(QueryServices.DISTINCT_VALUE_COMPRESS_THRESHOLD_ATTRIB, Long.toString(1)); +setUpTestDriver(new ReadOnlyProps(props.entrySet().iterator())); +} + +@Test +public void testDistinctCountOnColumn() throws Exception { +String tenantId = getOrganizationId(); +initATableValues(tenantId, getDefaultSplits(tenantId), (Date)null, getUrl()); + +String query = SELECT count(DISTINCT A_STRING) FROM aTable; + +Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES); +Connection conn = DriverManager.getConnection(getUrl(), props); +try { +PreparedStatement statement = conn.prepareStatement(query); +ResultSet rs = statement.executeQuery(); +assertTrue(rs.next()); +assertEquals(3, rs.getLong(1)); +assertFalse(rs.next()); +} finally { +conn.close(); +} +} +}
phoenix git commit: Phoenix-1462 - Create unit test for COUNT DISTINCT using compression (Ram)
Repository: phoenix Updated Branches: refs/heads/3.0 c647c6a28 - c77120e98 Phoenix-1462 - Create unit test for COUNT DISTINCT using compression (Ram) Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/c77120e9 Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/c77120e9 Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/c77120e9 Branch: refs/heads/3.0 Commit: c77120e9816f03221fa5d002ce35881e1555e1bf Parents: c647c6a Author: Ramkrishna ramkrishna.s.vasude...@intel.com Authored: Tue Nov 18 12:31:35 2014 +0530 Committer: Ramkrishna ramkrishna.s.vasude...@intel.com Committed: Tue Nov 18 12:31:35 2014 +0530 -- .../end2end/CountDistinctCompressionIT.java | 71 1 file changed, 71 insertions(+) -- http://git-wip-us.apache.org/repos/asf/phoenix/blob/c77120e9/phoenix-core/src/it/java/org/apache/phoenix/end2end/CountDistinctCompressionIT.java -- diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/CountDistinctCompressionIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/CountDistinctCompressionIT.java new file mode 100644 index 000..97703f5 --- /dev/null +++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/CountDistinctCompressionIT.java @@ -0,0 +1,71 @@ +/* + * 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.phoenix.end2end; + +import static org.apache.phoenix.util.TestUtil.TEST_PROPERTIES; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import java.sql.Connection; +import java.sql.Date; +import java.sql.DriverManager; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.util.Map; +import java.util.Properties; + +import org.apache.phoenix.query.QueryServices; +import org.apache.phoenix.util.PropertiesUtil; +import org.apache.phoenix.util.ReadOnlyProps; +import org.junit.BeforeClass; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +import com.google.common.collect.Maps; + +@Category(NeedsOwnMiniClusterTest.class) +public class CountDistinctCompressionIT extends BaseOwnClusterHBaseManagedTimeIT { +@BeforeClass +public static void doSetup() throws Exception { +MapString, String props = Maps.newHashMapWithExpectedSize(3); +// Must update config before starting server +props.put(QueryServices.DISTINCT_VALUE_COMPRESS_THRESHOLD_ATTRIB, Long.toString(1)); +setUpTestDriver(new ReadOnlyProps(props.entrySet().iterator())); +} + +@Test +public void testDistinctCountOnColumn() throws Exception { +String tenantId = getOrganizationId(); +initATableValues(tenantId, getDefaultSplits(tenantId), (Date)null, getUrl()); + +String query = SELECT count(DISTINCT A_STRING) FROM aTable; + +Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES); +Connection conn = DriverManager.getConnection(getUrl(), props); +try { +PreparedStatement statement = conn.prepareStatement(query); +ResultSet rs = statement.executeQuery(); +assertTrue(rs.next()); +assertEquals(3, rs.getLong(1)); +assertFalse(rs.next()); +} finally { +conn.close(); +} +} +}
Jenkins build is unstable: Phoenix | 4.0 #464
See https://builds.apache.org/job/Phoenix-4.0/464/changes