You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@phoenix.apache.org by sa...@apache.org on 2017/02/14 06:07:41 UTC
phoenix git commit: Fix determination of qualifier range
Repository: phoenix
Updated Branches:
refs/heads/encodecolumns2 a65ab0030 -> 9180ce22d
Fix determination of qualifier range
Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo
Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/9180ce22
Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/9180ce22
Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/9180ce22
Branch: refs/heads/encodecolumns2
Commit: 9180ce22d2782632b9c96c97c8165554efc98a95
Parents: a65ab00
Author: Samarth <sa...@salesforce.com>
Authored: Mon Feb 13 22:07:34 2017 -0800
Committer: Samarth <sa...@salesforce.com>
Committed: Mon Feb 13 22:07:34 2017 -0800
----------------------------------------------------------------------
.../UngroupedAggregateRegionObserver.java | 2 +-
.../apache/phoenix/util/EncodedColumnsUtil.java | 33 +++++++++-----------
2 files changed, 15 insertions(+), 20 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/phoenix/blob/9180ce22/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/UngroupedAggregateRegionObserver.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/UngroupedAggregateRegionObserver.java b/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/UngroupedAggregateRegionObserver.java
index b6a0a6b..70ef609 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/UngroupedAggregateRegionObserver.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/UngroupedAggregateRegionObserver.java
@@ -337,7 +337,7 @@ public class UngroupedAggregateRegionObserver extends BaseScannerRegionObserver
ColumnReference[] dataColumns = IndexUtil.deserializeDataTableColumnsToJoin(scan);
final TupleProjector p = TupleProjector.deserializeProjectorFromScan(scan);
final HashJoinInfo j = HashJoinInfo.deserializeHashJoinFromScan(scan);
- boolean useQualifierAsIndex = EncodedColumnsUtil.useQualifierAsIndex(EncodedColumnsUtil.getMinMaxQualifiersFromScan(scan)) && scan.getAttribute(BaseScannerRegionObserver.TOPN) != null;
+ boolean useQualifierAsIndex = EncodedColumnsUtil.useQualifierAsIndex(EncodedColumnsUtil.getMinMaxQualifiersFromScan(scan));
if ((localIndexScan && !isDelete && !isDescRowKeyOrderUpgrade) || (j == null && p != null)) {
if (dataColumns != null) {
tupleProjector = IndexUtil.getTupleProjector(scan, dataColumns);
http://git-wip-us.apache.org/repos/asf/phoenix/blob/9180ce22/phoenix-core/src/main/java/org/apache/phoenix/util/EncodedColumnsUtil.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/util/EncodedColumnsUtil.java b/phoenix-core/src/main/java/org/apache/phoenix/util/EncodedColumnsUtil.java
index b33b085..59e99fd 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/util/EncodedColumnsUtil.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/util/EncodedColumnsUtil.java
@@ -21,7 +21,9 @@ import static com.google.common.base.Preconditions.checkNotNull;
import static org.apache.phoenix.schema.PTable.QualifierEncodingScheme.NON_ENCODED_QUALIFIERS;
import java.util.Arrays;
+import java.util.Collections;
import java.util.Map;
+import java.util.Map.Entry;
import org.apache.hadoop.hbase.client.Scan;
import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
@@ -135,28 +137,21 @@ public class EncodedColumnsUtil {
public static Map<String, Pair<Integer, Integer>> getFamilyQualifierRanges(PTable table) {
checkNotNull(table);
QualifierEncodingScheme encodingScheme = table.getEncodingScheme();
- Preconditions.checkArgument(encodingScheme != NON_ENCODED_QUALIFIERS,
- "Use this method only for tables with encoding scheme "
- + NON_ENCODED_QUALIFIERS);
- Map<String, Pair<Integer, Integer>> toReturn = Maps.newHashMapWithExpectedSize(table.getColumns().size());
- for (PColumn column : table.getColumns()) {
- if (!SchemaUtil.isPKColumn(column)) {
- String colFamily = column.getFamilyName().getString();
- Pair<Integer, Integer> minMaxQualifiers = toReturn.get(colFamily);
- Integer encodedColumnQualifier = encodingScheme.decode(column.getColumnQualifierBytes());
- if (minMaxQualifiers == null) {
- minMaxQualifiers = new Pair<>(encodedColumnQualifier, encodedColumnQualifier);
- toReturn.put(colFamily, minMaxQualifiers);
- } else {
- if (encodedColumnQualifier < minMaxQualifiers.getFirst()) {
- minMaxQualifiers.setFirst(encodedColumnQualifier);
- } else if (encodedColumnQualifier > minMaxQualifiers.getSecond()) {
- minMaxQualifiers.setSecond(encodedColumnQualifier);
- }
+ Preconditions.checkArgument(encodingScheme != NON_ENCODED_QUALIFIERS);
+ if (table.getEncodedCQCounter() != null) {
+ Map<String, Integer> values = table.getEncodedCQCounter().values();
+ Map<String, Pair<Integer, Integer>> toReturn = Maps.newHashMapWithExpectedSize(values.size());
+ for (Entry<String, Integer> e : values.entrySet()) {
+ Integer lowerBound = QueryConstants.ENCODED_CQ_COUNTER_INITIAL_VALUE;
+ Integer upperBound = e.getValue() - 1;
+ if (lowerBound > upperBound) {
+ lowerBound = upperBound;
}
+ toReturn.put(e.getKey(), new Pair<>(lowerBound, upperBound));
}
+ return toReturn;
}
- return toReturn;
+ return Collections.emptyMap();
}
public static byte[] getColumnQualifierBytes(String columnName, Integer numberBasedQualifier, PTable table, boolean isPk) {