Build failed in Jenkins: Phoenix-4.x-HBase-1.1 #38

2016-06-02 Thread Apache Jenkins Server
See 

Changes:

[larsh] PHOENIX-258 minor test fixes.

--
[...truncated 2082 lines...]
Caused by: java.io.IOException: Shutting down
Caused by: java.lang.RuntimeException: Master not initialized after 20ms 
seconds

Running org.apache.phoenix.end2end.index.ImmutableIndexWithStatsIT
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.008 sec <<< 
FAILURE! - in org.apache.phoenix.end2end.index.ImmutableIndexWithStatsIT
org.apache.phoenix.end2end.index.ImmutableIndexWithStatsIT  Time elapsed: 0.007 
sec  <<< ERROR!
java.lang.RuntimeException: java.io.IOException: Shutting down
at 
org.apache.phoenix.end2end.index.ImmutableIndexWithStatsIT.doSetup(ImmutableIndexWithStatsIT.java:52)
Caused by: java.io.IOException: Shutting down
at 
org.apache.phoenix.end2end.index.ImmutableIndexWithStatsIT.doSetup(ImmutableIndexWithStatsIT.java:52)
Caused by: java.lang.RuntimeException: Master not initialized after 20ms 
seconds
at 
org.apache.phoenix.end2end.index.ImmutableIndexWithStatsIT.doSetup(ImmutableIndexWithStatsIT.java:52)

Running org.apache.phoenix.end2end.index.MutableIndexFailureIT
Running org.apache.phoenix.end2end.index.MutableIndexReplicationIT
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.01 sec <<< 
FAILURE! - in org.apache.phoenix.end2end.index.MutableIndexFailureIT
org.apache.phoenix.end2end.index.MutableIndexFailureIT  Time elapsed: 0.008 sec 
 <<< ERROR!
java.lang.RuntimeException: java.io.IOException: Shutting down
at 
org.apache.phoenix.end2end.index.MutableIndexFailureIT.doSetup(MutableIndexFailureIT.java:113)
Caused by: java.io.IOException: Shutting down
at 
org.apache.phoenix.end2end.index.MutableIndexFailureIT.doSetup(MutableIndexFailureIT.java:113)
Caused by: java.lang.RuntimeException: Master not initialized after 20ms 
seconds
at 
org.apache.phoenix.end2end.index.MutableIndexFailureIT.doSetup(MutableIndexFailureIT.java:113)

Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.007 sec <<< 
FAILURE! - in org.apache.phoenix.end2end.index.MutableIndexReplicationIT
org.apache.phoenix.end2end.index.MutableIndexReplicationIT  Time elapsed: 0.006 
sec  <<< ERROR!
java.io.IOException: Shutting down
at 
org.apache.phoenix.end2end.index.MutableIndexReplicationIT.setupConfigsAndStartCluster(MutableIndexReplicationIT.java:170)
at 
org.apache.phoenix.end2end.index.MutableIndexReplicationIT.setUpBeforeClass(MutableIndexReplicationIT.java:108)
Caused by: java.lang.RuntimeException: Master not initialized after 20ms 
seconds
at 
org.apache.phoenix.end2end.index.MutableIndexReplicationIT.setupConfigsAndStartCluster(MutableIndexReplicationIT.java:170)
at 
org.apache.phoenix.end2end.index.MutableIndexReplicationIT.setUpBeforeClass(MutableIndexReplicationIT.java:108)

Running org.apache.phoenix.hbase.index.FailForUnsupportedHBaseVersionsIT
Running org.apache.phoenix.end2end.index.ReadOnlyIndexFailureIT
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.008 sec <<< 
FAILURE! - in org.apache.phoenix.end2end.index.ReadOnlyIndexFailureIT
org.apache.phoenix.end2end.index.ReadOnlyIndexFailureIT  Time elapsed: 0.007 
sec  <<< ERROR!
java.lang.RuntimeException: java.io.IOException: Shutting down
at 
org.apache.phoenix.end2end.index.ReadOnlyIndexFailureIT.doSetup(ReadOnlyIndexFailureIT.java:116)
Caused by: java.io.IOException: Shutting down
at 
org.apache.phoenix.end2end.index.ReadOnlyIndexFailureIT.doSetup(ReadOnlyIndexFailureIT.java:116)
Caused by: java.lang.RuntimeException: Master not initialized after 20ms 
seconds
at 
org.apache.phoenix.end2end.index.ReadOnlyIndexFailureIT.doSetup(ReadOnlyIndexFailureIT.java:116)

Running org.apache.phoenix.end2end.index.txn.TxWriteFailureIT
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.009 sec <<< 
FAILURE! - in org.apache.phoenix.end2end.index.txn.TxWriteFailureIT
org.apache.phoenix.end2end.index.txn.TxWriteFailureIT  Time elapsed: 0.008 sec  
<<< ERROR!
java.lang.RuntimeException: java.io.IOException: Shutting down
at 
org.apache.phoenix.end2end.index.txn.TxWriteFailureIT.doSetup(TxWriteFailureIT.java:86)
Caused by: java.io.IOException: Shutting down
at 
org.apache.phoenix.end2end.index.txn.TxWriteFailureIT.doSetup(TxWriteFailureIT.java:86)
Caused by: java.lang.RuntimeException: Master not initialized after 20ms 
seconds
at 
org.apache.phoenix.end2end.index.txn.TxWriteFailureIT.doSetup(TxWriteFailureIT.java:86)

Running org.apache.phoenix.execute.PartialCommitIT
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.008 sec <<< 
FAILURE! - in org.apache.phoenix.execute.PartialCommitIT
org.apache.phoenix.execute.PartialCommitIT  Time elapsed: 0.007 sec  <<< ERROR!
java.lang.RuntimeException: java.io.IOException: Shutting down
at 

Jenkins build is back to normal : Phoenix | Master #1242

2016-06-02 Thread Apache Jenkins Server
See 



Jenkins build is back to normal : Phoenix-4.x-HBase-1.0 #485

2016-06-02 Thread Apache Jenkins Server
See 



[11/16] phoenix git commit: PHOENIX-1684 Functional Index using REGEXP_SUBSTR doesn't work correctly

2016-06-02 Thread larsh
PHOENIX-1684 Functional Index using REGEXP_SUBSTR doesn't work correctly


Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo
Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/a8b27e3f
Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/a8b27e3f
Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/a8b27e3f

Branch: refs/heads/4.x-HBase-1.x
Commit: a8b27e3f010d15d3f3b519c38fbb052ebb4a6cdb
Parents: 250474d
Author: Thomas 
Authored: Thu Mar 19 13:57:27 2015 -0700
Committer: Thomas 
Committed: Tue Mar 24 15:56:25 2015 -0700

--
 .../end2end/index/IndexExpressionIT.java| 161 ++-
 .../phoenix/compile/PostIndexDDLCompiler.java   |   4 +-
 .../parse/IndexExpressionParseNodeRewriter.java |  30 +---
 .../apache/phoenix/schema/MetaDataClient.java   |   4 +-
 .../org/apache/phoenix/util/StringUtil.java |   5 +
 .../phoenix/compile/QueryCompilerTest.java  |  22 ++-
 6 files changed, 153 insertions(+), 73 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/a8b27e3f/phoenix-core/src/it/java/org/apache/phoenix/end2end/index/IndexExpressionIT.java
--
diff --git 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/index/IndexExpressionIT.java
 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/index/IndexExpressionIT.java
index 1e3733b..0203e35 100644
--- 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/index/IndexExpressionIT.java
+++ 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/index/IndexExpressionIT.java
@@ -1202,54 +1202,60 @@ public class IndexExpressionIT extends 
BaseHBaseManagedTimeIT {
 
 @Test
 public void testViewUsesTableIndex() throws Exception {
-ResultSet rs;
 Connection conn = DriverManager.getConnection(getUrl());
-String ddl = "CREATE TABLE t (k1 INTEGER NOT NULL, k2 INTEGER NOT 
NULL, s1 VARCHAR, s2 VARCHAR, s3 VARCHAR, s4 VARCHAR CONSTRAINT pk PRIMARY KEY 
(k1, k2))";
-conn.createStatement().execute(ddl);
-conn.createStatement().execute("CREATE INDEX i1 ON t(k2, s2, s3, s1)");
-conn.createStatement().execute("CREATE INDEX i2 ON t(k2, s2||'_'||s3, 
s1, s4)");
-
-ddl = "CREATE VIEW v AS SELECT * FROM t WHERE s1 = 'foo'";
-conn.createStatement().execute(ddl);
-conn.createStatement().execute("UPSERT INTO t 
VALUES(1,1,'foo','abc','cab')");
-conn.createStatement().execute("UPSERT INTO t 
VALUES(2,2,'bar','xyz','zyx')");
-conn.commit();
-
-rs = conn.createStatement().executeQuery("SELECT count(*) FROM v");
-assertTrue(rs.next());
-assertEquals(1, rs.getLong(1));
-assertFalse(rs.next());
-
-//i2 should be used since it contains s3||'_'||s4 i
-String query = "SELECT s2||'_'||s3 FROM v WHERE k2=1 AND 
(s2||'_'||s3)='abc_cab'";
-rs = conn.createStatement(  ).executeQuery("EXPLAIN " + query);
-String queryPlan = QueryUtil.getExplainPlan(rs);
-assertEquals(
-"CLIENT PARALLEL 1-WAY RANGE SCAN OVER I2 
[1,'abc_cab','foo']\n" + 
-"SERVER FILTER BY FIRST KEY ONLY", queryPlan);
-rs = conn.createStatement().executeQuery(query);
-assertTrue(rs.next());
-assertEquals("abc_cab", rs.getString(1));
-assertFalse(rs.next());
-
-conn.createStatement().execute("ALTER VIEW v DROP COLUMN s4");
-//i2 cannot be used since s4 has been dropped from the view, so i1 
will be used 
-rs = conn.createStatement().executeQuery("EXPLAIN " + query);
-queryPlan = QueryUtil.getExplainPlan(rs);
-assertEquals(
-"CLIENT PARALLEL 1-WAY RANGE SCAN OVER I1 [1]\n" + 
-"SERVER FILTER BY FIRST KEY ONLY AND ((\"S2\" || '_' || 
\"S3\") = 'abc_cab' AND \"S1\" = 'foo')", queryPlan);
-rs = conn.createStatement().executeQuery(query);
-assertTrue(rs.next());
-assertEquals("abc_cab", rs.getString(1));
-assertFalse(rs.next());
+try 
+{
+   ResultSet rs;
+   String ddl = "CREATE TABLE t (k1 INTEGER NOT NULL, k2 INTEGER 
NOT NULL, s1 VARCHAR, s2 VARCHAR, s3 VARCHAR, s4 VARCHAR CONSTRAINT pk PRIMARY 
KEY (k1, k2))";
+   conn.createStatement().execute(ddl);
+   conn.createStatement().execute("CREATE INDEX i1 ON t(k2, s2, 
s3, s1)");
+   conn.createStatement().execute("CREATE INDEX i2 ON t(k2, 
s2||'_'||s3, s1, s4)");
+   
+   ddl = "CREATE VIEW v AS SELECT * FROM t WHERE s1 = 'foo'";
+   conn.createStatement().execute(ddl);
+   conn.createStatement().execute("UPSERT INTO t 
VALUES(1,1,'foo','abc','cab')");
+

[05/16] phoenix git commit: PHOENIX-1753 Query with RVC that doesn't lead with the row key can return incorrect results

2016-06-02 Thread larsh
PHOENIX-1753 Query with RVC that doesn't lead with the row key can return 
incorrect results


Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo
Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/e06ceaf4
Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/e06ceaf4
Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/e06ceaf4

Branch: refs/heads/4.x-HBase-1.x
Commit: e06ceaf455642d92b500d0e4edc343a3342a0d93
Parents: 4bc162d
Author: James Taylor 
Authored: Thu Mar 19 18:54:57 2015 -0700
Committer: James Taylor 
Committed: Sat Mar 21 11:13:24 2015 -0700

--
 .../phoenix/end2end/RowValueConstructorIT.java  | 33 +++-
 .../apache/phoenix/compile/WhereOptimizer.java  |  4 +++
 .../phoenix/compile/WhereOptimizerTest.java | 16 ++
 3 files changed, 52 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/e06ceaf4/phoenix-core/src/it/java/org/apache/phoenix/end2end/RowValueConstructorIT.java
--
diff --git 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/RowValueConstructorIT.java
 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/RowValueConstructorIT.java
index 8d67fa4..3859785 100644
--- 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/RowValueConstructorIT.java
+++ 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/RowValueConstructorIT.java
@@ -1362,6 +1362,37 @@ public class RowValueConstructorIT extends 
BaseClientManagedTimeIT {
 conn.close();
 }
 
-
+@Test
+public void testRVCWithRowKeyNotLeading() throws Exception {
+String ddl = "CREATE TABLE sorttest4 (rownum BIGINT primary key, name 
varchar(16), age integer)";
+Connection conn = nextConnection(getUrl());
+conn.createStatement().execute(ddl);
+conn.close();
+conn = nextConnection(getUrl());
+String dml = "UPSERT INTO sorttest4 (rownum, name, age) values (?, ?, 
?)";
+PreparedStatement stmt = conn.prepareStatement(dml);
+stmt.setInt(1, 1);
+stmt.setString(2, "A");
+stmt.setInt(3, 1);
+stmt.executeUpdate();
+stmt.setInt(1, 2);
+stmt.setString(2, "B");
+stmt.setInt(3, 2);
+stmt.executeUpdate();
+conn.commit();
+conn.close();
+// the below query should only return one record -> (1, "A", 1)
+String query = "SELECT rownum, name, age FROM sorttest4 where (age, 
rownum) < (2, 2)";
+conn = nextConnection(getUrl());
+ResultSet rs = conn.createStatement().executeQuery(query);
+int numRecords = 0;
+while (rs.next()) {
+assertEquals(1, rs.getInt(1));
+assertEquals("A", rs.getString(2));
+assertEquals(1, rs.getInt(3));
+numRecords++;
+}
+assertEquals(1, numRecords);
+}
 
 }

http://git-wip-us.apache.org/repos/asf/phoenix/blob/e06ceaf4/phoenix-core/src/main/java/org/apache/phoenix/compile/WhereOptimizer.java
--
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/compile/WhereOptimizer.java 
b/phoenix-core/src/main/java/org/apache/phoenix/compile/WhereOptimizer.java
index 713076e..b03793d 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/compile/WhereOptimizer.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/compile/WhereOptimizer.java
@@ -542,6 +542,10 @@ public class WhereOptimizer {
 int span = position - initialPosition;
 return new SingleKeySlot(new 
RowValueConstructorKeyPart(table.getPKColumns().get(initialPosition), rvc, 
span, childSlots), initialPosition, span, EVERYTHING_RANGES);
 }
+// If we don't clear the child list, we end up passing some of
+// the child expressions of previous matches up the tree, causing
+// those expressions to form the scan start/stop key. PHOENIX-1753
+childSlots.clear();
 return null;
 }
 

http://git-wip-us.apache.org/repos/asf/phoenix/blob/e06ceaf4/phoenix-core/src/test/java/org/apache/phoenix/compile/WhereOptimizerTest.java
--
diff --git 
a/phoenix-core/src/test/java/org/apache/phoenix/compile/WhereOptimizerTest.java 
b/phoenix-core/src/test/java/org/apache/phoenix/compile/WhereOptimizerTest.java
index 0ec6b45..94b25d0 100644
--- 
a/phoenix-core/src/test/java/org/apache/phoenix/compile/WhereOptimizerTest.java
+++ 
b/phoenix-core/src/test/java/org/apache/phoenix/compile/WhereOptimizerTest.java
@@ -1275,6 +1275,22 @@ public class WhereOptimizerTest extends 
BaseConnectionlessQueryTest {
 }
 
 @Test
+public void 

[13/16] phoenix git commit: PHOENIX-258 minor test fixes.

2016-06-02 Thread larsh
PHOENIX-258 minor test fixes.


Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo
Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/da39bd4e
Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/da39bd4e
Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/da39bd4e

Branch: refs/heads/4.x-HBase-0.98
Commit: da39bd4e6a1b8fcc9ac813593a8e907d83a8b0e2
Parents: 0032a3d
Author: Lars Hofhansl 
Authored: Thu Jun 2 13:20:48 2016 -0700
Committer: Lars Hofhansl 
Committed: Thu Jun 2 13:20:48 2016 -0700

--
 .../it/java/org/apache/phoenix/end2end/SortMergeJoinMoreIT.java  | 4 
 .../java/org/apache/phoenix/end2end/index/IndexExpressionIT.java | 2 +-
 2 files changed, 5 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/da39bd4e/phoenix-core/src/it/java/org/apache/phoenix/end2end/SortMergeJoinMoreIT.java
--
diff --git 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/SortMergeJoinMoreIT.java 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/SortMergeJoinMoreIT.java
index c36b24d..8ede6ae 100644
--- 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/SortMergeJoinMoreIT.java
+++ 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/SortMergeJoinMoreIT.java
@@ -444,12 +444,14 @@ public class SortMergeJoinMoreIT extends 
BaseHBaseManagedTimeIT {
 "SORT-MERGE-JOIN (INNER) TABLES\n" +
 "CLIENT PARALLEL 2-WAY SKIP SCAN ON 2 RANGES OVER 
EVENT_COUNT [0,'5SEC',~14629935200,'Tr/Bal'] - 
[1,'5SEC',~14629934200,'Tr/Bal']\n" +
 "SERVER FILTER BY FIRST KEY ONLY\n" +
+"SERVER DISTINCT PREFIX FILTER OVER [BUCKET, 
TIMESTAMP, LOCATION]\n" +
 "SERVER AGGREGATE INTO ORDERED DISTINCT ROWS 
BY [BUCKET, TIMESTAMP, LOCATION]\n" +
 "CLIENT MERGE SORT\n" +
 "CLIENT SORTED BY [BUCKET, TIMESTAMP]\n" +
 "AND (SKIP MERGE)\n" +
 "CLIENT PARALLEL 2-WAY SKIP SCAN ON 2 RANGES OVER 
" + t[i] + " [0,'5SEC',~14629935200,'Tr/Bal'] - 
[1,'5SEC',~14629934200,'Tr/Bal']\n" +
 "SERVER FILTER BY FIRST KEY ONLY AND 
SRC_LOCATION = DST_LOCATION\n" +
+"SERVER DISTINCT PREFIX FILTER OVER [BUCKET, 
TIMESTAMP, SRC_LOCATION, DST_LOCATION]\n" +
 "SERVER AGGREGATE INTO ORDERED DISTINCT ROWS 
BY [BUCKET, TIMESTAMP, SRC_LOCATION, DST_LOCATION]\n" +
 "CLIENT MERGE SORT\n" +
 "CLIENT SORTED BY [BUCKET, TIMESTAMP]\n" +
@@ -459,12 +461,14 @@ public class SortMergeJoinMoreIT extends 
BaseHBaseManagedTimeIT {
 "SORT-MERGE-JOIN (INNER) TABLES\n" +
 "CLIENT PARALLEL 2-WAY SKIP SCAN ON 2 RANGES OVER 
EVENT_COUNT [0,'5SEC',~14629935200,'Tr/Bal'] - 
[1,'5SEC',~14629934200,'Tr/Bal']\n" +
 "SERVER FILTER BY FIRST KEY ONLY\n" +
+"SERVER DISTINCT PREFIX FILTER OVER [BUCKET, 
TIMESTAMP, LOCATION]\n" +
 "SERVER AGGREGATE INTO ORDERED DISTINCT ROWS 
BY [BUCKET, TIMESTAMP, LOCATION]\n" +
 "CLIENT MERGE SORT\n" +
 "CLIENT SORTED BY [BUCKET, TIMESTAMP]\n" +
 "AND (SKIP MERGE)\n" +
 "CLIENT PARALLEL 2-WAY SKIP SCAN ON 2 RANGES OVER 
" + t[i] + " [0,'5SEC',14629934201,'Tr/Bal'] - 
[1,'5SEC',14629935200,'Tr/Bal']\n" +
 "SERVER FILTER BY FIRST KEY ONLY AND 
SRC_LOCATION = DST_LOCATION\n" +
+"SERVER DISTINCT PREFIX FILTER OVER [BUCKET, 
TIMESTAMP, SRC_LOCATION, DST_LOCATION]\n" +
 "SERVER AGGREGATE INTO ORDERED DISTINCT ROWS 
BY [BUCKET, TIMESTAMP, SRC_LOCATION, DST_LOCATION]\n" +
 "CLIENT MERGE SORT\n" +
 "CLIENT SORTED BY [E.BUCKET, E.TIMESTAMP]\n" +

http://git-wip-us.apache.org/repos/asf/phoenix/blob/da39bd4e/phoenix-core/src/it/java/org/apache/phoenix/end2end/index/IndexExpressionIT.java
--
diff --git 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/index/IndexExpressionIT.java
 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/index/IndexExpressionIT.java
index 5b513d0..cecaf50 100644
--- 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/index/IndexExpressionIT.java
+++ 

[03/16] phoenix git commit: PHOENIX-1642 Make Phoenix Master Branch pointing to HBase1.0.0

2016-06-02 Thread larsh
PHOENIX-1642 Make Phoenix Master Branch pointing to HBase1.0.0

Conflicts:

phoenix-core/src/main/java/org/apache/phoenix/hbase/index/covered/update/ColumnReference.java


Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo
Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/a29e163f
Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/a29e163f
Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/a29e163f

Branch: refs/heads/4.x-HBase-1.x
Commit: a29e163fcdf3ec06c98de423bfd34861af227307
Parents: 03fce01
Author: Enis Soztutar 
Authored: Thu Mar 19 12:07:16 2015 -0700
Committer: Enis Soztutar 
Committed: Thu Mar 19 13:37:21 2015 -0700

--
 phoenix-assembly/src/build/client.xml   |   4 +-
 phoenix-core/pom.xml|   4 +-
 ...ReplayWithIndexWritesAndCompressedWALIT.java |  34 ++--
 .../phoenix/end2end/index/LocalIndexIT.java |  32 ++--
 .../end2end/index/MutableIndexFailureIT.java|   6 +-
 .../index/balancer/IndexLoadBalancerIT.java |   6 +-
 .../phoenix/trace/PhoenixTraceReaderIT.java |   2 +-
 .../phoenix/trace/PhoenixTracingEndToEndIT.java |  20 +-
 .../regionserver/IndexHalfStoreFileReader.java  |  41 -
 .../IndexHalfStoreFileReaderGenerator.java  |  14 +-
 .../regionserver/IndexSplitTransaction.java |  28 +--
 .../hbase/regionserver/KeyValueSkipListSet.java | 183 +++
 .../hbase/regionserver/LocalIndexMerger.java|   4 +-
 .../hbase/regionserver/LocalIndexSplitter.java  |  29 +--
 .../apache/phoenix/compile/TraceQueryPlan.java  |  14 +-
 .../coprocessor/BaseScannerRegionObserver.java  |   4 +-
 .../apache/phoenix/execute/BaseQueryPlan.java   |   2 +-
 .../apache/phoenix/execute/MutationState.java   |   4 +-
 .../org/apache/phoenix/hbase/index/Indexer.java |  10 +-
 .../hbase/index/balancer/IndexLoadBalancer.java |   5 +
 .../hbase/index/covered/data/IndexMemStore.java |  27 +--
 .../index/covered/data/LazyValueGetter.java |   5 +-
 .../example/CoveredColumnIndexCodec.java|   6 +-
 .../filter/ApplyAndFilterDeletesFilter.java |   8 +-
 .../index/covered/update/ColumnReference.java   |  10 +-
 .../ipc/PhoenixIndexRpcSchedulerFactory.java|  19 +-
 .../index/scanner/FilteredKeyValueScanner.java  |  17 +-
 .../phoenix/hbase/index/scanner/Scanner.java|   5 +-
 .../hbase/index/scanner/ScannerBuilder.java |  10 +-
 .../hbase/index/wal/IndexedKeyValue.java|  17 --
 .../apache/phoenix/jdbc/PhoenixConnection.java  |   4 +-
 .../apache/phoenix/trace/TraceMetricSource.java |  15 +-
 .../org/apache/phoenix/trace/TraceReader.java   |   2 +-
 .../apache/phoenix/trace/TracingIterator.java   |   2 +-
 .../org/apache/phoenix/trace/TracingUtils.java  |   2 +-
 .../org/apache/phoenix/trace/util/NullSpan.java |  10 +-
 .../org/apache/phoenix/trace/util/Tracing.java  |  51 --
 .../java/org/apache/phoenix/util/IndexUtil.java |  12 +-
 .../hbase/ipc/PhoenixIndexRpcSchedulerTest.java |   4 +-
 .../PhoenixIndexRpcSchedulerFactoryTest.java|   6 +-
 .../index/covered/TestLocalTableState.java  |   8 +-
 .../index/covered/data/TestIndexMemStore.java   |   5 +-
 .../index/write/TestWALRecoveryCaching.java |  14 +-
 .../recovery/TestPerRegionIndexWriteCache.java  |  15 +-
 .../phoenix/trace/TraceMetricsSourceTest.java   |   4 +-
 phoenix-flume/pom.xml   |   4 +-
 pom.xml |  14 +-
 47 files changed, 481 insertions(+), 261 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/a29e163f/phoenix-assembly/src/build/client.xml
--
diff --git a/phoenix-assembly/src/build/client.xml 
b/phoenix-assembly/src/build/client.xml
index f674331..101ccd6 100644
--- a/phoenix-assembly/src/build/client.xml
+++ b/phoenix-assembly/src/build/client.xml
@@ -46,8 +46,8 @@
 jline:jline
 sqlline:sqlline
 org.apache.hbase:hbase*
-org.cloudera.htrace:htrace-core
-io.netty:netty
+org.apache.htrace:htrace-core
+io.netty:netty-all
 commons-codec:commons-codec
   
 

http://git-wip-us.apache.org/repos/asf/phoenix/blob/a29e163f/phoenix-core/pom.xml
--
diff --git a/phoenix-core/pom.xml b/phoenix-core/pom.xml
index a325b27..d4dc2e2 100644
--- a/phoenix-core/pom.xml
+++ b/phoenix-core/pom.xml
@@ -318,12 +318,12 @@
   test
 
 
-  org.cloudera.htrace
+  org.apache.htrace
   htrace-core
 
 
   io.netty
-  netty
+  netty-all
 
 
   commons-codec


[01/16] phoenix git commit: Changed version to 4.4.0-HBase-1.x-SNAPSHOT

2016-06-02 Thread larsh
Repository: phoenix
Updated Branches:
  refs/heads/4.0 [created] 46e99bb1b
  refs/heads/4.x-HBase-0.98 0032a3d8e -> da39bd4e6
  refs/heads/4.x-HBase-1.0 dfa3eec7a -> 65ee886fb
  refs/heads/4.x-HBase-1.1 7b252763f -> cf551d536
  refs/heads/4.x-HBase-1.x [created] 6cb6a3766
  refs/heads/master eb275a5c6 -> 7dcf95a40


Changed version to 4.4.0-HBase-1.x-SNAPSHOT


Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo
Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/03fce013
Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/03fce013
Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/03fce013

Branch: refs/heads/4.x-HBase-1.x
Commit: 03fce013c3a0c4883d3d1e9ad037d81c471ef74f
Parents: 174d0e6
Author: Enis Soztutar 
Authored: Thu Mar 19 13:34:46 2015 -0700
Committer: Enis Soztutar 
Committed: Thu Mar 19 13:34:46 2015 -0700

--
 phoenix-assembly/pom.xml | 2 +-
 phoenix-core/pom.xml | 2 +-
 phoenix-flume/pom.xml| 2 +-
 phoenix-pherf/pom.xml| 2 +-
 phoenix-pig/pom.xml  | 2 +-
 pom.xml  | 2 +-
 6 files changed, 6 insertions(+), 6 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/03fce013/phoenix-assembly/pom.xml
--
diff --git a/phoenix-assembly/pom.xml b/phoenix-assembly/pom.xml
index a887dbf..96bb16f 100644
--- a/phoenix-assembly/pom.xml
+++ b/phoenix-assembly/pom.xml
@@ -26,7 +26,7 @@
   
 org.apache.phoenix
 phoenix
-4.4.0-HBase-0.98-SNAPSHOT
+4.4.0-HBase-1.x-SNAPSHOT
   
   phoenix-assembly
   Phoenix Assembly

http://git-wip-us.apache.org/repos/asf/phoenix/blob/03fce013/phoenix-core/pom.xml
--
diff --git a/phoenix-core/pom.xml b/phoenix-core/pom.xml
index 31b7afd..a325b27 100644
--- a/phoenix-core/pom.xml
+++ b/phoenix-core/pom.xml
@@ -4,7 +4,7 @@
   
 org.apache.phoenix
 phoenix
-4.4.0-HBase-0.98-SNAPSHOT
+4.4.0-HBase-1.x-SNAPSHOT
   
   phoenix-core
   Phoenix Core

http://git-wip-us.apache.org/repos/asf/phoenix/blob/03fce013/phoenix-flume/pom.xml
--
diff --git a/phoenix-flume/pom.xml b/phoenix-flume/pom.xml
index 6e29227..af01f6b 100644
--- a/phoenix-flume/pom.xml
+++ b/phoenix-flume/pom.xml
@@ -26,7 +26,7 @@
   
 org.apache.phoenix
 phoenix
-4.4.0-HBase-0.98-SNAPSHOT
+4.4.0-HBase-1.x-SNAPSHOT
   
   phoenix-flume
   Phoenix - Flume

http://git-wip-us.apache.org/repos/asf/phoenix/blob/03fce013/phoenix-pherf/pom.xml
--
diff --git a/phoenix-pherf/pom.xml b/phoenix-pherf/pom.xml
index 26698b2..a0d521c 100644
--- a/phoenix-pherf/pom.xml
+++ b/phoenix-pherf/pom.xml
@@ -22,7 +22,7 @@
 
 org.apache.phoenix
 phoenix
-4.4.0-HBase-0.98-SNAPSHOT
+4.4.0-HBase-1.x-SNAPSHOT
 
 
 pherf

http://git-wip-us.apache.org/repos/asf/phoenix/blob/03fce013/phoenix-pig/pom.xml
--
diff --git a/phoenix-pig/pom.xml b/phoenix-pig/pom.xml
index 7a2072c..0709657 100644
--- a/phoenix-pig/pom.xml
+++ b/phoenix-pig/pom.xml
@@ -26,7 +26,7 @@
   
 org.apache.phoenix
 phoenix
-4.4.0-HBase-0.98-SNAPSHOT
+4.4.0-HBase-1.x-SNAPSHOT
   
   phoenix-pig
   Phoenix - Pig

http://git-wip-us.apache.org/repos/asf/phoenix/blob/03fce013/pom.xml
--
diff --git a/pom.xml b/pom.xml
index f8f268d..92b0ed6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -3,7 +3,7 @@
   4.0.0
   org.apache.phoenix
   phoenix
-  4.4.0-HBase-0.98-SNAPSHOT
+  4.4.0-HBase-1.x-SNAPSHOT
   pom
   Apache Phoenix
   A SQL layer over HBase



[02/16] phoenix git commit: PHOENIX-1642 Make Phoenix Master Branch pointing to HBase1.0.0

2016-06-02 Thread larsh
http://git-wip-us.apache.org/repos/asf/phoenix/blob/a29e163f/phoenix-core/src/main/java/org/apache/phoenix/trace/TracingUtils.java
--
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/trace/TracingUtils.java 
b/phoenix-core/src/main/java/org/apache/phoenix/trace/TracingUtils.java
index cee3b95..8bd918e 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/trace/TracingUtils.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/trace/TracingUtils.java
@@ -19,7 +19,7 @@ package org.apache.phoenix.trace;
 
 import org.apache.hadoop.hbase.util.Bytes;
 import org.apache.hadoop.hbase.util.Pair;
-import org.cloudera.htrace.Span;
+import org.apache.htrace.Span;
 
 /**
  * Utilities for tracing

http://git-wip-us.apache.org/repos/asf/phoenix/blob/a29e163f/phoenix-core/src/main/java/org/apache/phoenix/trace/util/NullSpan.java
--
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/trace/util/NullSpan.java 
b/phoenix-core/src/main/java/org/apache/phoenix/trace/util/NullSpan.java
index 3799fdb..b4f70b9 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/trace/util/NullSpan.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/trace/util/NullSpan.java
@@ -21,8 +21,9 @@ import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 
-import org.cloudera.htrace.Span;
-import org.cloudera.htrace.TimelineAnnotation;
+import org.apache.htrace.Span;
+import org.apache.htrace.TimelineAnnotation;
+import org.apache.phoenix.util.StringUtil;
 
 /**
  * Fake {@link Span} that doesn't save any state, in place of null 
return values, to avoid
@@ -109,4 +110,9 @@ public class NullSpan implements Span {
   public String getProcessId() {
 return null;
   }
+
+  @Override
+  public String toJson() {
+return StringUtil.EMPTY_STRING;
+  }
 }

http://git-wip-us.apache.org/repos/asf/phoenix/blob/a29e163f/phoenix-core/src/main/java/org/apache/phoenix/trace/util/Tracing.java
--
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/trace/util/Tracing.java 
b/phoenix-core/src/main/java/org/apache/phoenix/trace/util/Tracing.java
index 7cd55e8..c9add01 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/trace/util/Tracing.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/trace/util/Tracing.java
@@ -19,6 +19,7 @@ package org.apache.phoenix.trace.util;
 
 import static org.apache.phoenix.util.StringUtil.toBytes;
 
+import java.util.HashMap;
 import java.util.Map;
 import java.util.Properties;
 import java.util.concurrent.Callable;
@@ -28,20 +29,22 @@ import javax.annotation.Nullable;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.hadoop.conf.Configuration;
+import org.apache.htrace.HTraceConfiguration;
 import org.apache.phoenix.call.CallRunner;
 import org.apache.phoenix.call.CallWrapper;
 import org.apache.phoenix.jdbc.PhoenixConnection;
+import org.apache.phoenix.parse.TraceStatement;
 import org.apache.phoenix.query.QueryServices;
 import org.apache.phoenix.query.QueryServicesOptions;
 import org.apache.phoenix.trace.TraceMetricSource;
-import org.cloudera.htrace.Sampler;
-import org.cloudera.htrace.Span;
-import org.cloudera.htrace.Trace;
-import org.cloudera.htrace.TraceScope;
-import org.cloudera.htrace.Tracer;
-import org.cloudera.htrace.impl.ProbabilitySampler;
-import org.cloudera.htrace.wrappers.TraceCallable;
-import org.cloudera.htrace.wrappers.TraceRunnable;
+import org.apache.htrace.Sampler;
+import org.apache.htrace.Span;
+import org.apache.htrace.Trace;
+import org.apache.htrace.TraceScope;
+import org.apache.htrace.Tracer;
+import org.apache.htrace.impl.ProbabilitySampler;
+import org.apache.htrace.wrappers.TraceCallable;
+import org.apache.htrace.wrappers.TraceRunnable;
 
 import com.google.common.base.Function;
 import com.google.common.base.Preconditions;
@@ -58,10 +61,10 @@ public class Tracing {
 // Constants for tracing across the wire
 public static final String TRACE_ID_ATTRIBUTE_KEY = 
"phoenix.trace.traceid";
 public static final String SPAN_ID_ATTRIBUTE_KEY = "phoenix.trace.spanid";
-
+
 // Constants for passing into the metrics system
 private static final String TRACE_METRIC_PREFIX = "phoenix.trace.instance";
-
+
 /**
  * Manage the types of frequencies that we support. By default, we never 
turn on tracing.
  */
@@ -110,11 +113,12 @@ public class Tracing {
 private static Function 
CREATE_PROBABILITY =
 new Function() {
 @Override
-public Sampler apply(ConfigurationAdapter conn) {
+public Sampler apply(ConfigurationAdapter conf) {
 // get the connection properties for the probability 
information
- 

[15/16] phoenix git commit: PHOENIX-258 minor test fixes.

2016-06-02 Thread larsh
PHOENIX-258 minor test fixes.


Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo
Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/cf551d53
Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/cf551d53
Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/cf551d53

Branch: refs/heads/4.x-HBase-1.1
Commit: cf551d5368ae557004ffe65bc09e930b8bf3e423
Parents: 7b25276
Author: Lars Hofhansl 
Authored: Thu Jun 2 13:20:48 2016 -0700
Committer: Lars Hofhansl 
Committed: Thu Jun 2 13:21:54 2016 -0700

--
 .../it/java/org/apache/phoenix/end2end/SortMergeJoinMoreIT.java  | 4 
 .../java/org/apache/phoenix/end2end/index/IndexExpressionIT.java | 2 +-
 2 files changed, 5 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/cf551d53/phoenix-core/src/it/java/org/apache/phoenix/end2end/SortMergeJoinMoreIT.java
--
diff --git 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/SortMergeJoinMoreIT.java 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/SortMergeJoinMoreIT.java
index c36b24d..8ede6ae 100644
--- 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/SortMergeJoinMoreIT.java
+++ 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/SortMergeJoinMoreIT.java
@@ -444,12 +444,14 @@ public class SortMergeJoinMoreIT extends 
BaseHBaseManagedTimeIT {
 "SORT-MERGE-JOIN (INNER) TABLES\n" +
 "CLIENT PARALLEL 2-WAY SKIP SCAN ON 2 RANGES OVER 
EVENT_COUNT [0,'5SEC',~14629935200,'Tr/Bal'] - 
[1,'5SEC',~14629934200,'Tr/Bal']\n" +
 "SERVER FILTER BY FIRST KEY ONLY\n" +
+"SERVER DISTINCT PREFIX FILTER OVER [BUCKET, 
TIMESTAMP, LOCATION]\n" +
 "SERVER AGGREGATE INTO ORDERED DISTINCT ROWS 
BY [BUCKET, TIMESTAMP, LOCATION]\n" +
 "CLIENT MERGE SORT\n" +
 "CLIENT SORTED BY [BUCKET, TIMESTAMP]\n" +
 "AND (SKIP MERGE)\n" +
 "CLIENT PARALLEL 2-WAY SKIP SCAN ON 2 RANGES OVER 
" + t[i] + " [0,'5SEC',~14629935200,'Tr/Bal'] - 
[1,'5SEC',~14629934200,'Tr/Bal']\n" +
 "SERVER FILTER BY FIRST KEY ONLY AND 
SRC_LOCATION = DST_LOCATION\n" +
+"SERVER DISTINCT PREFIX FILTER OVER [BUCKET, 
TIMESTAMP, SRC_LOCATION, DST_LOCATION]\n" +
 "SERVER AGGREGATE INTO ORDERED DISTINCT ROWS 
BY [BUCKET, TIMESTAMP, SRC_LOCATION, DST_LOCATION]\n" +
 "CLIENT MERGE SORT\n" +
 "CLIENT SORTED BY [BUCKET, TIMESTAMP]\n" +
@@ -459,12 +461,14 @@ public class SortMergeJoinMoreIT extends 
BaseHBaseManagedTimeIT {
 "SORT-MERGE-JOIN (INNER) TABLES\n" +
 "CLIENT PARALLEL 2-WAY SKIP SCAN ON 2 RANGES OVER 
EVENT_COUNT [0,'5SEC',~14629935200,'Tr/Bal'] - 
[1,'5SEC',~14629934200,'Tr/Bal']\n" +
 "SERVER FILTER BY FIRST KEY ONLY\n" +
+"SERVER DISTINCT PREFIX FILTER OVER [BUCKET, 
TIMESTAMP, LOCATION]\n" +
 "SERVER AGGREGATE INTO ORDERED DISTINCT ROWS 
BY [BUCKET, TIMESTAMP, LOCATION]\n" +
 "CLIENT MERGE SORT\n" +
 "CLIENT SORTED BY [BUCKET, TIMESTAMP]\n" +
 "AND (SKIP MERGE)\n" +
 "CLIENT PARALLEL 2-WAY SKIP SCAN ON 2 RANGES OVER 
" + t[i] + " [0,'5SEC',14629934201,'Tr/Bal'] - 
[1,'5SEC',14629935200,'Tr/Bal']\n" +
 "SERVER FILTER BY FIRST KEY ONLY AND 
SRC_LOCATION = DST_LOCATION\n" +
+"SERVER DISTINCT PREFIX FILTER OVER [BUCKET, 
TIMESTAMP, SRC_LOCATION, DST_LOCATION]\n" +
 "SERVER AGGREGATE INTO ORDERED DISTINCT ROWS 
BY [BUCKET, TIMESTAMP, SRC_LOCATION, DST_LOCATION]\n" +
 "CLIENT MERGE SORT\n" +
 "CLIENT SORTED BY [E.BUCKET, E.TIMESTAMP]\n" +

http://git-wip-us.apache.org/repos/asf/phoenix/blob/cf551d53/phoenix-core/src/it/java/org/apache/phoenix/end2end/index/IndexExpressionIT.java
--
diff --git 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/index/IndexExpressionIT.java
 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/index/IndexExpressionIT.java
index 5b513d0..cecaf50 100644
--- 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/index/IndexExpressionIT.java
+++ 

[16/16] phoenix git commit: PHOENIX-258 minor test fixes.

2016-06-02 Thread larsh
PHOENIX-258 minor test fixes.


Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo
Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/7dcf95a4
Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/7dcf95a4
Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/7dcf95a4

Branch: refs/heads/master
Commit: 7dcf95a40063a25917a68c56c68fe61a11a4ef8b
Parents: eb275a5
Author: Lars Hofhansl 
Authored: Thu Jun 2 13:20:48 2016 -0700
Committer: Lars Hofhansl 
Committed: Thu Jun 2 13:22:07 2016 -0700

--
 .../it/java/org/apache/phoenix/end2end/SortMergeJoinMoreIT.java  | 4 
 .../java/org/apache/phoenix/end2end/index/IndexExpressionIT.java | 2 +-
 2 files changed, 5 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/7dcf95a4/phoenix-core/src/it/java/org/apache/phoenix/end2end/SortMergeJoinMoreIT.java
--
diff --git 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/SortMergeJoinMoreIT.java 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/SortMergeJoinMoreIT.java
index c36b24d..8ede6ae 100644
--- 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/SortMergeJoinMoreIT.java
+++ 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/SortMergeJoinMoreIT.java
@@ -444,12 +444,14 @@ public class SortMergeJoinMoreIT extends 
BaseHBaseManagedTimeIT {
 "SORT-MERGE-JOIN (INNER) TABLES\n" +
 "CLIENT PARALLEL 2-WAY SKIP SCAN ON 2 RANGES OVER 
EVENT_COUNT [0,'5SEC',~14629935200,'Tr/Bal'] - 
[1,'5SEC',~14629934200,'Tr/Bal']\n" +
 "SERVER FILTER BY FIRST KEY ONLY\n" +
+"SERVER DISTINCT PREFIX FILTER OVER [BUCKET, 
TIMESTAMP, LOCATION]\n" +
 "SERVER AGGREGATE INTO ORDERED DISTINCT ROWS 
BY [BUCKET, TIMESTAMP, LOCATION]\n" +
 "CLIENT MERGE SORT\n" +
 "CLIENT SORTED BY [BUCKET, TIMESTAMP]\n" +
 "AND (SKIP MERGE)\n" +
 "CLIENT PARALLEL 2-WAY SKIP SCAN ON 2 RANGES OVER 
" + t[i] + " [0,'5SEC',~14629935200,'Tr/Bal'] - 
[1,'5SEC',~14629934200,'Tr/Bal']\n" +
 "SERVER FILTER BY FIRST KEY ONLY AND 
SRC_LOCATION = DST_LOCATION\n" +
+"SERVER DISTINCT PREFIX FILTER OVER [BUCKET, 
TIMESTAMP, SRC_LOCATION, DST_LOCATION]\n" +
 "SERVER AGGREGATE INTO ORDERED DISTINCT ROWS 
BY [BUCKET, TIMESTAMP, SRC_LOCATION, DST_LOCATION]\n" +
 "CLIENT MERGE SORT\n" +
 "CLIENT SORTED BY [BUCKET, TIMESTAMP]\n" +
@@ -459,12 +461,14 @@ public class SortMergeJoinMoreIT extends 
BaseHBaseManagedTimeIT {
 "SORT-MERGE-JOIN (INNER) TABLES\n" +
 "CLIENT PARALLEL 2-WAY SKIP SCAN ON 2 RANGES OVER 
EVENT_COUNT [0,'5SEC',~14629935200,'Tr/Bal'] - 
[1,'5SEC',~14629934200,'Tr/Bal']\n" +
 "SERVER FILTER BY FIRST KEY ONLY\n" +
+"SERVER DISTINCT PREFIX FILTER OVER [BUCKET, 
TIMESTAMP, LOCATION]\n" +
 "SERVER AGGREGATE INTO ORDERED DISTINCT ROWS 
BY [BUCKET, TIMESTAMP, LOCATION]\n" +
 "CLIENT MERGE SORT\n" +
 "CLIENT SORTED BY [BUCKET, TIMESTAMP]\n" +
 "AND (SKIP MERGE)\n" +
 "CLIENT PARALLEL 2-WAY SKIP SCAN ON 2 RANGES OVER 
" + t[i] + " [0,'5SEC',14629934201,'Tr/Bal'] - 
[1,'5SEC',14629935200,'Tr/Bal']\n" +
 "SERVER FILTER BY FIRST KEY ONLY AND 
SRC_LOCATION = DST_LOCATION\n" +
+"SERVER DISTINCT PREFIX FILTER OVER [BUCKET, 
TIMESTAMP, SRC_LOCATION, DST_LOCATION]\n" +
 "SERVER AGGREGATE INTO ORDERED DISTINCT ROWS 
BY [BUCKET, TIMESTAMP, SRC_LOCATION, DST_LOCATION]\n" +
 "CLIENT MERGE SORT\n" +
 "CLIENT SORTED BY [E.BUCKET, E.TIMESTAMP]\n" +

http://git-wip-us.apache.org/repos/asf/phoenix/blob/7dcf95a4/phoenix-core/src/it/java/org/apache/phoenix/end2end/index/IndexExpressionIT.java
--
diff --git 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/index/IndexExpressionIT.java
 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/index/IndexExpressionIT.java
index 9cfd9ab..2e55594 100644
--- 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/index/IndexExpressionIT.java
+++ 

[06/16] phoenix git commit: PHOENIX-1746 Pass through guidepost config params on UPDATE STATISTICS call

2016-06-02 Thread larsh
PHOENIX-1746 Pass through guidepost config params on UPDATE STATISTICS call


Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo
Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/096586e6
Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/096586e6
Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/096586e6

Branch: refs/heads/4.x-HBase-1.x
Commit: 096586e65e2779433bf30c30e97f78ae2316365e
Parents: e06ceaf
Author: James Taylor 
Authored: Mon Mar 23 10:28:23 2015 -0700
Committer: James Taylor 
Committed: Mon Mar 23 10:29:29 2015 -0700

--
 .../StatsCollectorWithSplitsAndMultiCFIT.java   |  6 ++
 phoenix-core/src/main/antlr3/PhoenixSQL.g   |  4 ++--
 .../coprocessor/BaseScannerRegionObserver.java  |  6 --
 .../UngroupedAggregateRegionObserver.java   |  4 +++-
 .../apache/phoenix/jdbc/PhoenixStatement.java   |  9 +
 .../apache/phoenix/parse/ParseNodeFactory.java  |  4 ++--
 .../parse/UpdateStatisticsStatement.java| 11 +-
 .../apache/phoenix/schema/MetaDataClient.java   | 19 ++
 .../schema/stats/StatisticsCollector.java   | 21 +++-
 9 files changed, 63 insertions(+), 21 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/096586e6/phoenix-core/src/it/java/org/apache/phoenix/end2end/StatsCollectorWithSplitsAndMultiCFIT.java
--
diff --git 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/StatsCollectorWithSplitsAndMultiCFIT.java
 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/StatsCollectorWithSplitsAndMultiCFIT.java
index c34d598..bcb3a0a 100644
--- 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/StatsCollectorWithSplitsAndMultiCFIT.java
+++ 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/StatsCollectorWithSplitsAndMultiCFIT.java
@@ -136,6 +136,12 @@ public class StatsCollectorWithSplitsAndMultiCFIT extends 
StatsCollectorAbstract
 assertRowCountAndByteCount(info, rowCountArr[i], byteCountArr[i]);
 i++;
 }
+
+TestUtil.analyzeTable(conn, STATS_TEST_TABLE_NAME_NEW);
+String query = "UPDATE STATISTICS " + STATS_TEST_TABLE_NAME_NEW + " 
SET \"" + QueryServices.STATS_GUIDEPOST_WIDTH_BYTES_ATTRIB + "\"=" + 
Long.toString(2000);
+conn.createStatement().execute(query);
+keyRanges = getAllSplits(conn, STATS_TEST_TABLE_NAME_NEW);
+assertEquals(6, keyRanges.size());
 }
 
 protected void assertRowCountAndByteCount(GuidePostsInfo info, long 
rowCount, long byteCount) {

http://git-wip-us.apache.org/repos/asf/phoenix/blob/096586e6/phoenix-core/src/main/antlr3/PhoenixSQL.g
--
diff --git a/phoenix-core/src/main/antlr3/PhoenixSQL.g 
b/phoenix-core/src/main/antlr3/PhoenixSQL.g
index 6a2e3b9..0330a39 100644
--- a/phoenix-core/src/main/antlr3/PhoenixSQL.g
+++ b/phoenix-core/src/main/antlr3/PhoenixSQL.g
@@ -520,8 +520,8 @@ alter_table_node returns [AlterTableStatement ret]
 ;
 
 update_statistics_node returns [UpdateStatisticsStatement ret]
-   :   UPDATE STATISTICS t=from_table_name (s=INDEX | s=ALL | s=COLUMNS)?
-   {ret = factory.updateStatistics(factory.namedTable(null, t), s 
== null ? StatisticsCollectionScope.getDefault() : 
StatisticsCollectionScope.valueOf(SchemaUtil.normalizeIdentifier(s.getText(;}
+   :   UPDATE STATISTICS t=from_table_name (s=INDEX | s=ALL | s=COLUMNS)? 
(SET (p=properties))?
+   {ret = factory.updateStatistics(factory.namedTable(null, t), s 
== null ? StatisticsCollectionScope.getDefault() : 
StatisticsCollectionScope.valueOf(SchemaUtil.normalizeIdentifier(s.getText())), 
p);}
;
 
 prop_name returns [String ret]

http://git-wip-us.apache.org/repos/asf/phoenix/blob/096586e6/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/BaseScannerRegionObserver.java
--
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/BaseScannerRegionObserver.java
 
b/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/BaseScannerRegionObserver.java
index c3988a0..a2269b4 100644
--- 
a/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/BaseScannerRegionObserver.java
+++ 
b/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/BaseScannerRegionObserver.java
@@ -38,6 +38,8 @@ import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
 import org.apache.hadoop.hbase.regionserver.HRegion;
 import org.apache.hadoop.hbase.regionserver.RegionScanner;
 import org.apache.hadoop.hbase.util.Bytes;
+import org.apache.htrace.Span;
+import org.apache.htrace.Trace;
 import org.apache.phoenix.execute.TupleProjector;
 import 

[04/16] phoenix git commit: PHOENIX-1703 Fail connection when server minor version is less than client minor version

2016-06-02 Thread larsh
PHOENIX-1703 Fail connection when server minor version is less than client 
minor version


Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo
Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/4bc162d8
Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/4bc162d8
Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/4bc162d8

Branch: refs/heads/4.x-HBase-1.x
Commit: 4bc162d8f254d01bfff71d429a124e5c2d146054
Parents: a29e163
Author: James Taylor 
Authored: Thu Mar 19 22:23:20 2015 -0700
Committer: James Taylor 
Committed: Sat Mar 21 11:10:04 2015 -0700

--
 .../org/apache/phoenix/util/MetaDataUtil.java   | 22 +---
 .../apache/phoenix/util/MetaDataUtilTest.java   | 18 +---
 2 files changed, 24 insertions(+), 16 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/4bc162d8/phoenix-core/src/main/java/org/apache/phoenix/util/MetaDataUtil.java
--
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/util/MetaDataUtil.java 
b/phoenix-core/src/main/java/org/apache/phoenix/util/MetaDataUtil.java
index c1aa2cc..f916f5b 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/util/MetaDataUtil.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/util/MetaDataUtil.java
@@ -49,16 +49,16 @@ import org.apache.phoenix.hbase.index.util.VersionUtil;
 import org.apache.phoenix.jdbc.PhoenixConnection;
 import org.apache.phoenix.jdbc.PhoenixDatabaseMetaData;
 import org.apache.phoenix.query.QueryConstants;
-import org.apache.phoenix.schema.types.PBoolean;
-import org.apache.phoenix.schema.types.PDataType;
-import org.apache.phoenix.schema.types.PLong;
 import org.apache.phoenix.schema.PName;
-import org.apache.phoenix.schema.types.PSmallint;
 import org.apache.phoenix.schema.PTable;
 import org.apache.phoenix.schema.PTableType;
 import org.apache.phoenix.schema.SequenceKey;
 import org.apache.phoenix.schema.SortOrder;
 import org.apache.phoenix.schema.TableNotFoundException;
+import org.apache.phoenix.schema.types.PBoolean;
+import org.apache.phoenix.schema.types.PDataType;
+import org.apache.phoenix.schema.types.PLong;
+import org.apache.phoenix.schema.types.PSmallint;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -79,21 +79,22 @@ public class MetaDataUtil {
 public static final String PARENT_TABLE_KEY = "PARENT_TABLE";
 public static final byte[] PARENT_TABLE_KEY_BYTES = 
Bytes.toBytes("PARENT_TABLE");
 
-public static boolean areClientAndServerCompatible(long version) {
+public static boolean areClientAndServerCompatible(long 
serverHBaseAndPhoenixVersion) {
 // As of 3.0, we allow a client and server to differ for the minor 
version.
 // Care has to be taken to upgrade the server before the client, as 
otherwise
 // the client may call expressions that don't yet exist on the server.
 // Differing by the patch version has always been allowed.
 // Only differing by the major version is not allowed.
-return 
areClientAndServerCompatible(MetaDataUtil.decodePhoenixVersion(version), 
MetaDataProtocol.PHOENIX_MAJOR_VERSION);
+return 
areClientAndServerCompatible(MetaDataUtil.decodePhoenixVersion(serverHBaseAndPhoenixVersion),
 MetaDataProtocol.PHOENIX_MAJOR_VERSION, 
MetaDataProtocol.PHOENIX_MINOR_VERSION);
 }
 
 // Default scope for testing
-static boolean areClientAndServerCompatible(int version, int pMajor) {
+static boolean areClientAndServerCompatible(int serverVersion, int 
clientMajorVersion, int clientMinorVersion) {
 // A server and client with the same major and minor version number 
must be compatible.
 // So it's important that we roll the PHOENIX_MAJOR_VERSION or 
PHOENIX_MINOR_VERSION
 // when we make an incompatible change.
-return VersionUtil.encodeMaxMinorVersion(pMajor) >= version && 
VersionUtil.encodeMinMinorVersion(pMajor) <= version;
+return VersionUtil.encodeMinPatchVersion(clientMajorVersion, 
clientMinorVersion) <= serverVersion && // Minor major and minor cannot be 
ahead of server
+VersionUtil.encodeMaxMinorVersion(clientMajorVersion) >= 
serverVersion; // Major version must at least be up to server version
 }
 
 // Given the encoded integer representing the phoenix version in the 
encoded version value.
@@ -129,6 +130,11 @@ public class MetaDataUtil {
 return major + "." + minor + "." + patch;
 }
 
+public static int encodePhoenixVersion() {
+return 
VersionUtil.encodeVersion(MetaDataProtocol.PHOENIX_MAJOR_VERSION, 
MetaDataProtocol.PHOENIX_MINOR_VERSION,
+MetaDataProtocol.PHOENIX_PATCH_NUMBER);
+}
+
 public static long 

[12/16] phoenix git commit: PHOENIX-1756 Add Month() and Second() buildin functions(Alicia Ying Shu)

2016-06-02 Thread larsh
PHOENIX-1756 Add Month() and Second() buildin functions(Alicia Ying Shu)


Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo
Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/6cb6a376
Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/6cb6a376
Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/6cb6a376

Branch: refs/heads/4.x-HBase-1.x
Commit: 6cb6a3766ca3b37ea6d410979d97d6daf7bdd10a
Parents: a8b27e3
Author: Rajeshbabu Chintaguntla 
Authored: Thu Mar 26 00:40:50 2015 +0530
Committer: Rajeshbabu Chintaguntla 
Committed: Thu Mar 26 00:40:50 2015 +0530

--
 .../end2end/YearMonthSecondFunctionIT.java  | 48 ++-
 .../phoenix/expression/ExpressionType.java  |  8 +-
 .../expression/function/MonthFunction.java  | 83 
 .../expression/function/SecondFunction.java | 81 +++
 4 files changed, 217 insertions(+), 3 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/6cb6a376/phoenix-core/src/it/java/org/apache/phoenix/end2end/YearMonthSecondFunctionIT.java
--
diff --git 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/YearMonthSecondFunctionIT.java
 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/YearMonthSecondFunctionIT.java
index d19314a..da745fe 100644
--- 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/YearMonthSecondFunctionIT.java
+++ 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/YearMonthSecondFunctionIT.java
@@ -107,7 +107,7 @@ public class YearMonthSecondFunctionIT extends 
BaseHBaseManagedTimeIT {
 "unsignedDates UNSIGNED_DATE, unsignedTimestamps 
UNSIGNED_TIMESTAMP, unsignedTimes UNSIGNED_TIME CONSTRAINT pk PRIMARY KEY 
(k1))";
 conn.createStatement().execute(ddl);
 String dml = "UPSERT INTO T1 VALUES (1, TO_DATE('2004-03-01 
00:00:00'), TO_TIMESTAMP('2006-02-01 00:00:00'), TO_TIME('2008-02-01 
00:00:00'), " +
-"TO_DATE('2010-03-01 00:00:00'), TO_TIMESTAMP('2012-02-01'), 
TO_TIME('2015-02-01 00:00:00'))";
+"TO_DATE('2010-03-01 00:00:00:896', '-MM-dd 
HH:mm:ss:SSS'), TO_TIMESTAMP('2012-02-01'), TO_TIME('2015-02-01 00:00:00'))";
 conn.createStatement().execute(dml);
 conn.commit();
 
@@ -122,4 +122,50 @@ public class YearMonthSecondFunctionIT extends 
BaseHBaseManagedTimeIT {
 assertEquals(2015, rs.getInt(6));
 assertFalse(rs.next());
 }
+
+@Test
+public void testMonthFuncAgainstColumns() throws Exception {
+String ddl =
+"CREATE TABLE IF NOT EXISTS T1 (k1 INTEGER NOT NULL, dates 
DATE, timestamps TIMESTAMP, times TIME, " +
+"unsignedDates UNSIGNED_DATE, unsignedTimestamps 
UNSIGNED_TIMESTAMP, unsignedTimes UNSIGNED_TIME CONSTRAINT pk PRIMARY KEY 
(k1))";
+conn.createStatement().execute(ddl);
+String dml = "UPSERT INTO T1 VALUES (1, TO_DATE('2004-03-10 
00:00:00'), TO_TIMESTAMP('2006-04-12 00:00:00'), TO_TIME('2008-05-16 
00:00:00'), " +
+"TO_DATE('2010-06-20 00:00:00:789', '-MM-dd 
HH:mm:ss:SSS'), TO_TIMESTAMP('2012-07-28'), TO_TIME('2015-12-25 00:00:00'))";
+conn.createStatement().execute(dml);
+conn.commit();
+
+ResultSet rs = conn.createStatement().executeQuery("SELECT k1, 
MONTH(timestamps), MONTH(times), MONTH(unsignedDates), 
MONTH(unsignedTimestamps), " +
+"MONTH(unsignedTimes) FROM T1 where MONTH(dates) = 3");
+assertTrue(rs.next());
+assertEquals(1, rs.getInt(1));
+assertEquals(4, rs.getInt(2));
+assertEquals(5, rs.getInt(3));
+assertEquals(6, rs.getInt(4));
+assertEquals(7, rs.getInt(5));
+assertEquals(12, rs.getInt(6));
+assertFalse(rs.next());
+}
+
+@Test
+public void testSecondFuncAgainstColumns() throws Exception {
+String ddl =
+"CREATE TABLE IF NOT EXISTS T1 (k1 INTEGER NOT NULL, dates 
DATE, timestamps TIMESTAMP, times TIME, " +
+"unsignedDates UNSIGNED_DATE, unsignedTimestamps 
UNSIGNED_TIMESTAMP, unsignedTimes UNSIGNED_TIME CONSTRAINT pk PRIMARY KEY 
(k1))";
+conn.createStatement().execute(ddl);
+String dml = "UPSERT INTO T1 VALUES (1, TO_DATE('2004-03-01 
00:00:10'), TO_TIMESTAMP('2006-04-12 00:00:20'), TO_TIME('2008-05-16 
10:00:30'), " +
+"TO_DATE('2010-06-20 00:00:40:789', '-MM-dd 
HH:mm:ss:SSS'), TO_TIMESTAMP('2012-07-28'), TO_TIME('2015-12-25 00:00:50'))";
+conn.createStatement().execute(dml);
+conn.commit();
+
+ResultSet rs = conn.createStatement().executeQuery("SELECT k1, 
SECOND(dates), SECOND(times), SECOND(unsignedDates), 
SECOND(unsignedTimestamps), " +
+

[14/16] phoenix git commit: PHOENIX-258 minor test fixes.

2016-06-02 Thread larsh
PHOENIX-258 minor test fixes.


Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo
Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/65ee886f
Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/65ee886f
Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/65ee886f

Branch: refs/heads/4.x-HBase-1.0
Commit: 65ee886fb33c91332dcbe342f144a8dafd4afa27
Parents: dfa3eec
Author: Lars Hofhansl 
Authored: Thu Jun 2 13:20:48 2016 -0700
Committer: Lars Hofhansl 
Committed: Thu Jun 2 13:21:36 2016 -0700

--
 .../it/java/org/apache/phoenix/end2end/SortMergeJoinMoreIT.java  | 4 
 .../java/org/apache/phoenix/end2end/index/IndexExpressionIT.java | 2 +-
 2 files changed, 5 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/65ee886f/phoenix-core/src/it/java/org/apache/phoenix/end2end/SortMergeJoinMoreIT.java
--
diff --git 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/SortMergeJoinMoreIT.java 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/SortMergeJoinMoreIT.java
index c36b24d..8ede6ae 100644
--- 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/SortMergeJoinMoreIT.java
+++ 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/SortMergeJoinMoreIT.java
@@ -444,12 +444,14 @@ public class SortMergeJoinMoreIT extends 
BaseHBaseManagedTimeIT {
 "SORT-MERGE-JOIN (INNER) TABLES\n" +
 "CLIENT PARALLEL 2-WAY SKIP SCAN ON 2 RANGES OVER 
EVENT_COUNT [0,'5SEC',~14629935200,'Tr/Bal'] - 
[1,'5SEC',~14629934200,'Tr/Bal']\n" +
 "SERVER FILTER BY FIRST KEY ONLY\n" +
+"SERVER DISTINCT PREFIX FILTER OVER [BUCKET, 
TIMESTAMP, LOCATION]\n" +
 "SERVER AGGREGATE INTO ORDERED DISTINCT ROWS 
BY [BUCKET, TIMESTAMP, LOCATION]\n" +
 "CLIENT MERGE SORT\n" +
 "CLIENT SORTED BY [BUCKET, TIMESTAMP]\n" +
 "AND (SKIP MERGE)\n" +
 "CLIENT PARALLEL 2-WAY SKIP SCAN ON 2 RANGES OVER 
" + t[i] + " [0,'5SEC',~14629935200,'Tr/Bal'] - 
[1,'5SEC',~14629934200,'Tr/Bal']\n" +
 "SERVER FILTER BY FIRST KEY ONLY AND 
SRC_LOCATION = DST_LOCATION\n" +
+"SERVER DISTINCT PREFIX FILTER OVER [BUCKET, 
TIMESTAMP, SRC_LOCATION, DST_LOCATION]\n" +
 "SERVER AGGREGATE INTO ORDERED DISTINCT ROWS 
BY [BUCKET, TIMESTAMP, SRC_LOCATION, DST_LOCATION]\n" +
 "CLIENT MERGE SORT\n" +
 "CLIENT SORTED BY [BUCKET, TIMESTAMP]\n" +
@@ -459,12 +461,14 @@ public class SortMergeJoinMoreIT extends 
BaseHBaseManagedTimeIT {
 "SORT-MERGE-JOIN (INNER) TABLES\n" +
 "CLIENT PARALLEL 2-WAY SKIP SCAN ON 2 RANGES OVER 
EVENT_COUNT [0,'5SEC',~14629935200,'Tr/Bal'] - 
[1,'5SEC',~14629934200,'Tr/Bal']\n" +
 "SERVER FILTER BY FIRST KEY ONLY\n" +
+"SERVER DISTINCT PREFIX FILTER OVER [BUCKET, 
TIMESTAMP, LOCATION]\n" +
 "SERVER AGGREGATE INTO ORDERED DISTINCT ROWS 
BY [BUCKET, TIMESTAMP, LOCATION]\n" +
 "CLIENT MERGE SORT\n" +
 "CLIENT SORTED BY [BUCKET, TIMESTAMP]\n" +
 "AND (SKIP MERGE)\n" +
 "CLIENT PARALLEL 2-WAY SKIP SCAN ON 2 RANGES OVER 
" + t[i] + " [0,'5SEC',14629934201,'Tr/Bal'] - 
[1,'5SEC',14629935200,'Tr/Bal']\n" +
 "SERVER FILTER BY FIRST KEY ONLY AND 
SRC_LOCATION = DST_LOCATION\n" +
+"SERVER DISTINCT PREFIX FILTER OVER [BUCKET, 
TIMESTAMP, SRC_LOCATION, DST_LOCATION]\n" +
 "SERVER AGGREGATE INTO ORDERED DISTINCT ROWS 
BY [BUCKET, TIMESTAMP, SRC_LOCATION, DST_LOCATION]\n" +
 "CLIENT MERGE SORT\n" +
 "CLIENT SORTED BY [E.BUCKET, E.TIMESTAMP]\n" +

http://git-wip-us.apache.org/repos/asf/phoenix/blob/65ee886f/phoenix-core/src/it/java/org/apache/phoenix/end2end/index/IndexExpressionIT.java
--
diff --git 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/index/IndexExpressionIT.java
 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/index/IndexExpressionIT.java
index 5b513d0..cecaf50 100644
--- 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/index/IndexExpressionIT.java
+++ 

[07/16] phoenix git commit: PHOENIX-1676 Set priority of Index Updates correctly

2016-06-02 Thread larsh
PHOENIX-1676 Set priority of Index Updates correctly


Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo
Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/8b0591ec
Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/8b0591ec
Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/8b0591ec

Branch: refs/heads/4.x-HBase-1.x
Commit: 8b0591ecd38ffa6a110f9fd5d9c8ce086d537e2c
Parents: 096586e
Author: Thomas 
Authored: Mon Mar 23 22:17:16 2015 -0700
Committer: Thomas 
Committed: Mon Mar 23 22:40:55 2015 -0700

--
 .../phoenix/end2end/index/IndexQosIT.java   | 240 +++
 .../hbase/ipc/PhoenixIndexRpcScheduler.java |   3 +
 .../phoenix/hbase/index/IndexQosCompat.java |  98 
 .../index/IndexQosRpcControllerFactory.java |  12 +-
 .../index/table/CoprocessorHTableFactory.java   |  20 --
 .../phoenix/jdbc/PhoenixDatabaseMetaData.java   |   7 +-
 .../org/apache/phoenix/util/SchemaUtil.java |   7 +
 7 files changed, 260 insertions(+), 127 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/8b0591ec/phoenix-core/src/it/java/org/apache/phoenix/end2end/index/IndexQosIT.java
--
diff --git 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/index/IndexQosIT.java 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/index/IndexQosIT.java
new file mode 100644
index 000..7338b40
--- /dev/null
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/index/IndexQosIT.java
@@ -0,0 +1,240 @@
+/*
+ * 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.index;
+
+import static org.apache.phoenix.util.PhoenixRuntime.JDBC_PROTOCOL;
+import static org.apache.phoenix.util.PhoenixRuntime.JDBC_PROTOCOL_SEPARATOR;
+import static org.apache.phoenix.util.PhoenixRuntime.JDBC_PROTOCOL_TERMINATOR;
+import static 
org.apache.phoenix.util.PhoenixRuntime.PHOENIX_TEST_DRIVER_URL_PARAM;
+import static org.apache.phoenix.util.TestUtil.LOCALHOST;
+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.assertNotEquals;
+import static org.junit.Assert.assertTrue;
+
+import java.sql.Connection;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.util.List;
+import java.util.Properties;
+
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.hbase.HBaseConfiguration;
+import org.apache.hadoop.hbase.HBaseTestingUtility;
+import org.apache.hadoop.hbase.HRegionInfo;
+import org.apache.hadoop.hbase.MiniHBaseCluster;
+import org.apache.hadoop.hbase.ServerName;
+import org.apache.hadoop.hbase.client.HBaseAdmin;
+import org.apache.hadoop.hbase.ipc.BalancedQueueRpcExecutor;
+import org.apache.hadoop.hbase.ipc.CallRunner;
+import org.apache.hadoop.hbase.ipc.PhoenixIndexRpcScheduler;
+import org.apache.hadoop.hbase.ipc.RpcControllerFactory;
+import org.apache.hadoop.hbase.ipc.RpcExecutor;
+import org.apache.hadoop.hbase.ipc.RpcScheduler;
+import org.apache.hadoop.hbase.master.AssignmentManager;
+import org.apache.hadoop.hbase.master.HMaster;
+import org.apache.hadoop.hbase.regionserver.HRegionServer;
+import org.apache.hadoop.hbase.regionserver.RegionServerServices;
+import org.apache.hadoop.hbase.util.Bytes;
+import org.apache.phoenix.end2end.NeedsOwnMiniClusterTest;
+import org.apache.phoenix.hbase.index.IndexQosRpcControllerFactory;
+import org.apache.phoenix.hbase.index.ipc.PhoenixIndexRpcSchedulerFactory;
+import org.apache.phoenix.jdbc.PhoenixTestDriver;
+import org.apache.phoenix.query.BaseTest;
+import org.apache.phoenix.query.QueryServices;
+import org.apache.phoenix.util.PropertiesUtil;
+import org.apache.phoenix.util.QueryUtil;
+import org.apache.phoenix.util.ReadOnlyProps;
+import org.apache.phoenix.util.SchemaUtil;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.experimental.categories.Category;
+import org.mockito.Mockito;
+
+

[09/16] phoenix git commit: PHOENIX-1653 Support separate clusters for MR jobs

2016-06-02 Thread larsh
PHOENIX-1653 Support separate clusters for MR jobs

Add support for the input and output formats of a Phoenix MapReduce job to
point to separate clusters using override configuration settings. Defaults to
existing behavior (HConstants.ZOOKEEPER_QUORUM)


Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo
Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/7de8ee1e
Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/7de8ee1e
Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/7de8ee1e

Branch: refs/heads/4.x-HBase-1.x
Commit: 7de8ee1e914f5e0008ca9d983869757e4ca92b78
Parents: f4180fa
Author: gjacoby 
Authored: Fri Feb 27 16:49:14 2015 -0800
Committer: Gabriel Reid 
Committed: Tue Mar 24 20:07:52 2015 +0100

--
 .../phoenix/mapreduce/PhoenixInputFormat.java   | 15 ++--
 .../phoenix/mapreduce/PhoenixRecordWriter.java  |  2 +-
 .../phoenix/mapreduce/index/IndexTool.java  |  2 +-
 .../index/PhoenixIndexImportMapper.java |  2 +-
 .../phoenix/mapreduce/util/ConnectionUtil.java  | 88 ++--
 .../util/PhoenixConfigurationUtil.java  | 72 ++--
 .../mapreduce/util/PhoenixMapReduceUtil.java| 22 -
 .../util/PhoenixConfigurationUtilTest.java  | 60 -
 .../pig/util/QuerySchemaParserFunction.java |  2 +-
 .../pig/util/SqlQueryToColumnInfoFunction.java  |  2 +-
 10 files changed, 219 insertions(+), 48 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/7de8ee1e/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/PhoenixInputFormat.java
--
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/PhoenixInputFormat.java
 
b/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/PhoenixInputFormat.java
index a83b9ae..31759b4 100644
--- 
a/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/PhoenixInputFormat.java
+++ 
b/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/PhoenixInputFormat.java
@@ -98,15 +98,16 @@ public class PhoenixInputFormat 
extends InputFormat 
extends InputFormathttp://git-wip-us.apache.org/repos/asf/phoenix/blob/7de8ee1e/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/PhoenixRecordWriter.java
--
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/PhoenixRecordWriter.java
 
b/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/PhoenixRecordWriter.java
index 4d26bf4..5843076 100644
--- 
a/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/PhoenixRecordWriter.java
+++ 
b/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/PhoenixRecordWriter.java
@@ -46,7 +46,7 @@ public class PhoenixRecordWriter  
extends RecordWriterhttp://git-wip-us.apache.org/repos/asf/phoenix/blob/7de8ee1e/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/index/IndexTool.java
--
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/index/IndexTool.java 
b/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/index/IndexTool.java
index d93ef9c..300f575 100644
--- 
a/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/index/IndexTool.java
+++ 
b/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/index/IndexTool.java
@@ -163,7 +163,7 @@ public class IndexTool extends Configured implements Tool {
 final String qDataTable = SchemaUtil.getTableName(schemaName, 
dataTable);
 final String qIndexTable = SchemaUtil.getTableName(schemaName, 
indexTable);
  
-connection = ConnectionUtil.getConnection(configuration);
+connection = ConnectionUtil.getInputConnection(configuration);
 if(!isValidIndexTable(connection, dataTable, indexTable)) {
 throw new IllegalArgumentException(String.format(" %s is not 
an index table for %s ",qIndexTable,qDataTable));
 }

http://git-wip-us.apache.org/repos/asf/phoenix/blob/7de8ee1e/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/index/PhoenixIndexImportMapper.java
--
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/index/PhoenixIndexImportMapper.java
 
b/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/index/PhoenixIndexImportMapper.java
index 7bf4bfc..30f6dc0 100644
--- 
a/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/index/PhoenixIndexImportMapper.java
+++ 
b/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/index/PhoenixIndexImportMapper.java
@@ -73,7 +73,7 @@ public class PhoenixIndexImportMapper extends 
Mapper

[10/16] phoenix git commit: PHOENIX-1744 Allow Integer, UnsignedInt and UnsignedLong to be Cast to TIMESTAMP (Dave Hacker)

2016-06-02 Thread larsh
PHOENIX-1744 Allow Integer, UnsignedInt and UnsignedLong to be Cast to 
TIMESTAMP (Dave Hacker)


Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo
Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/250474de
Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/250474de
Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/250474de

Branch: refs/heads/4.x-HBase-1.x
Commit: 250474deb381b376d5ed442186470f65b36a8117
Parents: 7de8ee1
Author: David 
Authored: Wed Mar 18 13:37:20 2015 -0700
Committer: Thomas 
Committed: Tue Mar 24 14:00:20 2015 -0700

--
 .../phoenix/end2end/ToDateFunctionIT.java   | 57 
 .../phoenix/schema/types/PUnsignedLong.java |  5 ++
 2 files changed, 62 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/250474de/phoenix-core/src/it/java/org/apache/phoenix/end2end/ToDateFunctionIT.java
--
diff --git 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/ToDateFunctionIT.java 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/ToDateFunctionIT.java
index bda4ea5..8de39b7 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/ToDateFunctionIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/ToDateFunctionIT.java
@@ -33,6 +33,7 @@ import java.sql.Timestamp;
 import java.util.Properties;
 
 import org.apache.phoenix.query.QueryServices;
+import org.apache.phoenix.schema.TypeMismatchException;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -176,4 +177,60 @@ public class ToDateFunctionIT extends 
BaseHBaseManagedTimeIT {
 callToDateFunction(
 customTimeZoneConn, "TO_DATE('1970-01-01', 
'-MM-dd')").getTime());
 }
+
+@Test
+public void testTimestampCast() throws SQLException {
+Properties props = new Properties();
+props.setProperty(QueryServices.DATE_FORMAT_TIMEZONE_ATTRIB, "GMT+1");
+Connection customTimeZoneConn = DriverManager.getConnection(getUrl(), 
props);
+
+assertEquals(
+1426188807198L,
+callToDateFunction(
+customTimeZoneConn, "CAST(1426188807198 AS 
TIMESTAMP)").getTime());
+
+
+try {
+callToDateFunction(
+customTimeZoneConn, "CAST(22005 AS TIMESTAMP)");
+fail();
+} catch (TypeMismatchException e) {
+
+}
+}
+
+@Test
+public void testUnsignedLongToTimestampCast() throws SQLException {
+Properties props = new Properties();
+props.setProperty(QueryServices.DATE_FORMAT_TIMEZONE_ATTRIB, "GMT+1");
+Connection conn = DriverManager.getConnection(getUrl(), props);
+conn.setAutoCommit(false);
+try {
+conn.prepareStatement(
+"create table TT("
++ "a unsigned_int not null, "
++ "b unsigned_int not null, "
++ "ts unsigned_long not null "
++ "constraint PK primary key (a, b, ts))").execute();
+conn.commit();
+
+conn.prepareStatement("upsert into TT values (0, 22120, 
1426188807198)").execute();
+conn.commit();
+
+ResultSet rs = conn.prepareStatement("select a, b, ts, CAST(ts AS 
TIMESTAMP) from TT").executeQuery();
+assertTrue(rs.next());
+assertEquals(new Date(1426188807198L), rs.getObject(4));
+rs.close();
+
+try {
+rs = conn.prepareStatement("select a, b, ts, CAST(b AS 
TIMESTAMP) from TT").executeQuery();
+fail();
+} catch (TypeMismatchException e) {
+
+}
+
+} finally {
+conn.close();
+}
+}
 }

http://git-wip-us.apache.org/repos/asf/phoenix/blob/250474de/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PUnsignedLong.java
--
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PUnsignedLong.java 
b/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PUnsignedLong.java
index 67ae05a..a21ccc3 100644
--- 
a/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PUnsignedLong.java
+++ 
b/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PUnsignedLong.java
@@ -95,6 +95,11 @@ public class PUnsignedLong extends PWholeNumber {
   }
 
   @Override
+public boolean isCastableTo(PDataType targetType) {
+  return super.isCastableTo(targetType) || 
targetType.isCoercibleTo(PTimestamp.INSTANCE);
+}
+
+  @Override
   public boolean isCoercibleTo(PDataType targetType) {
 return targetType == this || targetType == 

[08/16] phoenix git commit: PHOENIX-1676 Set priority of Index Updates correctly, fix IndexQosIT

2016-06-02 Thread larsh
PHOENIX-1676 Set priority of Index Updates correctly, fix IndexQosIT


Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo
Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/f4180fa4
Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/f4180fa4
Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/f4180fa4

Branch: refs/heads/4.x-HBase-1.x
Commit: f4180fa40e26c685bfbf1b59cf4385f9b0e713e9
Parents: 8b0591e
Author: Thomas 
Authored: Mon Mar 23 22:51:53 2015 -0700
Committer: Thomas 
Committed: Mon Mar 23 22:54:56 2015 -0700

--
 .../java/org/apache/phoenix/end2end/index/IndexQosIT.java | 10 ++
 1 file changed, 6 insertions(+), 4 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/f4180fa4/phoenix-core/src/it/java/org/apache/phoenix/end2end/index/IndexQosIT.java
--
diff --git 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/index/IndexQosIT.java 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/index/IndexQosIT.java
index 7338b40..9558bcb 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/index/IndexQosIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/index/IndexQosIT.java
@@ -27,6 +27,7 @@ import java.util.List;
 import java.util.Properties;
 
 import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.hbase.Abortable;
 import org.apache.hadoop.hbase.HBaseConfiguration;
 import org.apache.hadoop.hbase.HBaseTestingUtility;
 import org.apache.hadoop.hbase.HRegionInfo;
@@ -36,13 +37,14 @@ import org.apache.hadoop.hbase.client.HBaseAdmin;
 import org.apache.hadoop.hbase.ipc.BalancedQueueRpcExecutor;
 import org.apache.hadoop.hbase.ipc.CallRunner;
 import org.apache.hadoop.hbase.ipc.PhoenixIndexRpcScheduler;
+import org.apache.hadoop.hbase.ipc.PriorityFunction;
 import org.apache.hadoop.hbase.ipc.RpcControllerFactory;
 import org.apache.hadoop.hbase.ipc.RpcExecutor;
 import org.apache.hadoop.hbase.ipc.RpcScheduler;
 import org.apache.hadoop.hbase.master.AssignmentManager;
 import org.apache.hadoop.hbase.master.HMaster;
 import org.apache.hadoop.hbase.regionserver.HRegionServer;
-import org.apache.hadoop.hbase.regionserver.RegionServerServices;
+import org.apache.hadoop.hbase.regionserver.RSRpcServices;
 import org.apache.hadoop.hbase.util.Bytes;
 import org.apache.phoenix.end2end.NeedsOwnMiniClusterTest;
 import org.apache.phoenix.hbase.index.IndexQosRpcControllerFactory;
@@ -82,8 +84,8 @@ public class IndexQosIT extends BaseTest {
  */
 public static class TestPhoenixIndexRpcSchedulerFactory extends 
PhoenixIndexRpcSchedulerFactory {
 @Override
-public RpcScheduler create(Configuration conf, RegionServerServices 
services) {
-PhoenixIndexRpcScheduler phoenixIndexRpcScheduler = 
(PhoenixIndexRpcScheduler)super.create(conf, services);
+public RpcScheduler create(Configuration conf, PriorityFunction 
priorityFunction, Abortable abortable) {
+PhoenixIndexRpcScheduler phoenixIndexRpcScheduler = 
(PhoenixIndexRpcScheduler)super.create(conf, priorityFunction, abortable);
 phoenixIndexRpcScheduler.setExecutorForTesting(spyRpcExecutor);
 return phoenixIndexRpcScheduler;
 }
@@ -93,7 +95,7 @@ public class IndexQosIT extends BaseTest {
 public void doSetup() throws Exception {
 conf = HBaseConfiguration.create();
 setUpConfigForMiniCluster(conf);
-conf.set(HRegionServer.REGION_SERVER_RPC_SCHEDULER_FACTORY_CLASS,
+conf.set(RSRpcServices.REGION_SERVER_RPC_SCHEDULER_FACTORY_CLASS,
 TestPhoenixIndexRpcSchedulerFactory.class.getName());
 conf.set(RpcControllerFactory.CUSTOM_CONTROLLER_CONF_KEY, 
IndexQosRpcControllerFactory.class.getName());
 util = new HBaseTestingUtility(conf);



Build failed in Jenkins: Phoenix | Master #1241

2016-06-02 Thread Apache Jenkins Server
See 

Changes:

[larsh] PHOENIX-258 Use skip scan when SELECT DISTINCT on leading row key

--
[...truncated 809 lines...]
SERVER []AGGREGATE INTO ORDER...> but was:<...KEY ONLY
SERVER [DISTINCT PREFIX FILTER OVER [TO_BIGINT("(A.INT_COL1 + 1)")]
SERVER ]AGGREGATE INTO ORDER...>
  
IndexExpressionIT.testSelectDistinctImmutableIndexLocal:504->helpTestSelectDistinct:536
 expected:<...KEY ONLY
SERVER []AGGREGATE INTO ORDER...> but was:<...KEY ONLY
SERVER [DISTINCT PREFIX FILTER OVER [TO_BIGINT("(A.INT_COL1 + 1)")]
SERVER ]AGGREGATE INTO ORDER...>
  
IndexExpressionIT.testSelectDistinctMutableIndex:509->helpTestSelectDistinct:536
 expected:<...KEY ONLY
SERVER []AGGREGATE INTO ORDER...> but was:<...KEY ONLY
SERVER [DISTINCT PREFIX FILTER OVER [TO_BIGINT("(A.INT_COL1 + 1)")]
SERVER ]AGGREGATE INTO ORDER...>
  
IndexExpressionIT.testSelectDistinctMutableLocalIndex:514->helpTestSelectDistinct:536
 expected:<...KEY ONLY
SERVER []AGGREGATE INTO ORDER...> but was:<...KEY ONLY
SERVER [DISTINCT PREFIX FILTER OVER [TO_BIGINT("(A.INT_COL1 + 1)")]
SERVER ]AGGREGATE INTO ORDER...>

Tests run: 1180, Failures: 5, Errors: 0, Skipped: 5

[INFO] 
[INFO] --- maven-failsafe-plugin:2.19.1:integration-test 
(HBaseManagedTimeTableReuseTest) @ phoenix-core ---

---
 T E S T S
---
Running org.apache.phoenix.end2end.AbsFunctionEnd2EndIT
Running org.apache.phoenix.end2end.ArithmeticQueryIT
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 3.062 sec - in 
org.apache.phoenix.end2end.AbsFunctionEnd2EndIT
Running org.apache.phoenix.end2end.ArraysWithNullsIT
Running org.apache.phoenix.end2end.ArrayToStringFunctionIT
Running org.apache.phoenix.end2end.ArrayFillFunctionIT
Running org.apache.phoenix.end2end.AlterSessionIT
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.172 sec - in 
org.apache.phoenix.end2end.AlterSessionIT
Running org.apache.phoenix.end2end.AutoCommitIT
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 2.479 sec - in 
org.apache.phoenix.end2end.AutoCommitIT
Running org.apache.phoenix.end2end.CbrtFunctionEnd2EndIT
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.757 sec - in 
org.apache.phoenix.end2end.CbrtFunctionEnd2EndIT
Running org.apache.phoenix.end2end.ConvertTimezoneFunctionIT
Tests run: 26, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 21.628 sec - 
in org.apache.phoenix.end2end.ArrayFillFunctionIT
Running org.apache.phoenix.end2end.DecodeFunctionIT
Tests run: 36, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 33.702 sec - 
in org.apache.phoenix.end2end.ArrayToStringFunctionIT
Tests run: 7, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 27.04 sec - in 
org.apache.phoenix.end2end.ConvertTimezoneFunctionIT
Running org.apache.phoenix.end2end.DynamicFamilyIT
Tests run: 16, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 45.248 sec - 
in org.apache.phoenix.end2end.ArraysWithNullsIT
Running org.apache.phoenix.end2end.DistinctPrefixFilterIT
Tests run: 6, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 18.508 sec - in 
org.apache.phoenix.end2end.DecodeFunctionIT
Running org.apache.phoenix.end2end.FirstValueFunctionIT
Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 5.003 sec - in 
org.apache.phoenix.end2end.DynamicFamilyIT
Running org.apache.phoenix.end2end.DynamicUpsertIT
Tests run: 7, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.238 sec - in 
org.apache.phoenix.end2end.DynamicUpsertIT
Running org.apache.phoenix.end2end.GetSetByteBitFunctionEnd2EndIT
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.256 sec - in 
org.apache.phoenix.end2end.GetSetByteBitFunctionEnd2EndIT
Running org.apache.phoenix.end2end.MD5FunctionIT
Running org.apache.phoenix.end2end.LikeExpressionIT
Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 4.981 sec - in 
org.apache.phoenix.end2end.LikeExpressionIT
Running org.apache.phoenix.end2end.MinMaxAggregateFunctionIT
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 4.498 sec - in 
org.apache.phoenix.end2end.MinMaxAggregateFunctionIT
Running org.apache.phoenix.end2end.NthValueFunctionIT
Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 13.339 sec - in 
org.apache.phoenix.end2end.MD5FunctionIT
Running org.apache.phoenix.end2end.OctetLengthFunctionEnd2EndIT
Tests run: 7, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 21.315 sec - in 
org.apache.phoenix.end2end.FirstValueFunctionIT
Tests run: 5, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 24.377 sec - in 
org.apache.phoenix.end2end.DistinctPrefixFilterIT
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 4.456 sec - in 
org.apache.phoenix.end2end.OctetLengthFunctionEnd2EndIT
Running org.apache.phoenix.end2end.QueryMoreIT
Running 

phoenix git commit: Add maxLength in cast(); Code refactoring for UPSERT and DELETE

2016-06-02 Thread maryannxue
Repository: phoenix
Updated Branches:
  refs/heads/calcite 700a94181 -> 826f0af64


Add maxLength in cast(); Code refactoring for UPSERT and DELETE


Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo
Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/826f0af6
Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/826f0af6
Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/826f0af6

Branch: refs/heads/calcite
Commit: 826f0af64a5883bf6ada614b9f05673490bae697
Parents: 700a941
Author: maryannxue 
Authored: Thu Jun 2 14:40:00 2016 -0400
Committer: maryannxue 
Committed: Thu Jun 2 14:40:00 2016 -0400

--
 .../apache/phoenix/calcite/CalciteDMLIT.java|  9 +
 .../apache/phoenix/calcite/CalciteUtils.java| 20 +---
 .../phoenix/calcite/rel/PhoenixTableModify.java | 18 ++
 .../calcite/rules/PhoenixConverterRules.java|  6 ++
 4 files changed, 42 insertions(+), 11 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/826f0af6/phoenix-core/src/it/java/org/apache/phoenix/calcite/CalciteDMLIT.java
--
diff --git 
a/phoenix-core/src/it/java/org/apache/phoenix/calcite/CalciteDMLIT.java 
b/phoenix-core/src/it/java/org/apache/phoenix/calcite/CalciteDMLIT.java
index 8b1d0fe..fc58968 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/calcite/CalciteDMLIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/calcite/CalciteDMLIT.java
@@ -100,4 +100,13 @@ public class CalciteDMLIT extends BaseCalciteIT {
 {"x03", "y03", null}})
 .close();
 }
+
+@Test public void testDelete() throws Exception {
+start(PROPS).sql("delete from atable where organization_id = '1' and 
entity_id = '1'")
+.explainIs("PhoenixToEnumerableConverter\n" +
+   "  PhoenixTableModify(table=[[phoenix, ATABLE]], 
operation=[DELETE], updateColumnList=[[]], flattened=[false])\n" +
+   "PhoenixTableScan(table=[[phoenix, ATABLE]], 
filter=[AND(=($0, CAST('1'):CHAR(15) CHARACTER SET \"ISO-8859-1\" COLLATE 
\"ISO-8859-1$en_US$primary\" NOT NULL), =($1, CAST('1'):CHAR(15) CHARACTER SET 
\"ISO-8859-1\" COLLATE \"ISO-8859-1$en_US$primary\" NOT NULL))])\n")
+//.executeUpdate()
+.close();
+}
 }

http://git-wip-us.apache.org/repos/asf/phoenix/blob/826f0af6/phoenix-core/src/main/java/org/apache/phoenix/calcite/CalciteUtils.java
--
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/calcite/CalciteUtils.java 
b/phoenix-core/src/main/java/org/apache/phoenix/calcite/CalciteUtils.java
index 252f44e..8bce4cd 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/calcite/CalciteUtils.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/calcite/CalciteUtils.java
@@ -379,7 +379,7 @@ public class CalciteUtils {
 }
 
 PDataType targetType = 
relDataTypeToPDataType(node.getType());
-return cast(targetType, expr, implementor);
+return cast(targetType, null, expr, implementor);
 } catch (SQLException e) {
 throw new RuntimeException(e);
 }
@@ -492,7 +492,7 @@ public class CalciteUtils {
 throw TypeMismatchException.newException(theType, 
node.toString());
 }
 PDataType targetType = 
relDataTypeToPDataType(node.getType());
-return cast(targetType, expr, implementor);
+return cast(targetType, null, expr, implementor);
 } catch (SQLException e) {
 throw new RuntimeException(e);
 }
@@ -539,7 +539,7 @@ public class CalciteUtils {
 expr = LiteralExpression.newConstant(null, theType, 
determinism);
 }
 PDataType targetType = 
relDataTypeToPDataType(node.getType());
-return cast(targetType, expr, implementor);
+return cast(targetType, null, expr, implementor);
 } catch (SQLException e) {
 throw new RuntimeException(e);
 }
@@ -586,7 +586,7 @@ public class CalciteUtils {
 expr = LiteralExpression.newConstant(null, theType, 
determinism);
 }
 PDataType targetType = 
relDataTypeToPDataType(node.getType());
-return cast(targetType, expr, implementor);
+return cast(targetType, null, expr, implementor);
 } catch (SQLException e) {
 

Build failed in Jenkins: Phoenix-4.x-HBase-1.0 #484

2016-06-02 Thread Apache Jenkins Server
See 

Changes:

[larsh] PHOENIX-258 Use skip scan when SELECT DISTINCT on leading row key

--
[...truncated 779 lines...]
SERVER [DISTINCT PREFIX FILTER OVER [TO_BIGINT("(A.INT_COL1 + 1)")]
SERVER ]AGGREGATE INTO ORDER...>
  
IndexExpressionIT.testSelectDistinctImmutableIndexLocal:504->helpTestSelectDistinct:536
 expected:<...KEY ONLY
SERVER []AGGREGATE INTO ORDER...> but was:<...KEY ONLY
SERVER [DISTINCT PREFIX FILTER OVER [TO_BIGINT("(A.INT_COL1 + 1)")]
SERVER ]AGGREGATE INTO ORDER...>
  
IndexExpressionIT.testSelectDistinctMutableIndex:509->helpTestSelectDistinct:536
 expected:<...KEY ONLY
SERVER []AGGREGATE INTO ORDER...> but was:<...KEY ONLY
SERVER [DISTINCT PREFIX FILTER OVER [TO_BIGINT("(A.INT_COL1 + 1)")]
SERVER ]AGGREGATE INTO ORDER...>
  
IndexExpressionIT.testSelectDistinctMutableLocalIndex:514->helpTestSelectDistinct:536
 expected:<...KEY ONLY
SERVER []AGGREGATE INTO ORDER...> but was:<...KEY ONLY
SERVER [DISTINCT PREFIX FILTER OVER [TO_BIGINT("(A.INT_COL1 + 1)")]
SERVER ]AGGREGATE INTO ORDER...>

Tests run: 1172, Failures: 5, Errors: 0, Skipped: 5

[INFO] 
[INFO] --- maven-failsafe-plugin:2.19.1:integration-test 
(HBaseManagedTimeTableReuseTest) @ phoenix-core ---

---
 T E S T S
---
Running org.apache.phoenix.end2end.ArithmeticQueryIT
Running org.apache.phoenix.end2end.AlterSessionIT
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.149 sec - in 
org.apache.phoenix.end2end.AlterSessionIT
Running org.apache.phoenix.end2end.ArrayFillFunctionIT
Running org.apache.phoenix.end2end.ArraysWithNullsIT
Running org.apache.phoenix.end2end.AbsFunctionEnd2EndIT
Running org.apache.phoenix.end2end.ArrayToStringFunctionIT
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.365 sec - in 
org.apache.phoenix.end2end.AbsFunctionEnd2EndIT
Running org.apache.phoenix.end2end.AutoCommitIT
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.833 sec - in 
org.apache.phoenix.end2end.AutoCommitIT
Running org.apache.phoenix.end2end.CbrtFunctionEnd2EndIT
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.432 sec - in 
org.apache.phoenix.end2end.CbrtFunctionEnd2EndIT
Tests run: 26, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 8.151 sec - in 
org.apache.phoenix.end2end.ArrayFillFunctionIT
Running org.apache.phoenix.end2end.ConvertTimezoneFunctionIT
Running org.apache.phoenix.end2end.DecodeFunctionIT
Tests run: 36, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 12.025 sec - 
in org.apache.phoenix.end2end.ArrayToStringFunctionIT
Tests run: 7, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 7.08 sec - in 
org.apache.phoenix.end2end.ConvertTimezoneFunctionIT
Running org.apache.phoenix.end2end.DynamicFamilyIT
Tests run: 6, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 7.056 sec - in 
org.apache.phoenix.end2end.DecodeFunctionIT
Running org.apache.phoenix.end2end.DynamicUpsertIT
Tests run: 7, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.165 sec - in 
org.apache.phoenix.end2end.DynamicUpsertIT
Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 2.468 sec - in 
org.apache.phoenix.end2end.DynamicFamilyIT
Running org.apache.phoenix.end2end.FirstValueFunctionIT
Tests run: 16, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 19.085 sec - 
in org.apache.phoenix.end2end.ArraysWithNullsIT
Running org.apache.phoenix.end2end.GetSetByteBitFunctionEnd2EndIT
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.2 sec - in 
org.apache.phoenix.end2end.GetSetByteBitFunctionEnd2EndIT
Running org.apache.phoenix.end2end.MD5FunctionIT
Running org.apache.phoenix.end2end.DistinctPrefixFilterIT
Running org.apache.phoenix.end2end.LikeExpressionIT
Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.801 sec - in 
org.apache.phoenix.end2end.LikeExpressionIT
Tests run: 26, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 25.996 sec - 
in org.apache.phoenix.end2end.ArithmeticQueryIT
Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 3.705 sec - in 
org.apache.phoenix.end2end.MD5FunctionIT
Running org.apache.phoenix.end2end.MinMaxAggregateFunctionIT
Running org.apache.phoenix.end2end.NthValueFunctionIT
Running org.apache.phoenix.end2end.OctetLengthFunctionEnd2EndIT
Tests run: 7, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 6.621 sec - in 
org.apache.phoenix.end2end.FirstValueFunctionIT
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.89 sec - in 
org.apache.phoenix.end2end.OctetLengthFunctionEnd2EndIT
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.543 sec - in 
org.apache.phoenix.end2end.MinMaxAggregateFunctionIT
Running org.apache.phoenix.end2end.QueryMoreIT
Running org.apache.phoenix.end2end.PrimitiveTypeIT
Tests run: 9, Failures: 0, 

phoenix git commit: PHOENIX-258 Use skip scan when SELECT DISTINCT on leading row key column(s).

2016-06-02 Thread larsh
Repository: phoenix
Updated Branches:
  refs/heads/master 837ec4672 -> eb275a5c6


PHOENIX-258 Use skip scan when SELECT DISTINCT on leading row key column(s).


Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo
Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/eb275a5c
Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/eb275a5c
Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/eb275a5c

Branch: refs/heads/master
Commit: eb275a5c6089b49bfa5263fe8a34e1a5e46bae97
Parents: 837ec46
Author: Lars Hofhansl 
Authored: Thu Jun 2 10:30:22 2016 -0700
Committer: Lars Hofhansl 
Committed: Thu Jun 2 10:42:50 2016 -0700

--
 .../phoenix/end2end/DistinctPrefixFilterIT.java | 369 +++
 .../apache/phoenix/compile/GroupByCompiler.java |  26 +-
 .../phoenix/compile/OrderPreservingTracker.java |   9 +
 .../phoenix/filter/DistinctPrefixFilter.java| 116 ++
 .../phoenix/iterate/BaseResultIterators.java|  14 +
 .../apache/phoenix/iterate/ExplainTable.java|   7 +
 .../filter/DistinctPrefixFilterTest.java| 246 +
 7 files changed, 784 insertions(+), 3 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/eb275a5c/phoenix-core/src/it/java/org/apache/phoenix/end2end/DistinctPrefixFilterIT.java
--
diff --git 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/DistinctPrefixFilterIT.java
 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/DistinctPrefixFilterIT.java
new file mode 100644
index 000..715e551
--- /dev/null
+++ 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/DistinctPrefixFilterIT.java
@@ -0,0 +1,369 @@
+package org.apache.phoenix.end2end;
+
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.Properties;
+
+import org.apache.hadoop.hbase.util.Bytes;
+import org.apache.phoenix.util.PropertiesUtil;
+import org.apache.phoenix.util.QueryUtil;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+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;
+
+public class DistinctPrefixFilterIT extends BaseHBaseManagedTimeTableReuseIT {
+private static String testTableF = generateRandomString();
+private static String testTableV = generateRandomString();
+private static String testSeq = testTableF + "_seq";
+private static Connection conn;
+
+@BeforeClass
+public static void doSetup() throws Exception {
+BaseHBaseManagedTimeTableReuseIT.doSetup();
+
+Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
+conn = DriverManager.getConnection(getUrl(), props);
+conn.setAutoCommit(false);
+String ddl = "CREATE TABLE " + testTableF +
+"  (prefix1 INTEGER NOT NULL, prefix2 INTEGER NOT NULL, 
prefix3 INTEGER NOT NULL, " +
+"col1 FLOAT, CONSTRAINT pk PRIMARY KEY(prefix1, prefix2, 
prefix3))";
+createTestTable(getUrl(), ddl);
+
+ddl = "CREATE TABLE " + testTableV +
+"  (prefix1 varchar NOT NULL, prefix2 varchar NOT NULL, 
prefix3 INTEGER NOT NULL, " +
+"col1 FLOAT, CONSTRAINT pk PRIMARY KEY(prefix1, prefix2, 
prefix3))";
+createTestTable(getUrl(), ddl);
+
+conn.prepareStatement("CREATE SEQUENCE " + testSeq + " CACHE 
1000").execute();
+
+insertPrefixF(1, 1);
+insertPrefixF(1, 2);
+insertPrefixF(1, 3);
+insertPrefixF(2, 1);
+insertPrefixF(2, 2);
+insertPrefixF(2, 3);
+insertPrefixF(3, 1);
+insertPrefixF(3, 2);
+insertPrefixF(2147483647, 2147483647); // all xFF
+insertPrefixF(3, 2147483647); // all xFF
+insertPrefixF(3, 3);
+conn.commit();
+
+insertPrefixV("1", "1");
+insertPrefixV("1", "2");
+insertPrefixV("1", "3");
+insertPrefixV("2", "1");
+insertPrefixV("2", "2");
+insertPrefixV("2", "3");
+insertPrefixV("22", "1");
+insertPrefixV("3", "22");
+insertPrefixV("3", "1");
+insertPrefixV("3", "2");
+insertPrefixV("3", "3");
+
+multiply();
+multiply();
+multiply();
+multiply();
+multiply();
+multiply();
+multiply();
+multiply();
+multiply(); // 512 per unique prefix
+}
+
+@Test
+public void testCornerCases() throws Exception {
+String testTable = generateRandomString();
+String ddl = "CREATE TABLE " + testTable +
+"  (prefix1 INTEGER NOT NULL, prefix2 SMALLINT NOT NULL, 

phoenix git commit: PHOENIX-258 Use skip scan when SELECT DISTINCT on leading row key column(s).

2016-06-02 Thread larsh
Repository: phoenix
Updated Branches:
  refs/heads/4.x-HBase-1.1 42ee496f8 -> 7b252763f


PHOENIX-258 Use skip scan when SELECT DISTINCT on leading row key column(s).


Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo
Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/7b252763
Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/7b252763
Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/7b252763

Branch: refs/heads/4.x-HBase-1.1
Commit: 7b252763f4103a158aed2e58ad098fd068bc73d7
Parents: 42ee496
Author: Lars Hofhansl 
Authored: Thu Jun 2 10:30:22 2016 -0700
Committer: Lars Hofhansl 
Committed: Thu Jun 2 10:39:27 2016 -0700

--
 .../phoenix/end2end/DistinctPrefixFilterIT.java | 369 +++
 .../apache/phoenix/compile/GroupByCompiler.java |  26 +-
 .../phoenix/compile/OrderPreservingTracker.java |   9 +
 .../phoenix/filter/DistinctPrefixFilter.java| 116 ++
 .../phoenix/iterate/BaseResultIterators.java|  14 +
 .../apache/phoenix/iterate/ExplainTable.java|   7 +
 .../filter/DistinctPrefixFilterTest.java| 246 +
 7 files changed, 784 insertions(+), 3 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/7b252763/phoenix-core/src/it/java/org/apache/phoenix/end2end/DistinctPrefixFilterIT.java
--
diff --git 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/DistinctPrefixFilterIT.java
 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/DistinctPrefixFilterIT.java
new file mode 100644
index 000..715e551
--- /dev/null
+++ 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/DistinctPrefixFilterIT.java
@@ -0,0 +1,369 @@
+package org.apache.phoenix.end2end;
+
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.Properties;
+
+import org.apache.hadoop.hbase.util.Bytes;
+import org.apache.phoenix.util.PropertiesUtil;
+import org.apache.phoenix.util.QueryUtil;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+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;
+
+public class DistinctPrefixFilterIT extends BaseHBaseManagedTimeTableReuseIT {
+private static String testTableF = generateRandomString();
+private static String testTableV = generateRandomString();
+private static String testSeq = testTableF + "_seq";
+private static Connection conn;
+
+@BeforeClass
+public static void doSetup() throws Exception {
+BaseHBaseManagedTimeTableReuseIT.doSetup();
+
+Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
+conn = DriverManager.getConnection(getUrl(), props);
+conn.setAutoCommit(false);
+String ddl = "CREATE TABLE " + testTableF +
+"  (prefix1 INTEGER NOT NULL, prefix2 INTEGER NOT NULL, 
prefix3 INTEGER NOT NULL, " +
+"col1 FLOAT, CONSTRAINT pk PRIMARY KEY(prefix1, prefix2, 
prefix3))";
+createTestTable(getUrl(), ddl);
+
+ddl = "CREATE TABLE " + testTableV +
+"  (prefix1 varchar NOT NULL, prefix2 varchar NOT NULL, 
prefix3 INTEGER NOT NULL, " +
+"col1 FLOAT, CONSTRAINT pk PRIMARY KEY(prefix1, prefix2, 
prefix3))";
+createTestTable(getUrl(), ddl);
+
+conn.prepareStatement("CREATE SEQUENCE " + testSeq + " CACHE 
1000").execute();
+
+insertPrefixF(1, 1);
+insertPrefixF(1, 2);
+insertPrefixF(1, 3);
+insertPrefixF(2, 1);
+insertPrefixF(2, 2);
+insertPrefixF(2, 3);
+insertPrefixF(3, 1);
+insertPrefixF(3, 2);
+insertPrefixF(2147483647, 2147483647); // all xFF
+insertPrefixF(3, 2147483647); // all xFF
+insertPrefixF(3, 3);
+conn.commit();
+
+insertPrefixV("1", "1");
+insertPrefixV("1", "2");
+insertPrefixV("1", "3");
+insertPrefixV("2", "1");
+insertPrefixV("2", "2");
+insertPrefixV("2", "3");
+insertPrefixV("22", "1");
+insertPrefixV("3", "22");
+insertPrefixV("3", "1");
+insertPrefixV("3", "2");
+insertPrefixV("3", "3");
+
+multiply();
+multiply();
+multiply();
+multiply();
+multiply();
+multiply();
+multiply();
+multiply();
+multiply(); // 512 per unique prefix
+}
+
+@Test
+public void testCornerCases() throws Exception {
+String testTable = generateRandomString();
+String ddl = "CREATE TABLE " + testTable +
+"  (prefix1 INTEGER NOT NULL, prefix2 

phoenix git commit: PHOENIX-258 Use skip scan when SELECT DISTINCT on leading row key column(s).

2016-06-02 Thread larsh
Repository: phoenix
Updated Branches:
  refs/heads/4.x-HBase-1.0 44280897c -> dfa3eec7a


PHOENIX-258 Use skip scan when SELECT DISTINCT on leading row key column(s).


Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo
Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/dfa3eec7
Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/dfa3eec7
Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/dfa3eec7

Branch: refs/heads/4.x-HBase-1.0
Commit: dfa3eec7a23e5d3c54d22523b27ce2ede0005463
Parents: 4428089
Author: Lars Hofhansl 
Authored: Thu Jun 2 10:30:22 2016 -0700
Committer: Lars Hofhansl 
Committed: Thu Jun 2 10:38:00 2016 -0700

--
 .../phoenix/end2end/DistinctPrefixFilterIT.java | 369 +++
 .../apache/phoenix/compile/GroupByCompiler.java |  26 +-
 .../phoenix/compile/OrderPreservingTracker.java |   9 +
 .../phoenix/filter/DistinctPrefixFilter.java| 116 ++
 .../phoenix/iterate/BaseResultIterators.java|  14 +
 .../apache/phoenix/iterate/ExplainTable.java|   7 +
 .../filter/DistinctPrefixFilterTest.java| 246 +
 7 files changed, 784 insertions(+), 3 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/dfa3eec7/phoenix-core/src/it/java/org/apache/phoenix/end2end/DistinctPrefixFilterIT.java
--
diff --git 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/DistinctPrefixFilterIT.java
 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/DistinctPrefixFilterIT.java
new file mode 100644
index 000..715e551
--- /dev/null
+++ 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/DistinctPrefixFilterIT.java
@@ -0,0 +1,369 @@
+package org.apache.phoenix.end2end;
+
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.Properties;
+
+import org.apache.hadoop.hbase.util.Bytes;
+import org.apache.phoenix.util.PropertiesUtil;
+import org.apache.phoenix.util.QueryUtil;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+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;
+
+public class DistinctPrefixFilterIT extends BaseHBaseManagedTimeTableReuseIT {
+private static String testTableF = generateRandomString();
+private static String testTableV = generateRandomString();
+private static String testSeq = testTableF + "_seq";
+private static Connection conn;
+
+@BeforeClass
+public static void doSetup() throws Exception {
+BaseHBaseManagedTimeTableReuseIT.doSetup();
+
+Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
+conn = DriverManager.getConnection(getUrl(), props);
+conn.setAutoCommit(false);
+String ddl = "CREATE TABLE " + testTableF +
+"  (prefix1 INTEGER NOT NULL, prefix2 INTEGER NOT NULL, 
prefix3 INTEGER NOT NULL, " +
+"col1 FLOAT, CONSTRAINT pk PRIMARY KEY(prefix1, prefix2, 
prefix3))";
+createTestTable(getUrl(), ddl);
+
+ddl = "CREATE TABLE " + testTableV +
+"  (prefix1 varchar NOT NULL, prefix2 varchar NOT NULL, 
prefix3 INTEGER NOT NULL, " +
+"col1 FLOAT, CONSTRAINT pk PRIMARY KEY(prefix1, prefix2, 
prefix3))";
+createTestTable(getUrl(), ddl);
+
+conn.prepareStatement("CREATE SEQUENCE " + testSeq + " CACHE 
1000").execute();
+
+insertPrefixF(1, 1);
+insertPrefixF(1, 2);
+insertPrefixF(1, 3);
+insertPrefixF(2, 1);
+insertPrefixF(2, 2);
+insertPrefixF(2, 3);
+insertPrefixF(3, 1);
+insertPrefixF(3, 2);
+insertPrefixF(2147483647, 2147483647); // all xFF
+insertPrefixF(3, 2147483647); // all xFF
+insertPrefixF(3, 3);
+conn.commit();
+
+insertPrefixV("1", "1");
+insertPrefixV("1", "2");
+insertPrefixV("1", "3");
+insertPrefixV("2", "1");
+insertPrefixV("2", "2");
+insertPrefixV("2", "3");
+insertPrefixV("22", "1");
+insertPrefixV("3", "22");
+insertPrefixV("3", "1");
+insertPrefixV("3", "2");
+insertPrefixV("3", "3");
+
+multiply();
+multiply();
+multiply();
+multiply();
+multiply();
+multiply();
+multiply();
+multiply();
+multiply(); // 512 per unique prefix
+}
+
+@Test
+public void testCornerCases() throws Exception {
+String testTable = generateRandomString();
+String ddl = "CREATE TABLE " + testTable +
+"  (prefix1 INTEGER NOT NULL, prefix2 

phoenix git commit: PHOENIX-258 Use skip scan when SELECT DISTINCT on leading row key column(s).

2016-06-02 Thread larsh
Repository: phoenix
Updated Branches:
  refs/heads/4.x-HBase-0.98 e5ff1dab8 -> 0032a3d8e


PHOENIX-258 Use skip scan when SELECT DISTINCT on leading row key column(s).


Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo
Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/0032a3d8
Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/0032a3d8
Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/0032a3d8

Branch: refs/heads/4.x-HBase-0.98
Commit: 0032a3d8e301cbd4d70dbfa20ed726969a7a8f97
Parents: e5ff1da
Author: Lars Hofhansl 
Authored: Thu Jun 2 10:30:22 2016 -0700
Committer: Lars Hofhansl 
Committed: Thu Jun 2 10:32:53 2016 -0700

--
 .../phoenix/end2end/DistinctPrefixFilterIT.java | 369 +++
 .../apache/phoenix/compile/GroupByCompiler.java |  26 +-
 .../phoenix/compile/OrderPreservingTracker.java |   9 +
 .../phoenix/filter/DistinctPrefixFilter.java| 116 ++
 .../phoenix/iterate/BaseResultIterators.java|  14 +
 .../apache/phoenix/iterate/ExplainTable.java|   7 +
 .../filter/DistinctPrefixFilterTest.java| 246 +
 7 files changed, 784 insertions(+), 3 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/0032a3d8/phoenix-core/src/it/java/org/apache/phoenix/end2end/DistinctPrefixFilterIT.java
--
diff --git 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/DistinctPrefixFilterIT.java
 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/DistinctPrefixFilterIT.java
new file mode 100644
index 000..715e551
--- /dev/null
+++ 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/DistinctPrefixFilterIT.java
@@ -0,0 +1,369 @@
+package org.apache.phoenix.end2end;
+
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.Properties;
+
+import org.apache.hadoop.hbase.util.Bytes;
+import org.apache.phoenix.util.PropertiesUtil;
+import org.apache.phoenix.util.QueryUtil;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+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;
+
+public class DistinctPrefixFilterIT extends BaseHBaseManagedTimeTableReuseIT {
+private static String testTableF = generateRandomString();
+private static String testTableV = generateRandomString();
+private static String testSeq = testTableF + "_seq";
+private static Connection conn;
+
+@BeforeClass
+public static void doSetup() throws Exception {
+BaseHBaseManagedTimeTableReuseIT.doSetup();
+
+Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
+conn = DriverManager.getConnection(getUrl(), props);
+conn.setAutoCommit(false);
+String ddl = "CREATE TABLE " + testTableF +
+"  (prefix1 INTEGER NOT NULL, prefix2 INTEGER NOT NULL, 
prefix3 INTEGER NOT NULL, " +
+"col1 FLOAT, CONSTRAINT pk PRIMARY KEY(prefix1, prefix2, 
prefix3))";
+createTestTable(getUrl(), ddl);
+
+ddl = "CREATE TABLE " + testTableV +
+"  (prefix1 varchar NOT NULL, prefix2 varchar NOT NULL, 
prefix3 INTEGER NOT NULL, " +
+"col1 FLOAT, CONSTRAINT pk PRIMARY KEY(prefix1, prefix2, 
prefix3))";
+createTestTable(getUrl(), ddl);
+
+conn.prepareStatement("CREATE SEQUENCE " + testSeq + " CACHE 
1000").execute();
+
+insertPrefixF(1, 1);
+insertPrefixF(1, 2);
+insertPrefixF(1, 3);
+insertPrefixF(2, 1);
+insertPrefixF(2, 2);
+insertPrefixF(2, 3);
+insertPrefixF(3, 1);
+insertPrefixF(3, 2);
+insertPrefixF(2147483647, 2147483647); // all xFF
+insertPrefixF(3, 2147483647); // all xFF
+insertPrefixF(3, 3);
+conn.commit();
+
+insertPrefixV("1", "1");
+insertPrefixV("1", "2");
+insertPrefixV("1", "3");
+insertPrefixV("2", "1");
+insertPrefixV("2", "2");
+insertPrefixV("2", "3");
+insertPrefixV("22", "1");
+insertPrefixV("3", "22");
+insertPrefixV("3", "1");
+insertPrefixV("3", "2");
+insertPrefixV("3", "3");
+
+multiply();
+multiply();
+multiply();
+multiply();
+multiply();
+multiply();
+multiply();
+multiply();
+multiply(); // 512 per unique prefix
+}
+
+@Test
+public void testCornerCases() throws Exception {
+String testTable = generateRandomString();
+String ddl = "CREATE TABLE " + testTable +
+"  (prefix1 INTEGER NOT NULL, prefix2