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

2015-12-08 Thread Apache Jenkins Server
See 

Changes:

[tdsilva] PHOENIX-2496 Attempt to gracefully close in ShutdownHook, but still 
exit

--
[...truncated 25777 lines...]
[DEBUG]   (s) remoteRepositories = [   id: central
  url: http://repo.maven.apache.org/maven2
   layout: default
snapshots: [enabled => false, update => daily]
 releases: [enabled => true, update => never]
]
[DEBUG]   (s) reportFormat = brief
[DEBUG]   (s) reportsDirectory = 

[DEBUG]   (f) rerunFailingTestsCount = 0
[DEBUG]   (f) reuseForks = true
[DEBUG]   (s) runOrder = filesystem
[DEBUG]   (f) shutdown = testset
[DEBUG]   (s) skip = false
[DEBUG]   (f) skipAfterFailureCount = 0
[DEBUG]   (s) skipTests = false
[DEBUG]   (s) suiteXmlFiles = []
[DEBUG]   (s) summaryFile = 

[DEBUG]   (s) testClassesDirectory = 

[DEBUG]   (s) testNGArtifactName = org.testng:testng
[DEBUG]   (s) testSourceDirectory = 

[DEBUG]   (s) threadCountClasses = 0
[DEBUG]   (s) threadCountMethods = 0
[DEBUG]   (s) threadCountSuites = 0
[DEBUG]   (s) trimStackTrace = true
[DEBUG]   (s) useFile = true
[DEBUG]   (s) useManifestOnlyJar = true
[DEBUG]   (s) useSystemClassLoader = true
[DEBUG]   (s) useUnlimitedThreads = false
[DEBUG]   (s) workingDirectory = 

[DEBUG]   (s) project = MavenProject: 
org.apache.phoenix:phoenix-core:4.7.0-HBase-1.0-SNAPSHOT @ 

[DEBUG]   (s) session = org.apache.maven.execution.MavenSession@2b6773ab
[DEBUG] -- end configuration --
[DEBUG] Failsafe report directory: 

[DEBUG] Setting system property 
[user.dir]=[
[DEBUG] Setting system property [localRepository]=[/home/jenkins/.m2/repository]
[DEBUG] Setting system property 
[basedir]=[
[DEBUG] Setting system property [checkstyle.skip]=[true]
[DEBUG] parallel='none', perCoreThreadCount=true, threadCount=0, 
useUnlimitedThreads=false, threadCountSuites=0, threadCountClasses=0, 
threadCountMethods=0, parallelOptimized=true
[DEBUG] Using JVM: 
/home/jenkins/jenkins-slave/tools/hudson.model.JDK/JDK_1.7_latest_/jre/bin/java
[DEBUG] test classpath:  

  

  
/home/jenkins/.m2/repository/co/cask/tephra/tephra-api/0.6.3/tephra-api-0.6.3.jar
  
/home/jenkins/.m2/repository/co/cask/tephra/tephra-core/0.6.3/tephra-core-0.6.3.jar
  /home/jenkins/.m2/repository/com/google/code/gson/gson/2.2.4/gson-2.2.4.jar  
/home/jenkins/.m2/repository/com/google/inject/guice/3.0/guice-3.0.jar  
/home/jenkins/.m2/repository/javax/inject/javax.inject/1/javax.inject-1.jar  
/home/jenkins/.m2/repository/aopalliance/aopalliance/1.0/aopalliance-1.0.jar  
/home/jenkins/.m2/repository/com/google/inject/extensions/guice-assistedinject/3.0/guice-assistedinject-3.0.jar
  
/home/jenkins/.m2/repository/ch/qos/logback/logback-classic/1.0.9/logback-classic-1.0.9.jar
  
/home/jenkins/.m2/repository/ch/qos/logback/logback-core/1.0.9/logback-core-1.0.9.jar
  
/home/jenkins/.m2/repository/org/apache/thrift/libthrift/0.9.0/libthrift-0.9.0.jar
  /home/jenkins/.m2/repository/it/unimi/dsi/fastutil/6.5.6/fastutil-6.5.6.jar  
/home/jenkins/.m2/repository/org/apache/twill/twill-common/0.6.0-incubating/twill-common-0.6.0-incubating.jar
  
/home/jenkins/.m2/repository/org/apache/twill/twill-core/0.6.0-incubating/twill-core-0.6.0-incubating.jar
  
/home/jenkins/.m2/repository/org/apache/twill/twill-api/0.6.0-incubating/twill-api-0.6.0-incubating.jar
  /home/jenkins/.m2/repository/org/ow2/asm/asm-all/5.0.2/asm-all-5.0.2.jar  
/home/jenkins/.m2/repository/org/apache/twill/twill-discovery-api/0.6.0-incubating/twill-discovery-api-0.6.0-incubating.jar
  
/home/jenkins/.m2/repository/org/apache/twill/twill-discovery-core/0.6.0-incubating/twill-discovery-core-0.6.0-incubating.jar
  
/home/jenkins/.m2/repository/org/apache/twill/twill-zookeeper/0.6.0-incubating/twill-zookeeper-0.6.0-incubating.jar
  
/home/jenkins/.m2/repository/io/dropwizard/metrics/metrics-core/3.1.0/metrics-core-3.1.0.jar
  
/home/jenkins/.m2/repository/co/cask/tephra/tephra-core/0.6.3/tephra-core-0.6.3-tests.jar
  

phoenix git commit: PHOENIX-2494 Fix test failure AlterTableWithViewsIT.testMakeBaseTableTransactional

2015-12-08 Thread tdsilva
Repository: phoenix
Updated Branches:
  refs/heads/4.x-HBase-1.0 3d9d3c22c -> 5dfd24030


PHOENIX-2494 Fix test failure 
AlterTableWithViewsIT.testMakeBaseTableTransactional


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

Branch: refs/heads/4.x-HBase-1.0
Commit: 5dfd24030d45a58a6defd15e16d6293493e52965
Parents: 3d9d3c2
Author: Thomas D'Silva 
Authored: Tue Dec 8 16:51:26 2015 -0800
Committer: Thomas D'Silva 
Committed: Tue Dec 8 16:58:34 2015 -0800

--
 .../java/org/apache/phoenix/coprocessor/MetaDataEndpointImpl.java   | 1 -
 1 file changed, 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/5dfd2403/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/MetaDataEndpointImpl.java
--
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/MetaDataEndpointImpl.java
 
b/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/MetaDataEndpointImpl.java
index 459f492..2043c66 100644
--- 
a/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/MetaDataEndpointImpl.java
+++ 
b/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/MetaDataEndpointImpl.java
@@ -1837,7 +1837,6 @@ public class MetaDataEndpointImpl extends 
MetaDataProtocol implements Coprocesso
 }
 // Sort the puts by ordinal position 
 Collections.sort(columnPutsForBaseTable);
-assert columnPutsForBaseTable.size() > 0;
 for (Result viewResult : childViewsResult.getResults()) {
 short deltaNumPkColsSoFar = 0;
 short columnsAddedToView = 0;



phoenix git commit: PHOENIX-2494 Fix test failure AlterTableWithViewsIT.testMakeBaseTableTransactional

2015-12-08 Thread tdsilva
Repository: phoenix
Updated Branches:
  refs/heads/4.x-HBase-0.98 49b78474e -> b9eb08c32


PHOENIX-2494 Fix test failure 
AlterTableWithViewsIT.testMakeBaseTableTransactional


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

Branch: refs/heads/4.x-HBase-0.98
Commit: b9eb08c32c2f6a9589bcc01205153cfd5638c851
Parents: 49b7847
Author: Thomas D'Silva 
Authored: Tue Dec 8 16:51:26 2015 -0800
Committer: Thomas D'Silva 
Committed: Tue Dec 8 16:54:48 2015 -0800

--
 .../java/org/apache/phoenix/coprocessor/MetaDataEndpointImpl.java   | 1 -
 1 file changed, 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/b9eb08c3/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/MetaDataEndpointImpl.java
--
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/MetaDataEndpointImpl.java
 
b/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/MetaDataEndpointImpl.java
index 3f7cdbd..1280baa 100644
--- 
a/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/MetaDataEndpointImpl.java
+++ 
b/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/MetaDataEndpointImpl.java
@@ -1837,7 +1837,6 @@ public class MetaDataEndpointImpl extends 
MetaDataProtocol implements Coprocesso
 }
 // Sort the puts by ordinal position 
 Collections.sort(columnPutsForBaseTable);
-assert columnPutsForBaseTable.size() > 0;
 for (Result viewResult : childViewsResult.getResults()) {
 short deltaNumPkColsSoFar = 0;
 short columnsAddedToView = 0;



phoenix git commit: PHOENIX-2494 Fix test failure AlterTableWithViewsIT.testMakeBaseTableTransactional

2015-12-08 Thread tdsilva
Repository: phoenix
Updated Branches:
  refs/heads/master b74215f82 -> bf0661775


PHOENIX-2494 Fix test failure 
AlterTableWithViewsIT.testMakeBaseTableTransactional


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

Branch: refs/heads/master
Commit: bf06617754ac408279a1359cc660239fbab05ad5
Parents: b74215f
Author: Thomas D'Silva 
Authored: Tue Dec 8 16:51:26 2015 -0800
Committer: Thomas D'Silva 
Committed: Tue Dec 8 16:51:26 2015 -0800

--
 .../java/org/apache/phoenix/coprocessor/MetaDataEndpointImpl.java   | 1 -
 1 file changed, 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/bf066177/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/MetaDataEndpointImpl.java
--
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/MetaDataEndpointImpl.java
 
b/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/MetaDataEndpointImpl.java
index f997149..4361b1d 100644
--- 
a/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/MetaDataEndpointImpl.java
+++ 
b/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/MetaDataEndpointImpl.java
@@ -1838,7 +1838,6 @@ public class MetaDataEndpointImpl extends 
MetaDataProtocol implements Coprocesso
 }
 // Sort the puts by ordinal position 
 Collections.sort(columnPutsForBaseTable);
-assert columnPutsForBaseTable.size() > 0;
 for (Result viewResult : childViewsResult.getResults()) {
 short deltaNumPkColsSoFar = 0;
 short columnsAddedToView = 0;



phoenix git commit: PHOENIX-1949 NPE while inserting NULL in a VARCHAR array using UPSERT stmt (Ram)

2015-12-08 Thread ramkrishna
Repository: phoenix
Updated Branches:
  refs/heads/4.6-HBase-0.98 231c3f469 -> 3ef3b4360


PHOENIX-1949 NPE while inserting NULL in a VARCHAR array using UPSERT stmt
(Ram)


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

Branch: refs/heads/4.6-HBase-0.98
Commit: 3ef3b436036e95258dabad8a6a0cca53b9c4255e
Parents: 231c3f4
Author: ramkrishna 
Authored: Wed Dec 9 09:43:01 2015 +0530
Committer: ramkrishna 
Committed: Wed Dec 9 09:54:01 2015 +0530

--
 .../org/apache/phoenix/end2end/ArrayIT.java | 27 
 .../org/apache/phoenix/schema/types/PChar.java  |  6 ++---
 .../apache/phoenix/schema/types/PVarchar.java   |  6 ++---
 3 files changed, 33 insertions(+), 6 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/3ef3b436/phoenix-core/src/it/java/org/apache/phoenix/end2end/ArrayIT.java
--
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/ArrayIT.java 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/ArrayIT.java
index b7a2ad2..80396a6 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/ArrayIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/ArrayIT.java
@@ -870,6 +870,33 @@ public class ArrayIT extends BaseClientManagedTimeIT {
 }
 
 @Test
+public void testArrayWithVarCharArray() throws Exception {
+Connection conn;
+PreparedStatement stmt;
+ResultSet rs;
+long ts = nextTimestamp();
+Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
+props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB, Long.toString(ts 
+ 10));
+conn = DriverManager.getConnection(getUrl(), props);
+conn.createStatement().execute("CREATE TABLE t ( k VARCHAR PRIMARY 
KEY, a VARCHAR ARRAY[])");
+conn.close();
+
+props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB, Long.toString(ts 
+ 30));
+conn = DriverManager.getConnection(getUrl(), props);
+stmt = conn.prepareStatement("UPSERT INTO t 
VALUES('a',ARRAY['a',null])");
+int res = stmt.executeUpdate();
+assertEquals(1, res);
+conn.commit();
+conn.close();
+props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB, Long.toString(ts 
+ 40));
+conn = DriverManager.getConnection(getUrl(), props);
+rs = conn.createStatement().executeQuery("SELECT ARRAY_ELEM(a,2) FROM 
t");
+assertTrue(rs.next());
+assertEquals(null, rs.getString(1));
+conn.close();
+}
+
+@Test
 public void testArraySelectSingleArrayElemWithCast() throws Exception {
 Connection conn;
 PreparedStatement stmt;

http://git-wip-us.apache.org/repos/asf/phoenix/blob/3ef3b436/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PChar.java
--
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PChar.java 
b/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PChar.java
index 6b26197..4170253 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PChar.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PChar.java
@@ -104,12 +104,12 @@ public class PChar extends PDataType {
 
 @Override
 public Object toObject(byte[] bytes, int offset, int length, PDataType 
actualType, SortOrder sortOrder, Integer maxLength, Integer scale) {
-  if (!actualType.isCoercibleTo(this)) { // TODO: have isCoercibleTo that 
takes bytes, offset?
-throwConstraintViolationException(actualType,this);
-  }
   if (length == 0) {
 return null;
   }
+  if (!actualType.isCoercibleTo(this)) {
+throwConstraintViolationException(actualType, this);
+  }
   length = StringUtil.getUnpaddedCharLength(bytes, offset, length, 
sortOrder);
   if (sortOrder == SortOrder.DESC) {
 bytes = SortOrder.invert(bytes, offset, length);

http://git-wip-us.apache.org/repos/asf/phoenix/blob/3ef3b436/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PVarchar.java
--
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PVarchar.java 
b/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PVarchar.java
index fa3dbad..2575115 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PVarchar.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PVarchar.java
@@ -59,12 +59,12 @@ public class 

phoenix git commit: PHOENIX-1949 NPE while inserting NULL in a VARCHAR array using UPSERT stmt (Ram)

2015-12-08 Thread ramkrishna
Repository: phoenix
Updated Branches:
  refs/heads/4.5-HBase-1.1 18026e4df -> 853828fe2


PHOENIX-1949 NPE while inserting NULL in a VARCHAR array using UPSERT stmt
(Ram)


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

Branch: refs/heads/4.5-HBase-1.1
Commit: 853828fe213f0da746c23a5c3500643ff395821a
Parents: 18026e4
Author: ramkrishna 
Authored: Wed Dec 9 09:43:01 2015 +0530
Committer: ramkrishna 
Committed: Wed Dec 9 09:54:43 2015 +0530

--
 .../org/apache/phoenix/end2end/ArrayIT.java | 27 
 .../org/apache/phoenix/schema/types/PChar.java  |  6 ++---
 .../apache/phoenix/schema/types/PVarchar.java   |  6 ++---
 3 files changed, 33 insertions(+), 6 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/853828fe/phoenix-core/src/it/java/org/apache/phoenix/end2end/ArrayIT.java
--
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/ArrayIT.java 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/ArrayIT.java
index 800a7b4..989b000 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/ArrayIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/ArrayIT.java
@@ -870,6 +870,33 @@ public class ArrayIT extends BaseClientManagedTimeIT {
 }
 
 @Test
+public void testArrayWithVarCharArray() throws Exception {
+Connection conn;
+PreparedStatement stmt;
+ResultSet rs;
+long ts = nextTimestamp();
+Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
+props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB, Long.toString(ts 
+ 10));
+conn = DriverManager.getConnection(getUrl(), props);
+conn.createStatement().execute("CREATE TABLE t ( k VARCHAR PRIMARY 
KEY, a VARCHAR ARRAY[])");
+conn.close();
+
+props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB, Long.toString(ts 
+ 30));
+conn = DriverManager.getConnection(getUrl(), props);
+stmt = conn.prepareStatement("UPSERT INTO t 
VALUES('a',ARRAY['a',null])");
+int res = stmt.executeUpdate();
+assertEquals(1, res);
+conn.commit();
+conn.close();
+props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB, Long.toString(ts 
+ 40));
+conn = DriverManager.getConnection(getUrl(), props);
+rs = conn.createStatement().executeQuery("SELECT ARRAY_ELEM(a,2) FROM 
t");
+assertTrue(rs.next());
+assertEquals(null, rs.getString(1));
+conn.close();
+}
+
+@Test
 public void testArraySelectSingleArrayElemWithCast() throws Exception {
 Connection conn;
 PreparedStatement stmt;

http://git-wip-us.apache.org/repos/asf/phoenix/blob/853828fe/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PChar.java
--
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PChar.java 
b/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PChar.java
index 6b26197..4170253 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PChar.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PChar.java
@@ -104,12 +104,12 @@ public class PChar extends PDataType {
 
 @Override
 public Object toObject(byte[] bytes, int offset, int length, PDataType 
actualType, SortOrder sortOrder, Integer maxLength, Integer scale) {
-  if (!actualType.isCoercibleTo(this)) { // TODO: have isCoercibleTo that 
takes bytes, offset?
-throwConstraintViolationException(actualType,this);
-  }
   if (length == 0) {
 return null;
   }
+  if (!actualType.isCoercibleTo(this)) {
+throwConstraintViolationException(actualType, this);
+  }
   length = StringUtil.getUnpaddedCharLength(bytes, offset, length, 
sortOrder);
   if (sortOrder == SortOrder.DESC) {
 bytes = SortOrder.invert(bytes, offset, length);

http://git-wip-us.apache.org/repos/asf/phoenix/blob/853828fe/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PVarchar.java
--
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PVarchar.java 
b/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PVarchar.java
index fa3dbad..2575115 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PVarchar.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PVarchar.java
@@ -59,12 +59,12 @@ public class 

phoenix git commit: PHOENIX-1949 NPE while inserting NULL in a VARCHAR array using UPSERT stmt (Ram)

2015-12-08 Thread ramkrishna
Repository: phoenix
Updated Branches:
  refs/heads/master bf0661775 -> c2a1f7445


PHOENIX-1949 NPE while inserting NULL in a VARCHAR array using UPSERT stmt
(Ram)


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

Branch: refs/heads/master
Commit: c2a1f7445f3882464a58d07cb9fd15a914e13d36
Parents: bf06617
Author: ramkrishna 
Authored: Wed Dec 9 09:43:01 2015 +0530
Committer: ramkrishna 
Committed: Wed Dec 9 09:45:01 2015 +0530

--
 .../org/apache/phoenix/end2end/ArrayIT.java | 27 
 .../org/apache/phoenix/schema/types/PChar.java  |  6 ++---
 .../apache/phoenix/schema/types/PVarchar.java   |  6 ++---
 3 files changed, 33 insertions(+), 6 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/c2a1f744/phoenix-core/src/it/java/org/apache/phoenix/end2end/ArrayIT.java
--
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/ArrayIT.java 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/ArrayIT.java
index 7400127..846507b 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/ArrayIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/ArrayIT.java
@@ -870,6 +870,33 @@ public class ArrayIT extends BaseClientManagedTimeIT {
 }
 
 @Test
+public void testArrayWithVarCharArray() throws Exception {
+Connection conn;
+PreparedStatement stmt;
+ResultSet rs;
+long ts = nextTimestamp();
+Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
+props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB, Long.toString(ts 
+ 10));
+conn = DriverManager.getConnection(getUrl(), props);
+conn.createStatement().execute("CREATE TABLE t ( k VARCHAR PRIMARY 
KEY, a VARCHAR ARRAY[])");
+conn.close();
+
+props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB, Long.toString(ts 
+ 30));
+conn = DriverManager.getConnection(getUrl(), props);
+stmt = conn.prepareStatement("UPSERT INTO t 
VALUES('a',ARRAY['a',null])");
+int res = stmt.executeUpdate();
+assertEquals(1, res);
+conn.commit();
+conn.close();
+props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB, Long.toString(ts 
+ 40));
+conn = DriverManager.getConnection(getUrl(), props);
+rs = conn.createStatement().executeQuery("SELECT ARRAY_ELEM(a,2) FROM 
t");
+assertTrue(rs.next());
+assertEquals(null, rs.getString(1));
+conn.close();
+}
+
+@Test
 public void testArraySelectSingleArrayElemWithCast() throws Exception {
 Connection conn;
 PreparedStatement stmt;

http://git-wip-us.apache.org/repos/asf/phoenix/blob/c2a1f744/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PChar.java
--
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PChar.java 
b/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PChar.java
index 6b26197..4170253 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PChar.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PChar.java
@@ -104,12 +104,12 @@ public class PChar extends PDataType {
 
 @Override
 public Object toObject(byte[] bytes, int offset, int length, PDataType 
actualType, SortOrder sortOrder, Integer maxLength, Integer scale) {
-  if (!actualType.isCoercibleTo(this)) { // TODO: have isCoercibleTo that 
takes bytes, offset?
-throwConstraintViolationException(actualType,this);
-  }
   if (length == 0) {
 return null;
   }
+  if (!actualType.isCoercibleTo(this)) {
+throwConstraintViolationException(actualType, this);
+  }
   length = StringUtil.getUnpaddedCharLength(bytes, offset, length, 
sortOrder);
   if (sortOrder == SortOrder.DESC) {
 bytes = SortOrder.invert(bytes, offset, length);

http://git-wip-us.apache.org/repos/asf/phoenix/blob/c2a1f744/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PVarchar.java
--
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PVarchar.java 
b/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PVarchar.java
index fa3dbad..2575115 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PVarchar.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PVarchar.java
@@ -59,12 +59,12 @@ public class PVarchar extends 

[06/44] phoenix git commit: Changing version to 4.5.0-HBase-1.1-SNAPSHOT

2015-12-08 Thread ramkrishna
Changing version to 4.5.0-HBase-1.1-SNAPSHOT


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

Branch: refs/heads/4.x-HBase-1.1
Commit: 3cdc3230c570ee8c22bb6c1bab975699fd02e94c
Parents: 56e1c0a
Author: Rajeshbabu Chintaguntla 
Authored: Mon May 25 17:46:18 2015 +0530
Committer: Rajeshbabu Chintaguntla 
Committed: Mon May 25 17:46:18 2015 +0530

--
 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 +-
 phoenix-server-client/pom.xml | 2 +-
 phoenix-server/pom.xml| 2 +-
 phoenix-spark/pom.xml | 2 +-
 pom.xml   | 2 +-
 9 files changed, 9 insertions(+), 9 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/3cdc3230/phoenix-assembly/pom.xml
--
diff --git a/phoenix-assembly/pom.xml b/phoenix-assembly/pom.xml
index 8d9a965..04d9335 100644
--- a/phoenix-assembly/pom.xml
+++ b/phoenix-assembly/pom.xml
@@ -26,7 +26,7 @@
   
 org.apache.phoenix
 phoenix
-4.4.0-SNAPSHOT
+4.5.0-HBase-1.1-SNAPSHOT
   
   phoenix-assembly
   Phoenix Assembly

http://git-wip-us.apache.org/repos/asf/phoenix/blob/3cdc3230/phoenix-core/pom.xml
--
diff --git a/phoenix-core/pom.xml b/phoenix-core/pom.xml
index 22e6b60..951e969 100644
--- a/phoenix-core/pom.xml
+++ b/phoenix-core/pom.xml
@@ -4,7 +4,7 @@
   
 org.apache.phoenix
 phoenix
-4.4.0-SNAPSHOT
+4.5.0-HBase-1.1-SNAPSHOT
   
   phoenix-core
   Phoenix Core

http://git-wip-us.apache.org/repos/asf/phoenix/blob/3cdc3230/phoenix-flume/pom.xml
--
diff --git a/phoenix-flume/pom.xml b/phoenix-flume/pom.xml
index b2b9a47..ea87ab0 100644
--- a/phoenix-flume/pom.xml
+++ b/phoenix-flume/pom.xml
@@ -26,7 +26,7 @@
   
 org.apache.phoenix
 phoenix
-4.4.0-SNAPSHOT
+4.5.0-HBase-1.1-SNAPSHOT
   
   phoenix-flume
   Phoenix - Flume

http://git-wip-us.apache.org/repos/asf/phoenix/blob/3cdc3230/phoenix-pherf/pom.xml
--
diff --git a/phoenix-pherf/pom.xml b/phoenix-pherf/pom.xml
index 0901f71..e751d73 100644
--- a/phoenix-pherf/pom.xml
+++ b/phoenix-pherf/pom.xml
@@ -22,7 +22,7 @@
 
 org.apache.phoenix
 phoenix
-4.4.0-SNAPSHOT
+4.5.0-HBase-1.1-SNAPSHOT
 
 
 phoenix-pherf

http://git-wip-us.apache.org/repos/asf/phoenix/blob/3cdc3230/phoenix-pig/pom.xml
--
diff --git a/phoenix-pig/pom.xml b/phoenix-pig/pom.xml
index 015a660..957c06f 100644
--- a/phoenix-pig/pom.xml
+++ b/phoenix-pig/pom.xml
@@ -26,7 +26,7 @@
   
 org.apache.phoenix
 phoenix
-4.4.0-SNAPSHOT
+4.5.0-HBase-1.1-SNAPSHOT
   
   phoenix-pig
   Phoenix - Pig

http://git-wip-us.apache.org/repos/asf/phoenix/blob/3cdc3230/phoenix-server-client/pom.xml
--
diff --git a/phoenix-server-client/pom.xml b/phoenix-server-client/pom.xml
index 4d6fd45..748e57c 100644
--- a/phoenix-server-client/pom.xml
+++ b/phoenix-server-client/pom.xml
@@ -4,7 +4,7 @@
   
 org.apache.phoenix
 phoenix
-4.4.0-SNAPSHOT
+4.5.0-HBase-1.1-SNAPSHOT
   
   phoenix-server-client
   Phoenix Query Server Client

http://git-wip-us.apache.org/repos/asf/phoenix/blob/3cdc3230/phoenix-server/pom.xml
--
diff --git a/phoenix-server/pom.xml b/phoenix-server/pom.xml
index 9f6289f..ab9a472 100644
--- a/phoenix-server/pom.xml
+++ b/phoenix-server/pom.xml
@@ -4,7 +4,7 @@
   
 org.apache.phoenix
 phoenix
-4.4.0-SNAPSHOT
+4.5.0-HBase-1.1-SNAPSHOT
   
   phoenix-server
   Phoenix Query Server

http://git-wip-us.apache.org/repos/asf/phoenix/blob/3cdc3230/phoenix-spark/pom.xml
--
diff --git a/phoenix-spark/pom.xml b/phoenix-spark/pom.xml
index a232cf4..e42a7ec 100644
--- a/phoenix-spark/pom.xml
+++ b/phoenix-spark/pom.xml
@@ -28,7 +28,7 @@
   
 org.apache.phoenix
 phoenix
-4.4.0-SNAPSHOT
+4.5.0-HBase-1.1-SNAPSHOT
   
   phoenix-spark
   Phoenix - Spark

http://git-wip-us.apache.org/repos/asf/phoenix/blob/3cdc3230/pom.xml
--
diff --git a/pom.xml b/pom.xml
index 

[16/44] phoenix git commit: PHOENIX-2016 Some Phoenix tests failed with NPE(Alicia Ying Shu)

2015-12-08 Thread ramkrishna
PHOENIX-2016 Some Phoenix tests failed with NPE(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/dc46b144
Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/dc46b144
Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/dc46b144

Branch: refs/heads/4.x-HBase-1.1
Commit: dc46b144aa9eaf315c3969669dab7f0a50d94281
Parents: eb9452d
Author: Rajeshbabu Chintaguntla 
Authored: Mon Jun 1 21:34:16 2015 +0530
Committer: Rajeshbabu Chintaguntla 
Committed: Mon Jun 1 21:34:16 2015 +0530

--
 phoenix-core/src/test/java/org/apache/phoenix/query/BaseTest.java | 1 +
 1 file changed, 1 insertion(+)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/dc46b144/phoenix-core/src/test/java/org/apache/phoenix/query/BaseTest.java
--
diff --git a/phoenix-core/src/test/java/org/apache/phoenix/query/BaseTest.java 
b/phoenix-core/src/test/java/org/apache/phoenix/query/BaseTest.java
index b0574c3..fa78656 100644
--- a/phoenix-core/src/test/java/org/apache/phoenix/query/BaseTest.java
+++ b/phoenix-core/src/test/java/org/apache/phoenix/query/BaseTest.java
@@ -1627,6 +1627,7 @@ public abstract class BaseTest {
  * Disable and drop all the tables except SYSTEM.CATALOG and 
SYSTEM.SEQUENCE
  */
 private static void disableAndDropNonSystemTables() throws Exception {
+if (driver == null) return;
 HBaseAdmin admin = driver.getConnectionQueryServices(null, 
null).getAdmin();
 try {
 HTableDescriptor[] tables = admin.listTables();



[09/44] phoenix git commit: Revert "PHOENIX-2008 Integration tests are failing with HBase-1.1.0 because HBASE-13756(Rajeshbabu)"

2015-12-08 Thread ramkrishna
Revert "PHOENIX-2008 Integration tests are failing with HBase-1.1.0 because 
HBASE-13756(Rajeshbabu)"

This reverts commit 56e1c0a1f348572fb73e9d0b8bbfb053df7f8710.


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

Branch: refs/heads/4.x-HBase-1.1
Commit: 1a2f2dc1ea6dd75c224b78a0dc2b312b0e6f5bce
Parents: 5546a42
Author: Rajeshbabu Chintaguntla 
Authored: Wed May 27 14:52:25 2015 +0530
Committer: Rajeshbabu Chintaguntla 
Committed: Wed May 27 14:52:25 2015 +0530

--
 phoenix-core/src/test/java/org/apache/phoenix/query/BaseTest.java | 2 --
 1 file changed, 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/1a2f2dc1/phoenix-core/src/test/java/org/apache/phoenix/query/BaseTest.java
--
diff --git a/phoenix-core/src/test/java/org/apache/phoenix/query/BaseTest.java 
b/phoenix-core/src/test/java/org/apache/phoenix/query/BaseTest.java
index 4aa28c4..54ae670 100644
--- a/phoenix-core/src/test/java/org/apache/phoenix/query/BaseTest.java
+++ b/phoenix-core/src/test/java/org/apache/phoenix/query/BaseTest.java
@@ -620,8 +620,6 @@ public abstract class BaseTest {
 }
 //no point doing sanity checks when running tests.
 conf.setBoolean("hbase.table.sanity.checks", false);
-// Remove this configuration once hbase has HBASE-13756 fix.
-conf.set("hbase.regionserver.msginterval", "30");
 // set the server rpc controller and rpc scheduler factory, used to 
configure the cluster
 conf.set(RpcControllerFactory.CUSTOM_CONTROLLER_CONF_KEY, 
DEFAULT_SERVER_RPC_CONTROLLER_FACTORY);
 conf.set(RSRpcServices.REGION_SERVER_RPC_SCHEDULER_FACTORY_CLASS, 
DEFAULT_RPC_SCHEDULER_FACTORY);



[02/44] phoenix git commit: PHOENIX-1681 Use the new Region Interface (Andrew Purtell)

2015-12-08 Thread ramkrishna
PHOENIX-1681 Use the new Region Interface (Andrew Purtell)


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

Branch: refs/heads/4.x-HBase-1.1
Commit: ea622d5f7ab5c37d2ecf8be6054e5ed42f36a035
Parents: 98271b8
Author: Enis Soztutar 
Authored: Thu May 21 23:22:54 2015 -0700
Committer: Enis Soztutar 
Committed: Fri May 22 00:30:56 2015 -0700

--
 ...ReplayWithIndexWritesAndCompressedWALIT.java |  4 +-
 .../EndToEndCoveredColumnsIndexBuilderIT.java   |  4 +-
 .../IndexHalfStoreFileReaderGenerator.java  |  9 +-
 .../regionserver/IndexSplitTransaction.java | 65 +-
 .../hbase/regionserver/LocalIndexMerger.java| 16 ++--
 .../hbase/regionserver/LocalIndexSplitter.java  | 11 +--
 .../coprocessor/BaseScannerRegionObserver.java  | 26 +++---
 .../GroupedAggregateRegionObserver.java | 13 +--
 .../coprocessor/MetaDataEndpointImpl.java   | 94 ++--
 .../phoenix/coprocessor/ScanRegionObserver.java | 17 ++--
 .../coprocessor/SequenceRegionObserver.java | 16 ++--
 .../UngroupedAggregateRegionObserver.java   | 29 +++---
 .../hbase/index/covered/data/LocalTable.java|  5 +-
 .../write/ParallelWriterIndexCommitter.java |  8 +-
 .../recovery/PerRegionIndexWriteCache.java  | 10 +--
 .../recovery/StoreFailuresInCachePolicy.java|  4 +-
 .../TrackingParallelWriterIndexCommitter.java   |  8 +-
 .../phoenix/index/PhoenixIndexBuilder.java  |  4 +-
 .../apache/phoenix/index/PhoenixIndexCodec.java | 14 ++-
 .../schema/stats/StatisticsCollector.java   | 14 +--
 .../phoenix/schema/stats/StatisticsScanner.java | 16 ++--
 .../phoenix/schema/stats/StatisticsWriter.java  | 16 ++--
 .../java/org/apache/phoenix/util/IndexUtil.java | 38 
 .../index/covered/TestLocalTableState.java  |  8 +-
 .../index/write/TestWALRecoveryCaching.java | 17 ++--
 .../recovery/TestPerRegionIndexWriteCache.java  |  6 +-
 26 files changed, 230 insertions(+), 242 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/ea622d5f/phoenix-core/src/it/java/org/apache/hadoop/hbase/regionserver/wal/WALReplayWithIndexWritesAndCompressedWALIT.java
--
diff --git 
a/phoenix-core/src/it/java/org/apache/hadoop/hbase/regionserver/wal/WALReplayWithIndexWritesAndCompressedWALIT.java
 
b/phoenix-core/src/it/java/org/apache/hadoop/hbase/regionserver/wal/WALReplayWithIndexWritesAndCompressedWALIT.java
index 3b8ff29..611ba68 100644
--- 
a/phoenix-core/src/it/java/org/apache/hadoop/hbase/regionserver/wal/WALReplayWithIndexWritesAndCompressedWALIT.java
+++ 
b/phoenix-core/src/it/java/org/apache/hadoop/hbase/regionserver/wal/WALReplayWithIndexWritesAndCompressedWALIT.java
@@ -159,7 +159,7 @@ public class WALReplayWithIndexWritesAndCompressedWALIT {
   }
 
   /**
-   * Test writing edits into an HRegion, closing it, splitting logs, opening 
Region again. Verify
+   * Test writing edits into an region, closing it, splitting logs, opening 
Region again. Verify
* seqids.
* @throws Exception on failure
*/
@@ -183,7 +183,7 @@ public class WALReplayWithIndexWritesAndCompressedWALIT {
 builder.build(htd);
 
 // create the region + its WAL
-HRegion region0 = HRegion.createHRegion(hri, hbaseRootDir, this.conf, htd);
+HRegion region0 = HRegion.createHRegion(hri, hbaseRootDir, this.conf, 
htd); // FIXME: Uses private type
 region0.close();
 region0.getWAL().close();
 

http://git-wip-us.apache.org/repos/asf/phoenix/blob/ea622d5f/phoenix-core/src/it/java/org/apache/phoenix/hbase/index/covered/EndToEndCoveredColumnsIndexBuilderIT.java
--
diff --git 
a/phoenix-core/src/it/java/org/apache/phoenix/hbase/index/covered/EndToEndCoveredColumnsIndexBuilderIT.java
 
b/phoenix-core/src/it/java/org/apache/phoenix/hbase/index/covered/EndToEndCoveredColumnsIndexBuilderIT.java
index d90733f..6b2309e 100644
--- 
a/phoenix-core/src/it/java/org/apache/phoenix/hbase/index/covered/EndToEndCoveredColumnsIndexBuilderIT.java
+++ 
b/phoenix-core/src/it/java/org/apache/phoenix/hbase/index/covered/EndToEndCoveredColumnsIndexBuilderIT.java
@@ -41,7 +41,7 @@ import org.apache.hadoop.hbase.KeyValue;
 import org.apache.hadoop.hbase.client.HBaseAdmin;
 import org.apache.hadoop.hbase.client.HTable;
 import org.apache.hadoop.hbase.client.Put;
-import org.apache.hadoop.hbase.regionserver.HRegion;
+import org.apache.hadoop.hbase.regionserver.Region;
 import org.apache.hadoop.hbase.util.Bytes;
 import org.apache.phoenix.util.EnvironmentEdge;
 import 

[20/44] phoenix git commit: PHOENIX-777 - Support null value for fixed length ARRAY (Dumindu Buddhika)

2015-12-08 Thread ramkrishna
PHOENIX-777 - Support null value for fixed length ARRAY (Dumindu Buddhika)


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

Branch: refs/heads/4.x-HBase-1.1
Commit: 6f890ade0691d03469ff8fce81c2fa9edd6941af
Parents: 9c5f111
Author: ramkrishna 
Authored: Tue Jun 2 11:18:51 2015 +0530
Committer: ramkrishna 
Committed: Tue Jun 2 11:18:51 2015 +0530

--
 .../phoenix/end2end/ArraysWithNullsIT.java  | 300 +++
 .../phoenix/compile/ExpressionCompiler.java |   9 +-
 .../apache/phoenix/schema/types/PBinary.java|   2 +-
 .../org/apache/phoenix/schema/types/PChar.java  |   5 +-
 .../org/apache/phoenix/schema/types/PDate.java  |   6 +-
 .../apache/phoenix/schema/types/PDecimal.java   |   3 +
 .../apache/phoenix/schema/types/PTimestamp.java |  17 +-
 .../phoenix/schema/types/PhoenixArray.java  |  51 ++--
 8 files changed, 358 insertions(+), 35 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/6f890ade/phoenix-core/src/it/java/org/apache/phoenix/end2end/ArraysWithNullsIT.java
--
diff --git 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/ArraysWithNullsIT.java 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/ArraysWithNullsIT.java
new file mode 100644
index 000..b034193
--- /dev/null
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/ArraysWithNullsIT.java
@@ -0,0 +1,300 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.phoenix.end2end;
+
+import static org.junit.Assert.assertEquals;
+
+import java.sql.*;
+
+import org.apache.phoenix.schema.types.PTimestamp;
+import org.apache.phoenix.schema.types.PhoenixArray;
+import org.junit.Test;
+
+public class ArraysWithNullsIT extends BaseClientManagedTimeIT {
+
+@Test
+public void testArrayUpsertIntWithNulls() throws Exception {
+Connection conn = DriverManager.getConnection(getUrl());
+conn.createStatement().execute("CREATE TABLE t1 ( k VARCHAR PRIMARY 
KEY, a INTEGER[])");
+
+PreparedStatement stmt = conn.prepareStatement("UPSERT INTO t1 
VALUES('a',ARRAY[null,3,null])");
+stmt.execute();
+conn.commit();
+
+ResultSet rs = conn.createStatement().executeQuery("Select a from t1 
where k = 'a'");
+rs.next();
+Array array = conn.createArrayOf("INTEGER",new Object[]{null,3,null});
+
+assertEquals(rs.getArray(1),array);
+conn.close();
+
+}
+
+
+
+@Test
+public void testArrayUpsertVarcharWithNulls() throws Exception {
+Connection conn = DriverManager.getConnection(getUrl());
+conn.createStatement().execute("CREATE TABLE t2 ( k VARCHAR PRIMARY 
KEY, a VARCHAR[])");
+
+PreparedStatement stmt = conn.prepareStatement("UPSERT INTO t2 
VALUES('a',ARRAY['10',null])");
+stmt.execute();
+conn.commit();
+
+ResultSet rs = conn.createStatement().executeQuery("Select a from t2 
where k = 'a'");
+rs.next();
+Array array = conn.createArrayOf("VARCHAR",new Object[]{"10",null});
+
+assertEquals(rs.getArray(1),array);
+conn.close();
+
+}
+
+@Test
+public void testArrayUpsertBigIntWithNulls() throws Exception {
+Connection conn = DriverManager.getConnection(getUrl());
+conn.createStatement().execute("CREATE TABLE t3 ( k VARCHAR PRIMARY 
KEY, a BIGINT[])");
+
+PreparedStatement stmt = conn.prepareStatement("UPSERT INTO t3 
VALUES('a',ARRAY[2,null,32335,4])");
+stmt.execute();
+conn.commit();
+
+ResultSet rs = conn.createStatement().executeQuery("Select a from t3 
where k = 'a'");
+rs.next();
+Array array = conn.createArrayOf("BIGINT",new 
Object[]{(long)2,null,(long)32335,(long)4});
+
+

[36/44] phoenix git commit: PHOENIX-978: allow views to extend parent's PK

2015-12-08 Thread ramkrishna
PHOENIX-978: allow views to extend parent's PK


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

Branch: refs/heads/4.x-HBase-1.1
Commit: 9db70f56326d380857bf71b4be82d29276920a82
Parents: b0786f5
Author: Eli Levine 
Authored: Mon Jun 29 16:54:37 2015 -0700
Committer: Eli Levine 
Committed: Mon Jun 29 16:54:37 2015 -0700

--
 .../end2end/TenantSpecificTablesDDLIT.java  | 23 +
 .../java/org/apache/phoenix/end2end/ViewIT.java | 96 
 .../phoenix/exception/SQLExceptionCode.java |  2 -
 .../apache/phoenix/schema/MetaDataClient.java   | 21 +
 4 files changed, 102 insertions(+), 40 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/9db70f56/phoenix-core/src/it/java/org/apache/phoenix/end2end/TenantSpecificTablesDDLIT.java
--
diff --git 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/TenantSpecificTablesDDLIT.java
 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/TenantSpecificTablesDDLIT.java
index a7c7291..88f91e2 100644
--- 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/TenantSpecificTablesDDLIT.java
+++ 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/TenantSpecificTablesDDLIT.java
@@ -17,9 +17,7 @@
  */
 package org.apache.phoenix.end2end;
 
-import static 
org.apache.phoenix.exception.SQLExceptionCode.CANNOT_DEFINE_PK_FOR_VIEW;
 import static org.apache.phoenix.exception.SQLExceptionCode.CANNOT_DROP_PK;
-import static 
org.apache.phoenix.exception.SQLExceptionCode.CANNOT_MODIFY_VIEW_PK;
 import static 
org.apache.phoenix.exception.SQLExceptionCode.CANNOT_MUTATE_TABLE;
 import static org.apache.phoenix.exception.SQLExceptionCode.TABLE_UNDEFINED;
 import static org.apache.phoenix.jdbc.PhoenixDatabaseMetaData.KEY_SEQ;
@@ -158,16 +156,10 @@ public class TenantSpecificTablesDDLIT extends 
BaseTenantSpecificTablesIT {
 }
 
 @Test
-public void testTenantSpecificTableCannotDeclarePK() throws SQLException {
-try {
-createTestTable(PHOENIX_JDBC_TENANT_SPECIFIC_URL, "CREATE VIEW 
TENANT_TABLE2 ( \n" + 
+public void testTenantSpecificTableCanDeclarePK() throws SQLException {
+createTestTable(PHOENIX_JDBC_TENANT_SPECIFIC_URL, "CREATE VIEW 
TENANT_TABLE2 ( \n" + 
 "tenant_col VARCHAR PRIMARY KEY) AS SELECT 
*\n" + 
 "FROM PARENT_TABLE", null, 
nextTimestamp());
-fail();
-}
-catch (SQLException expected) {
-assertEquals(CANNOT_DEFINE_PK_FOR_VIEW.getErrorCode(), 
expected.getErrorCode());
-}
 }
 
 @Test(expected=ColumnAlreadyExistsException.class)
@@ -259,19 +251,12 @@ public class TenantSpecificTablesDDLIT extends 
BaseTenantSpecificTablesIT {
 }
 
 @Test
-public void testMutationOfPKInTenantTablesNotAllowed() throws Exception {
+public void testDropOfPKInTenantTablesNotAllowed() throws Exception {
 Properties props = new Properties();
 props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB, 
Long.toString(nextTimestamp()));
 Connection conn = 
DriverManager.getConnection(PHOENIX_JDBC_TENANT_SPECIFIC_URL, props);
 try {
-try {
-conn.createStatement().execute("alter table " + 
TENANT_TABLE_NAME + " add new_tenant_pk char(1) primary key");
-fail();
-}
-catch (SQLException expected) {
-assertEquals(CANNOT_MODIFY_VIEW_PK.getErrorCode(), 
expected.getErrorCode());
-}
-
+// try removing a PK col
 try {
 conn.createStatement().execute("alter table " + 
TENANT_TABLE_NAME + " drop column id");
 fail();

http://git-wip-us.apache.org/repos/asf/phoenix/blob/9db70f56/phoenix-core/src/it/java/org/apache/phoenix/end2end/ViewIT.java
--
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/ViewIT.java 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/ViewIT.java
index fb58a8f..db38ab3 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/ViewIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/ViewIT.java
@@ -17,8 +17,11 @@
  */
 package org.apache.phoenix.end2end;
 
+import static com.google.common.collect.Lists.newArrayListWithExpectedSize;
+import static 
org.apache.phoenix.exception.SQLExceptionCode.NOT_NULLABLE_COLUMN_IN_ROW_KEY;
 import static org.apache.phoenix.util.TestUtil.analyzeTable;
 import static 

[18/44] phoenix git commit: PHOENIX-1962 Apply check style to the build

2015-12-08 Thread ramkrishna
PHOENIX-1962 Apply check style to the build


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

Branch: refs/heads/4.x-HBase-1.1
Commit: 29ea503546265a619ce501c477a109b69f940a00
Parents: f2be913
Author: Nick Dimiduk 
Authored: Sat May 9 11:10:54 2015 -0700
Committer: Nick Dimiduk 
Committed: Mon Jun 1 12:21:48 2015 -0700

--
 phoenix-assembly/pom.xml|   4 +
 phoenix-core/pom.xml|   4 +
 phoenix-flume/pom.xml   |   4 +
 phoenix-pherf/pom.xml   |   1 +
 phoenix-pig/pom.xml |   4 +
 phoenix-server-client/pom.xml   |   4 +
 phoenix-server/pom.xml  |   4 +
 phoenix-spark/pom.xml   |   1 +
 pom.xml |  23 ++
 src/main/config/checkstyle/checker.xml  | 281 +++
 src/main/config/checkstyle/header.txt   |  16 ++
 src/main/config/checkstyle/suppressions.xml |  46 
 12 files changed, 392 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/29ea5035/phoenix-assembly/pom.xml
--
diff --git a/phoenix-assembly/pom.xml b/phoenix-assembly/pom.xml
index 04d9335..d275d03 100644
--- a/phoenix-assembly/pom.xml
+++ b/phoenix-assembly/pom.xml
@@ -33,6 +33,10 @@
   Assemble Phoenix artifacts
   pom
 
+  
+${project.basedir}/..
+  
+
   
 
   

http://git-wip-us.apache.org/repos/asf/phoenix/blob/29ea5035/phoenix-core/pom.xml
--
diff --git a/phoenix-core/pom.xml b/phoenix-core/pom.xml
index 951e969..6302441 100644
--- a/phoenix-core/pom.xml
+++ b/phoenix-core/pom.xml
@@ -24,6 +24,10 @@
   http://www.apache.org
   
 
+  
+${project.basedir}/..
+  
+
   
 
   

http://git-wip-us.apache.org/repos/asf/phoenix/blob/29ea5035/phoenix-flume/pom.xml
--
diff --git a/phoenix-flume/pom.xml b/phoenix-flume/pom.xml
index ea87ab0..c7f0650 100644
--- a/phoenix-flume/pom.xml
+++ b/phoenix-flume/pom.xml
@@ -31,6 +31,10 @@
   phoenix-flume
   Phoenix - Flume
 
+  
+${project.basedir}/..
+  
+
   

   org.apache.phoenix

http://git-wip-us.apache.org/repos/asf/phoenix/blob/29ea5035/phoenix-pherf/pom.xml
--
diff --git a/phoenix-pherf/pom.xml b/phoenix-pherf/pom.xml
index e751d73..dd45075 100644
--- a/phoenix-pherf/pom.xml
+++ b/phoenix-pherf/pom.xml
@@ -30,6 +30,7 @@
 Phoenix - Pherf
 
 
+  ${project.basedir}/..
 
 
 

http://git-wip-us.apache.org/repos/asf/phoenix/blob/29ea5035/phoenix-pig/pom.xml
--
diff --git a/phoenix-pig/pom.xml b/phoenix-pig/pom.xml
index 957c06f..55b34d3 100644
--- a/phoenix-pig/pom.xml
+++ b/phoenix-pig/pom.xml
@@ -31,6 +31,10 @@
   phoenix-pig
   Phoenix - Pig
 
+  
+${project.basedir}/..
+  
+
   
 
   org.apache.phoenix

http://git-wip-us.apache.org/repos/asf/phoenix/blob/29ea5035/phoenix-server-client/pom.xml
--
diff --git a/phoenix-server-client/pom.xml b/phoenix-server-client/pom.xml
index 748e57c..3e54a07 100644
--- a/phoenix-server-client/pom.xml
+++ b/phoenix-server-client/pom.xml
@@ -24,6 +24,10 @@
 http://www.apache.org
   
 
+  
+${project.basedir}/..
+  
+
   
 
   

http://git-wip-us.apache.org/repos/asf/phoenix/blob/29ea5035/phoenix-server/pom.xml
--
diff --git a/phoenix-server/pom.xml b/phoenix-server/pom.xml
index ab9a472..86b2525 100644
--- a/phoenix-server/pom.xml
+++ b/phoenix-server/pom.xml
@@ -24,6 +24,10 @@
 http://www.apache.org
   
 
+  
+${project.basedir}/..
+  
+
   
 
   

http://git-wip-us.apache.org/repos/asf/phoenix/blob/29ea5035/phoenix-spark/pom.xml
--
diff --git a/phoenix-spark/pom.xml b/phoenix-spark/pom.xml
index e42a7ec..1747573 100644
--- a/phoenix-spark/pom.xml
+++ b/phoenix-spark/pom.xml
@@ -37,6 +37,7 @@
 1.3.0
 2.10.4
 2.10
+${project.basedir}/..
   
 
   

http://git-wip-us.apache.org/repos/asf/phoenix/blob/29ea5035/pom.xml
--
diff --git a/pom.xml b/pom.xml
index f6708cc..be44399 100644
--- a/pom.xml
+++ b/pom.xml
@@ -76,6 +76,7 @@
 

[35/44] phoenix git commit: PHOENIX-1659 PhoenixDatabaseMetaData.getColumns does not return REMARKS column

2015-12-08 Thread ramkrishna
PHOENIX-1659 PhoenixDatabaseMetaData.getColumns does not return REMARKS column

Followup commit to adjust the COLUMN_FAMILY_POSITION in QueryUtil as well.


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

Branch: refs/heads/4.x-HBase-1.1
Commit: b0786f5d1082509da9ca2d9f20e651328f025069
Parents: 4c70522
Author: Josh Mahonin 
Authored: Mon Jun 29 15:27:01 2015 -0400
Committer: Josh Mahonin 
Committed: Mon Jun 29 17:00:41 2015 -0400

--
 phoenix-core/src/main/java/org/apache/phoenix/util/QueryUtil.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/b0786f5d/phoenix-core/src/main/java/org/apache/phoenix/util/QueryUtil.java
--
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/util/QueryUtil.java 
b/phoenix-core/src/main/java/org/apache/phoenix/util/QueryUtil.java
index a2d4a91..bc2141c 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/util/QueryUtil.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/util/QueryUtil.java
@@ -59,7 +59,7 @@ public final class QueryUtil {
 /**
  *  Column family name index within ResultSet resulting from {@link 
DatabaseMetaData#getColumns(String, String, String, String)}
  */
-public static final int COLUMN_FAMILY_POSITION = 24;
+public static final int COLUMN_FAMILY_POSITION = 25;
 
 /**
  *  Column name index within ResultSet resulting from {@link 
DatabaseMetaData#getColumns(String, String, String, String)}



[23/44] phoenix git commit: PHOENIX-2027 Subqueries with no data are raising IllegalStateException(Alicia Ying Shu)

2015-12-08 Thread ramkrishna
PHOENIX-2027 Subqueries with no data are raising IllegalStateException(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/bfd860ff
Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/bfd860ff
Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/bfd860ff

Branch: refs/heads/4.x-HBase-1.1
Commit: bfd860ffec62a784f1229997cf98892ea3c0592d
Parents: 18b9e72
Author: Rajeshbabu Chintaguntla 
Authored: Wed Jun 10 01:01:29 2015 +0530
Committer: Rajeshbabu Chintaguntla 
Committed: Wed Jun 10 01:01:29 2015 +0530

--
 .../apache/phoenix/end2end/SortMergeJoinIT.java | 54 
 .../phoenix/execute/SortMergeJoinPlan.java  |  4 +-
 2 files changed, 56 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/bfd860ff/phoenix-core/src/it/java/org/apache/phoenix/end2end/SortMergeJoinIT.java
--
diff --git 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/SortMergeJoinIT.java 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/SortMergeJoinIT.java
index 6f14a45..8b65ab3 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/SortMergeJoinIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/SortMergeJoinIT.java
@@ -2658,5 +2658,59 @@ public class SortMergeJoinIT extends 
BaseHBaseManagedTimeIT {
 }
 }
 
+@Test
+public void testSubqueryWithoutData() throws Exception {
+Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
+Connection conn = DriverManager.getConnection(getUrl(), props);
+conn.setAutoCommit(false);
+
+try {
+String GRAMMAR_TABLE = "CREATE TABLE IF NOT EXISTS GRAMMAR_TABLE 
(ID INTEGER PRIMARY KEY, " +
+"unsig_id UNSIGNED_INT, big_id BIGINT, unsig_long_id 
UNSIGNED_LONG, tiny_id TINYINT," +
+"unsig_tiny_id UNSIGNED_TINYINT, small_id SMALLINT, 
unsig_small_id UNSIGNED_SMALLINT," + 
+"float_id FLOAT, unsig_float_id UNSIGNED_FLOAT, double_id 
DOUBLE, unsig_double_id UNSIGNED_DOUBLE," + 
+"decimal_id DECIMAL, boolean_id BOOLEAN, time_id TIME, 
date_id DATE, timestamp_id TIMESTAMP," + 
+"unsig_time_id TIME, unsig_date_id DATE, 
unsig_timestamp_id TIMESTAMP, varchar_id VARCHAR (30)," + 
+"char_id CHAR (30), binary_id BINARY (100), varbinary_id 
VARBINARY (100))";
+
+String LARGE_TABLE = "CREATE TABLE IF NOT EXISTS LARGE_TABLE (ID 
INTEGER PRIMARY KEY, " +
+"unsig_id UNSIGNED_INT, big_id BIGINT, unsig_long_id 
UNSIGNED_LONG, tiny_id TINYINT," +
+"unsig_tiny_id UNSIGNED_TINYINT, small_id SMALLINT, 
unsig_small_id UNSIGNED_SMALLINT," + 
+"float_id FLOAT, unsig_float_id UNSIGNED_FLOAT, double_id 
DOUBLE, unsig_double_id UNSIGNED_DOUBLE," + 
+"decimal_id DECIMAL, boolean_id BOOLEAN, time_id TIME, 
date_id DATE, timestamp_id TIMESTAMP," + 
+"unsig_time_id TIME, unsig_date_id DATE, 
unsig_timestamp_id TIMESTAMP, varchar_id VARCHAR (30)," + 
+"char_id CHAR (30), binary_id BINARY (100), varbinary_id 
VARBINARY (100))";
+
+String SECONDARY_LARGE_TABLE = "CREATE TABLE IF NOT EXISTS 
SECONDARY_LARGE_TABLE (SEC_ID INTEGER PRIMARY KEY," +
+"sec_unsig_id UNSIGNED_INT, sec_big_id BIGINT, 
sec_usnig_long_id UNSIGNED_LONG, sec_tiny_id TINYINT," + 
+"sec_unsig_tiny_id UNSIGNED_TINYINT, sec_small_id 
SMALLINT, sec_unsig_small_id UNSIGNED_SMALLINT," + 
+"sec_float_id FLOAT, sec_unsig_float_id UNSIGNED_FLOAT, 
sec_double_id DOUBLE, sec_unsig_double_id UNSIGNED_DOUBLE," +
+"sec_decimal_id DECIMAL, sec_boolean_id BOOLEAN, 
sec_time_id TIME, sec_date_id DATE," +
+"sec_timestamp_id TIMESTAMP, sec_unsig_time_id TIME, 
sec_unsig_date_id DATE, sec_unsig_timestamp_id TIMESTAMP," +
+"sec_varchar_id VARCHAR (30), sec_char_id CHAR (30), 
sec_binary_id BINARY (100), sec_varbinary_id VARBINARY (100))";
+createTestTable(getUrl(), GRAMMAR_TABLE);
+createTestTable(getUrl(), LARGE_TABLE);
+createTestTable(getUrl(), SECONDARY_LARGE_TABLE);
+
+String ddl = "SELECT /*+USE_SORT_MERGE_JOIN*/ * FROM (SELECT ID, 
BIG_ID, DATE_ID FROM LARGE_TABLE AS A WHERE (A.ID % 5) = 0) AS A " +
+"INNER JOIN (SELECT SEC_ID, SEC_TINY_ID, 
SEC_UNSIG_FLOAT_ID FROM SECONDARY_LARGE_TABLE AS B WHERE (B.SEC_ID % 5) = 0) AS 
B " + 
+"ON A.ID=B.SEC_ID WHERE A.DATE_ID > ALL (SELECT 
SEC_DATE_ID FROM SECONDARY_LARGE_TABLE LIMIT 

[42/44] phoenix git commit: PHOENIX-1875 implement ARRAY_PREPEND built in function (Dumindu)

2015-12-08 Thread ramkrishna
PHOENIX-1875 implement ARRAY_PREPEND built in function (Dumindu)


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

Branch: refs/heads/4.x-HBase-1.1
Commit: 7b448cc24c48f695836c72a2dd08c7454ae928bc
Parents: 13ddda2
Author: ramkrishna 
Authored: Wed May 13 10:46:19 2015 +0530
Committer: ramkrishna 
Committed: Wed Jul 1 09:50:26 2015 +0530

--
 .../phoenix/end2end/ArrayPrependFunctionIT.java | 652 +++
 .../phoenix/expression/ExpressionType.java  |   4 +-
 .../function/ArrayAppendFunction.java   |  35 +-
 .../function/ArrayModifierFunction.java |  75 +++
 .../function/ArrayPrependFunction.java  |  96 +++
 .../phoenix/schema/types/PArrayDataType.java| 161 -
 .../expression/ArrayPrependFunctionTest.java| 552 
 7 files changed, 1541 insertions(+), 34 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/7b448cc2/phoenix-core/src/it/java/org/apache/phoenix/end2end/ArrayPrependFunctionIT.java
--
diff --git 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/ArrayPrependFunctionIT.java
 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/ArrayPrependFunctionIT.java
new file mode 100644
index 000..3145d95
--- /dev/null
+++ 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/ArrayPrependFunctionIT.java
@@ -0,0 +1,652 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.phoenix.end2end;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import java.sql.*;
+
+import org.apache.phoenix.schema.TypeMismatchException;
+import org.apache.phoenix.schema.types.PhoenixArray;
+import org.junit.Test;
+
+public class ArrayPrependFunctionIT extends BaseHBaseManagedTimeIT {
+
+private void initTableWithVarArray(Connection conn, String type, Object[] 
objectArray, String value) throws SQLException {
+conn.createStatement().execute("CREATE TABLE t ( k VARCHAR PRIMARY 
KEY, a " + type + "[],b " + type + ")");
+conn.commit();
+PreparedStatement stmt = conn.prepareStatement("UPSERT INTO t 
VALUES(?,?," + value + ")");
+PhoenixArray array = (PhoenixArray) conn.createArrayOf(type, 
objectArray);
+stmt.setString(1, "a");
+stmt.setArray(2, array);
+stmt.execute();
+conn.commit();
+
+}
+
+private void initTables(Connection conn) throws Exception {
+String ddl = "CREATE TABLE regions (region_name VARCHAR PRIMARY 
KEY,varchars VARCHAR[],integers INTEGER[],doubles DOUBLE[],bigints 
BIGINT[],chars CHAR(15)[],double1 DOUBLE,char1 CHAR(17),nullcheck 
INTEGER,chars2 CHAR(15)[])";
+conn.createStatement().execute(ddl);
+String dml = "UPSERT INTO 
regions(region_name,varchars,integers,doubles,bigints,chars,double1,char1,nullcheck,chars2)
 VALUES('SF Bay Area'," +
+"ARRAY['2345','46345','23234']," +
+"ARRAY[2345,46345,23234,456]," +
+"ARRAY[23.45,46.345,23.234,45.6,5.78]," +
+"ARRAY[12,34,56,78,910]," +
+"ARRAY['a','','c','ddd','e']," +
+"23.45," +
+"'wert'," +
+"NULL," +
+"ARRAY['foo','a','','c','ddd','e']" +
+")";
+PreparedStatement stmt = conn.prepareStatement(dml);
+stmt.execute();
+conn.commit();
+}
+
+private void initTablesDesc(Connection conn, String type, String val) 
throws Exception {
+String ddl = "CREATE TABLE regions (pk " + type + " PRIMARY KEY 
DESC,varchars VARCHAR[],integers INTEGER[],doubles DOUBLE[],bigints 
BIGINT[],chars CHAR(15)[],chars2 CHAR(15)[], bools BOOLEAN[])";
+

[11/44] phoenix git commit: PHOENIX-1964 - porting from master

2015-12-08 Thread ramkrishna
PHOENIX-1964 - porting from master


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

Branch: refs/heads/4.x-HBase-1.1
Commit: c95e28df94241f47d5cfe9a1515b21960c93adf2
Parents: 0e0b4dd
Author: cmarcel 
Authored: Wed May 27 13:58:45 2015 -0700
Committer: cmarcel 
Committed: Wed May 27 13:58:45 2015 -0700

--
 phoenix-pherf/config/pherf.properties   |  3 ++
 .../org/apache/phoenix/pherf/DataIngestIT.java  |  3 +-
 .../apache/phoenix/pherf/ResultBaseTestIT.java  | 45 ++
 .../java/org/apache/phoenix/pherf/Pherf.java|  7 +--
 .../apache/phoenix/pherf/PherfConstants.java| 50 +++-
 .../phoenix/pherf/loaddata/DataLoader.java  |  2 +-
 .../apache/phoenix/pherf/result/ResultUtil.java |  4 +-
 .../pherf/result/impl/CSVResultHandler.java |  5 +-
 .../pherf/result/impl/ImageResultHandler.java   |  5 +-
 .../pherf/result/impl/XMLResultHandler.java |  6 ++-
 .../apache/phoenix/pherf/util/ResourceList.java | 26 --
 .../pherf/workload/WorkloadExecutor.java|  2 +-
 .../phoenix/pherf/ConfigurationParserTest.java  |  2 +-
 .../org/apache/phoenix/pherf/ResourceTest.java  |  8 ++--
 .../apache/phoenix/pherf/ResultBaseTest.java| 44 +
 .../org/apache/phoenix/pherf/ResultTest.java|  5 +-
 16 files changed, 168 insertions(+), 49 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/c95e28df/phoenix-pherf/config/pherf.properties
--
diff --git a/phoenix-pherf/config/pherf.properties 
b/phoenix-pherf/config/pherf.properties
index 354707a..1142f9b5 100644
--- a/phoenix-pherf/config/pherf.properties
+++ b/phoenix-pherf/config/pherf.properties
@@ -29,3 +29,6 @@ pherf.default.dataloader.threadpool=0
 # When upserting, this is the max # of rows that will be inserted in a single 
commit
 pherf.default.dataloader.batchsize=1000
 
+# Directory where results from a scenario run will be written
+pherf.default.results.dir=RESULTS
+

http://git-wip-us.apache.org/repos/asf/phoenix/blob/c95e28df/phoenix-pherf/src/it/java/org/apache/phoenix/pherf/DataIngestIT.java
--
diff --git 
a/phoenix-pherf/src/it/java/org/apache/phoenix/pherf/DataIngestIT.java 
b/phoenix-pherf/src/it/java/org/apache/phoenix/pherf/DataIngestIT.java
index b29656d..2b56f43 100644
--- a/phoenix-pherf/src/it/java/org/apache/phoenix/pherf/DataIngestIT.java
+++ b/phoenix-pherf/src/it/java/org/apache/phoenix/pherf/DataIngestIT.java
@@ -18,7 +18,6 @@
 
 package org.apache.phoenix.pherf;
 
-import org.apache.phoenix.end2end.BaseHBaseManagedTimeIT;
 import org.apache.phoenix.pherf.configuration.Column;
 import org.apache.phoenix.pherf.configuration.DataTypeMapping;
 import org.apache.phoenix.pherf.configuration.Scenario;
@@ -39,7 +38,7 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
-public class DataIngestIT extends BaseHBaseManagedTimeIT {
+public class DataIngestIT extends ResultBaseTestIT {
 protected static PhoenixUtil util = new PhoenixUtil(true);
 static final String matcherScenario = ".*scenario/.*test.*xml";
 static final String matcherSchema = ".*datamodel/.*test.*sql";

http://git-wip-us.apache.org/repos/asf/phoenix/blob/c95e28df/phoenix-pherf/src/it/java/org/apache/phoenix/pherf/ResultBaseTestIT.java
--
diff --git 
a/phoenix-pherf/src/it/java/org/apache/phoenix/pherf/ResultBaseTestIT.java 
b/phoenix-pherf/src/it/java/org/apache/phoenix/pherf/ResultBaseTestIT.java
new file mode 100644
index 000..6e103b8
--- /dev/null
+++ b/phoenix-pherf/src/it/java/org/apache/phoenix/pherf/ResultBaseTestIT.java
@@ -0,0 +1,45 @@
+/*
+ * 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 

[19/44] phoenix git commit: PHOENIX-2012 RowKeyComparisonFilter logs unencoded data at DEBUG level

2015-12-08 Thread ramkrishna
PHOENIX-2012 RowKeyComparisonFilter logs unencoded data at DEBUG level


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

Branch: refs/heads/4.x-HBase-1.1
Commit: 9c5fae456f3a0934e43e02af0ef5188b9337
Parents: 29ea503
Author: Nick Dimiduk 
Authored: Wed May 27 15:58:32 2015 -0700
Committer: Nick Dimiduk 
Committed: Mon Jun 1 15:57:15 2015 -0700

--
 .../java/org/apache/phoenix/filter/RowKeyComparisonFilter.java  | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/9c5f/phoenix-core/src/main/java/org/apache/phoenix/filter/RowKeyComparisonFilter.java
--
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/filter/RowKeyComparisonFilter.java
 
b/phoenix-core/src/main/java/org/apache/phoenix/filter/RowKeyComparisonFilter.java
index 2e2037b..b7de7ac 100644
--- 
a/phoenix-core/src/main/java/org/apache/phoenix/filter/RowKeyComparisonFilter.java
+++ 
b/phoenix-core/src/main/java/org/apache/phoenix/filter/RowKeyComparisonFilter.java
@@ -73,8 +73,9 @@ public class RowKeyComparisonFilter extends 
BooleanExpressionFilter {
 if (evaluate) {
 inputTuple.setKey(v.getRowArray(), v.getRowOffset(), 
v.getRowLength());
 this.keepRow = Boolean.TRUE.equals(evaluate(inputTuple));
-if (logger.isDebugEnabled()) {
-logger.debug("RowKeyComparisonFilter: " + (this.keepRow ? 
"KEEP" : "FILTER")  + " row " + inputTuple);
+if (logger.isTraceEnabled()) {
+logger.trace("RowKeyComparisonFilter: " + (this.keepRow ? 
"KEEP" : "FILTER")
++ " row " + inputTuple);
 }
 evaluate = false;
 }



[41/44] phoenix git commit: minor changes based on jesses feedback

2015-12-08 Thread ramkrishna
minor changes based on jesses feedback


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

Branch: refs/heads/4.x-HBase-1.1
Commit: 13ddda22e82f9016b9e46544f659a03c8e7d1e5c
Parents: 6a96bd2
Author: Prashant Kommireddi 

Authored: Mon Jun 15 16:18:47 2015 -0700
Committer: ramkrishna 
Committed: Tue Jun 30 22:55:56 2015 +0530

--
 .../src/main/java/org/apache/phoenix/pig/util/TypeUtil.java   | 7 +++
 1 file changed, 3 insertions(+), 4 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/13ddda22/phoenix-pig/src/main/java/org/apache/phoenix/pig/util/TypeUtil.java
--
diff --git 
a/phoenix-pig/src/main/java/org/apache/phoenix/pig/util/TypeUtil.java 
b/phoenix-pig/src/main/java/org/apache/phoenix/pig/util/TypeUtil.java
index 6e32fb5..5820ec6 100644
--- a/phoenix-pig/src/main/java/org/apache/phoenix/pig/util/TypeUtil.java
+++ b/phoenix-pig/src/main/java/org/apache/phoenix/pig/util/TypeUtil.java
@@ -76,9 +76,7 @@ public final class TypeUtil {
 private TypeUtil() {}
 
 /**
- * A map of Phoenix to Pig data types.
- * 
- * @return
+ * @return map of Phoenix to Pig data types.
  */
 private static ImmutableMap init() {
 final ImmutableMap.Builder builder = new 
Builder();
@@ -160,7 +158,8 @@ public final class TypeUtil {
 
 /**
  * This method encodes a value with Phoenix data type. It begins with 
checking whether an object is BINARY and makes
- * a call to {@link #castBytes(Object, PDataType)} to convery bytes to 
targetPhoenixType
+ * a call to {@link #castBytes(Object, PDataType)} to convert bytes to 
targetPhoenixType. It returns a {@link RuntimeException}
+ * when object can not be coerced.
  * 
  * @param o
  * @param targetPhoenixType



[26/44] phoenix git commit: PHOENIX-2032 psql.py is broken after PHOENIX-2013

2015-12-08 Thread ramkrishna
PHOENIX-2032 psql.py is broken after PHOENIX-2013


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

Branch: refs/heads/4.x-HBase-1.1
Commit: d0bcb7b2304133031b945d50e01f0f1d5fd023d4
Parents: e64f61b
Author: Nick Dimiduk 
Authored: Fri Jun 12 10:23:05 2015 -0700
Committer: Nick Dimiduk 
Committed: Fri Jun 12 17:01:27 2015 -0700

--
 phoenix-assembly/pom.xml  |  4 
 phoenix-assembly/src/build/client.xml | 27 +++
 2 files changed, 23 insertions(+), 8 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/d0bcb7b2/phoenix-assembly/pom.xml
--
diff --git a/phoenix-assembly/pom.xml b/phoenix-assembly/pom.xml
index d275d03..ebc5d71 100644
--- a/phoenix-assembly/pom.xml
+++ b/phoenix-assembly/pom.xml
@@ -152,10 +152,6 @@
 
 
   org.apache.phoenix
-  phoenix-spark
-
-
-  org.apache.phoenix
   phoenix-server
 
 

http://git-wip-us.apache.org/repos/asf/phoenix/blob/d0bcb7b2/phoenix-assembly/src/build/client.xml
--
diff --git a/phoenix-assembly/src/build/client.xml 
b/phoenix-assembly/src/build/client.xml
index 101ccd6..e99bb19 100644
--- a/phoenix-assembly/src/build/client.xml
+++ b/phoenix-assembly/src/build/client.xml
@@ -53,13 +53,32 @@
 
 
 
+  phoenix-flume, phoenix-pig, etc). We should exclude phoenix-server and
+  phoenix-server-client in the future, see PHOENIX-2032, PHOENIX-2038 -->
 
   /
   true
-  
-org.apache.phoenix:phoenix-*
-  
+  
+  
+
+  *license*
+  *LICENSE*
+  **/license/**
+  **/LICENSE/**
+
+  
+  
+  true
+  
+  
 
   
 



[04/44] phoenix git commit: PHOENIX-1763 Support building with HBase-1.1.0

2015-12-08 Thread ramkrishna
PHOENIX-1763 Support building with HBase-1.1.0


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

Branch: refs/heads/4.x-HBase-1.1
Commit: 98271b888c113f10e174205434e05d3b36b7eb67
Parents: bf01eb2
Author: Enis Soztutar 
Authored: Thu May 21 23:08:26 2015 -0700
Committer: Enis Soztutar 
Committed: Fri May 22 00:30:56 2015 -0700

--
 phoenix-core/pom.xml| 17 +++--
 .../regionserver/IndexHalfStoreFileReader.java  | 31 ++--
 .../regionserver/IndexSplitTransaction.java | 39 --
 .../hbase/regionserver/LocalIndexMerger.java|  3 +-
 .../cache/aggcache/SpillableGroupByCache.java   | 13 +++-
 .../phoenix/coprocessor/BaseRegionScanner.java  | 12 +--
 .../coprocessor/BaseScannerRegionObserver.java  | 77 +++-
 .../coprocessor/DelegateRegionScanner.java  | 23 --
 .../GroupedAggregateRegionObserver.java | 53 --
 .../coprocessor/HashJoinRegionScanner.java  | 60 ---
 .../coprocessor/MetaDataRegionObserver.java | 23 +++---
 .../phoenix/coprocessor/ScanRegionObserver.java | 11 ++-
 .../UngroupedAggregateRegionObserver.java   | 55 +++---
 .../hbase/index/covered/data/LocalTable.java|  2 +-
 .../index/covered/filter/FamilyOnlyFilter.java  |  6 +-
 .../index/scanner/FilteredKeyValueScanner.java  |  2 +-
 .../phoenix/index/PhoenixIndexBuilder.java  |  6 +-
 .../iterate/RegionScannerResultIterator.java|  9 ++-
 .../phoenix/schema/stats/StatisticsScanner.java | 10 ++-
 .../hbase/ipc/PhoenixIndexRpcSchedulerTest.java |  6 +-
 .../index/covered/TestLocalTableState.java  |  1 -
 .../covered/filter/TestFamilyOnlyFilter.java| 12 +--
 .../index/write/TestWALRecoveryCaching.java |  4 +-
 phoenix-flume/pom.xml   |  9 ---
 phoenix-pig/pom.xml | 31 +---
 phoenix-spark/pom.xml   |  7 ++
 pom.xml | 41 ++-
 27 files changed, 361 insertions(+), 202 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/98271b88/phoenix-core/pom.xml
--
diff --git a/phoenix-core/pom.xml b/phoenix-core/pom.xml
index 45b8d73..22e6b60 100644
--- a/phoenix-core/pom.xml
+++ b/phoenix-core/pom.xml
@@ -350,16 +350,25 @@
 
   org.apache.hbase
   hbase-it
-  ${hbase.version}
   test-jar
   test
 
 
   org.apache.hbase
+  hbase-annotations
+
+
+  org.apache.hbase
   hbase-common
 
 
   org.apache.hbase
+  hbase-common
+  test
+  test-jar
+
+
+  org.apache.hbase
   hbase-protocol
 
 
@@ -369,18 +378,16 @@
 
   org.apache.hbase
   hbase-server
-  ${hbase.version}
 
 
   org.apache.hbase
   hbase-server
-  ${hbase.version}
   test-jar
+  test
 
 
   org.apache.hbase
   hbase-hadoop-compat
-  test
 
 
   org.apache.hbase
@@ -391,13 +398,11 @@
 
   org.apache.hbase
   hbase-hadoop2-compat
-  ${hbase.version}
   test
 
 
   org.apache.hbase
   hbase-hadoop2-compat
-  ${hbase.version}
   test-jar
   test
 

http://git-wip-us.apache.org/repos/asf/phoenix/blob/98271b88/phoenix-core/src/main/java/org/apache/hadoop/hbase/regionserver/IndexHalfStoreFileReader.java
--
diff --git 
a/phoenix-core/src/main/java/org/apache/hadoop/hbase/regionserver/IndexHalfStoreFileReader.java
 
b/phoenix-core/src/main/java/org/apache/hadoop/hbase/regionserver/IndexHalfStoreFileReader.java
index 49e2022..9befc8c 100644
--- 
a/phoenix-core/src/main/java/org/apache/hadoop/hbase/regionserver/IndexHalfStoreFileReader.java
+++ 
b/phoenix-core/src/main/java/org/apache/hadoop/hbase/regionserver/IndexHalfStoreFileReader.java
@@ -47,11 +47,11 @@ import org.apache.phoenix.index.IndexMaintainer;
  * that sort lowest and 'top' is the second half of the file with keys that 
sort greater than those
  * of the bottom half. The top includes the split files midkey, of the key 
that follows if it does
  * not exist in the file.
- * 
+ *
  * 
  * This type works in tandem with the {@link Reference} type. This class is 
used reading while
  * Reference is used writing.
- * 
+ *
  * 
  * This file is not splitable. Calls to {@link #midkey()} return null.
  */
@@ -64,7 +64,7 @@ public class IndexHalfStoreFileReader extends 
StoreFile.Reader {
 private final byte[] splitkey;
 private final 

[07/44] phoenix git commit: PHOENIX-2005 Connection utilities omit zk client port, parent znode

2015-12-08 Thread ramkrishna
PHOENIX-2005 Connection utilities omit zk client port, parent znode


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

Branch: refs/heads/4.x-HBase-1.1
Commit: c6b37b979da1b514bcb9257c7e095e39b0c2c215
Parents: 3cdc323
Author: Nick Dimiduk 
Authored: Tue May 26 11:11:48 2015 -0700
Committer: Nick Dimiduk 
Committed: Tue May 26 13:27:03 2015 -0700

--
 .../phoenix/jdbc/PhoenixEmbeddedDriver.java | 28 --
 .../phoenix/mapreduce/CsvBulkLoadTool.java  | 93 ++--
 .../phoenix/mapreduce/CsvToKeyValueMapper.java  | 26 +-
 .../query/ConnectionQueryServicesImpl.java  |  4 +-
 .../java/org/apache/phoenix/util/QueryUtil.java | 45 --
 .../phoenix/jdbc/PhoenixEmbeddedDriverTest.java | 14 ++-
 .../phoenix/mapreduce/CsvBulkLoadToolTest.java  | 11 ---
 .../mapreduce/CsvToKeyValueMapperTest.java  | 15 
 .../org/apache/phoenix/util/QueryUtilTest.java  | 33 ---
 9 files changed, 139 insertions(+), 130 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/c6b37b97/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixEmbeddedDriver.java
--
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixEmbeddedDriver.java 
b/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixEmbeddedDriver.java
index 9e95667..2451603 100644
--- 
a/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixEmbeddedDriver.java
+++ 
b/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixEmbeddedDriver.java
@@ -31,6 +31,7 @@ import java.util.logging.Logger;
 
 import javax.annotation.concurrent.Immutable;
 
+import org.apache.hadoop.hbase.HConstants;
 import org.apache.phoenix.coprocessor.MetaDataProtocol;
 import org.apache.phoenix.exception.SQLExceptionCode;
 import org.apache.phoenix.exception.SQLExceptionInfo;
@@ -174,10 +175,10 @@ public abstract class PhoenixEmbeddedDriver implements 
Driver, org.apache.phoeni
 }
 
 /**
- * 
+ *
  * Class to encapsulate connection info for HBase
  *
- * 
+ *
  * @since 0.1.1
  */
 public static class ConnectionInfo {
@@ -204,12 +205,18 @@ public abstract class PhoenixEmbeddedDriver implements 
Driver, org.apache.phoeni
 return false;
 }
 
-protected static ConnectionInfo create(String url) throws SQLException 
{
-StringTokenizer tokenizer = new StringTokenizer(url == null ? "" : 
url.substring(PhoenixRuntime.JDBC_PROTOCOL.length()),DELIMITERS, true);
+public static ConnectionInfo create(String url) throws SQLException {
+url = url == null ? "" : url;
+url = url.startsWith(PhoenixRuntime.JDBC_PROTOCOL)
+? url.substring(PhoenixRuntime.JDBC_PROTOCOL.length())
+: url;
+StringTokenizer tokenizer = new StringTokenizer(url, DELIMITERS, 
true);
 int nTokens = 0;
 String[] tokens = new String[5];
 String token = null;
-while (tokenizer.hasMoreTokens() && 
!(token=tokenizer.nextToken()).equals(TERMINATOR) && tokenizer.hasMoreTokens() 
&& nTokens < tokens.length) {
+while (tokenizer.hasMoreTokens() &&
+!(token=tokenizer.nextToken()).equals(TERMINATOR) &&
+tokenizer.hasMoreTokens() && nTokens < tokens.length) {
 token = tokenizer.nextToken();
 // This would mean we have an empty string for a token which 
is illegal
 if (DELIMITERS.contains(token)) {
@@ -316,8 +323,7 @@ public abstract class PhoenixEmbeddedDriver implements 
Driver, org.apache.phoeni
 private final String principal;
 private final String keytab;
 
-// used for testing
-ConnectionInfo(String zookeeperQuorum, Integer port, String rootNode, 
String principal, String keytab) {
+public ConnectionInfo(String zookeeperQuorum, Integer port, String 
rootNode, String principal, String keytab) {
 this.zookeeperQuorum = zookeeperQuorum;
 this.port = port;
 this.rootNode = rootNode;
@@ -326,8 +332,7 @@ public abstract class PhoenixEmbeddedDriver implements 
Driver, org.apache.phoeni
 this.keytab = keytab;
 }
 
-// used for testing
-ConnectionInfo(String zookeeperQuorum, Integer port, String rootNode) {
+public ConnectionInfo(String zookeeperQuorum, Integer port, String 
rootNode) {
this(zookeeperQuorum, port, rootNode, null, null);
 }
 
@@ 

[15/44] phoenix git commit: PHOENIX-2007 java.sql.SQLException: Encountered exception in sub plan [0] execution(Alicia Ying Shu)

2015-12-08 Thread ramkrishna
PHOENIX-2007 java.sql.SQLException: Encountered exception in sub plan [0] 
execution(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/eb9452d5
Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/eb9452d5
Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/eb9452d5

Branch: refs/heads/4.x-HBase-1.1
Commit: eb9452d55068ff4574b48938aebba765c28caaaf
Parents: c1882ee
Author: Rajeshbabu Chintaguntla 
Authored: Mon Jun 1 21:05:24 2015 +0530
Committer: Rajeshbabu Chintaguntla 
Committed: Mon Jun 1 21:05:24 2015 +0530

--
 .../org/apache/phoenix/end2end/HashJoinIT.java  | 54 
 .../apache/phoenix/execute/HashJoinPlan.java|  7 +--
 2 files changed, 58 insertions(+), 3 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/eb9452d5/phoenix-core/src/it/java/org/apache/phoenix/end2end/HashJoinIT.java
--
diff --git 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/HashJoinIT.java 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/HashJoinIT.java
index a03204a..88e03ca 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/HashJoinIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/HashJoinIT.java
@@ -3813,6 +3813,60 @@ public class HashJoinIT extends BaseHBaseManagedTimeIT {
 }
 }
 
+@Test
+public void testSubqueryWithoutData() throws Exception {
+Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
+Connection conn = DriverManager.getConnection(getUrl(), props);
+conn.setAutoCommit(false);
+
+try {
+String GRAMMAR_TABLE = "CREATE TABLE IF NOT EXISTS GRAMMAR_TABLE 
(ID INTEGER PRIMARY KEY, " +
+"unsig_id UNSIGNED_INT, big_id BIGINT, unsig_long_id 
UNSIGNED_LONG, tiny_id TINYINT," +
+"unsig_tiny_id UNSIGNED_TINYINT, small_id SMALLINT, 
unsig_small_id UNSIGNED_SMALLINT," + 
+"float_id FLOAT, unsig_float_id UNSIGNED_FLOAT, double_id 
DOUBLE, unsig_double_id UNSIGNED_DOUBLE," + 
+"decimal_id DECIMAL, boolean_id BOOLEAN, time_id TIME, 
date_id DATE, timestamp_id TIMESTAMP," + 
+"unsig_time_id TIME, unsig_date_id DATE, 
unsig_timestamp_id TIMESTAMP, varchar_id VARCHAR (30)," + 
+"char_id CHAR (30), binary_id BINARY (100), varbinary_id 
VARBINARY (100))";
+
+String LARGE_TABLE = "CREATE TABLE IF NOT EXISTS LARGE_TABLE (ID 
INTEGER PRIMARY KEY, " +
+"unsig_id UNSIGNED_INT, big_id BIGINT, unsig_long_id 
UNSIGNED_LONG, tiny_id TINYINT," +
+"unsig_tiny_id UNSIGNED_TINYINT, small_id SMALLINT, 
unsig_small_id UNSIGNED_SMALLINT," + 
+"float_id FLOAT, unsig_float_id UNSIGNED_FLOAT, double_id 
DOUBLE, unsig_double_id UNSIGNED_DOUBLE," + 
+"decimal_id DECIMAL, boolean_id BOOLEAN, time_id TIME, 
date_id DATE, timestamp_id TIMESTAMP," + 
+"unsig_time_id TIME, unsig_date_id DATE, 
unsig_timestamp_id TIMESTAMP, varchar_id VARCHAR (30)," + 
+"char_id CHAR (30), binary_id BINARY (100), varbinary_id 
VARBINARY (100))";
+
+String SECONDARY_LARGE_TABLE = "CREATE TABLE IF NOT EXISTS 
SECONDARY_LARGE_TABLE (SEC_ID INTEGER PRIMARY KEY," +
+"sec_unsig_id UNSIGNED_INT, sec_big_id BIGINT, 
sec_usnig_long_id UNSIGNED_LONG, sec_tiny_id TINYINT," + 
+"sec_unsig_tiny_id UNSIGNED_TINYINT, sec_small_id 
SMALLINT, sec_unsig_small_id UNSIGNED_SMALLINT," + 
+"sec_float_id FLOAT, sec_unsig_float_id UNSIGNED_FLOAT, 
sec_double_id DOUBLE, sec_unsig_double_id UNSIGNED_DOUBLE," +
+"sec_decimal_id DECIMAL, sec_boolean_id BOOLEAN, 
sec_time_id TIME, sec_date_id DATE," +
+"sec_timestamp_id TIMESTAMP, sec_unsig_time_id TIME, 
sec_unsig_date_id DATE, sec_unsig_timestamp_id TIMESTAMP," +
+"sec_varchar_id VARCHAR (30), sec_char_id CHAR (30), 
sec_binary_id BINARY (100), sec_varbinary_id VARBINARY (100))";
+createTestTable(getUrl(), GRAMMAR_TABLE);
+createTestTable(getUrl(), LARGE_TABLE);
+createTestTable(getUrl(), SECONDARY_LARGE_TABLE);
+
+String ddl = "SELECT * FROM (SELECT ID, BIG_ID, DATE_ID FROM 
LARGE_TABLE AS A WHERE (A.ID % 5) = 0) AS A " +
+"INNER JOIN (SELECT SEC_ID, SEC_TINY_ID, 
SEC_UNSIG_FLOAT_ID FROM SECONDARY_LARGE_TABLE AS B WHERE (B.SEC_ID % 5) = 0) AS 
B " + 
+"ON A.ID=B.SEC_ID WHERE A.DATE_ID > ALL (SELECT 
SEC_DATE_ID FROM SECONDARY_LARGE_TABLE LIMIT 100) " +  
+"AND 

[22/44] phoenix git commit: PHOENIX-1978 UDF ArgumentTypeMismatchException(Rajeshbabu)

2015-12-08 Thread ramkrishna
PHOENIX-1978 UDF ArgumentTypeMismatchException(Rajeshbabu)


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

Branch: refs/heads/4.x-HBase-1.1
Commit: 18b9e72756642e127b2e227ea46a4f70401e6187
Parents: 58ee706
Author: Rajeshbabu Chintaguntla 
Authored: Fri Jun 5 09:04:17 2015 +0530
Committer: Rajeshbabu Chintaguntla 
Committed: Fri Jun 5 09:04:17 2015 +0530

--
 .../phoenix/end2end/UserDefinedFunctionsIT.java | 58 ++--
 phoenix-core/src/main/antlr3/PhoenixSQL.g   | 17 +++---
 2 files changed, 61 insertions(+), 14 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/18b9e727/phoenix-core/src/it/java/org/apache/phoenix/end2end/UserDefinedFunctionsIT.java
--
diff --git 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/UserDefinedFunctionsIT.java
 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/UserDefinedFunctionsIT.java
index 868e19d..c6bd62f 100644
--- 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/UserDefinedFunctionsIT.java
+++ 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/UserDefinedFunctionsIT.java
@@ -58,6 +58,8 @@ import org.apache.phoenix.query.QueryServices;
 import org.apache.phoenix.schema.FunctionAlreadyExistsException;
 import org.apache.phoenix.schema.FunctionNotFoundException;
 import org.apache.phoenix.schema.ValueRangeExcpetion;
+import org.apache.phoenix.schema.types.PDataType;
+import org.apache.phoenix.schema.types.PArrayDataType;
 import org.apache.phoenix.util.PhoenixRuntime;
 import org.apache.phoenix.util.QueryUtil;
 import org.apache.phoenix.util.ReadOnlyProps;
@@ -121,11 +123,31 @@ public class UserDefinedFunctionsIT extends 
BaseOwnClusterIT{
 .append("
ptr.set(PInteger.INSTANCE.toBytes((Integer)sum));\n")
 .append("return true;\n")
 .append("}\n").toString();
-
+private static String ARRAY_INDEX_EVALUATE_METHOD =
+new StringBuffer()
+.append("public boolean evaluate(Tuple tuple, 
ImmutableBytesWritable ptr) {\n")
+.append("Expression indexExpr = 
children.get(1);\n")
+.append("if (!indexExpr.evaluate(tuple, ptr)) {\n")
+.append("   return false;\n")
+.append("} else if (ptr.getLength() == 0) {\n")
+.append("   return true;\n")
+.append("}\n")
+.append("// Use Codec to prevent Integer object 
allocation\n")
+.append("int index = 
PInteger.INSTANCE.getCodec().decodeInt(ptr, indexExpr.getSortOrder());\n")
+.append("if(index < 0) {\n")
+.append("   throw new ParseException(\"Index 
cannot be negative :\" + index);\n")
+.append("}\n")
+.append("Expression arrayExpr = 
children.get(0);\n")
+.append("return 
PArrayDataType.positionAtArrayElement(tuple, ptr, index, arrayExpr, 
getDataType(),getMaxLength());\n")
+.append("}\n").toString();
+
+
 private static String MY_REVERSE_CLASS_NAME = "MyReverse";
 private static String MY_SUM_CLASS_NAME = "MySum";
-private static String MY_REVERSE_PROGRAM = 
getProgram(MY_REVERSE_CLASS_NAME, STRING_REVERSE_EVALUATE_METHOD, "PVarchar");
-private static String MY_SUM_PROGRAM = getProgram(MY_SUM_CLASS_NAME, 
SUM_COLUMN_VALUES_EVALUATE_METHOD, "PInteger");
+private static String MY_ARRAY_INDEX_CLASS_NAME = "MyArrayIndex";
+private static String MY_REVERSE_PROGRAM = 
getProgram(MY_REVERSE_CLASS_NAME, STRING_REVERSE_EVALUATE_METHOD, "return 
PVarchar.INSTANCE;");
+private static String MY_SUM_PROGRAM = getProgram(MY_SUM_CLASS_NAME, 
SUM_COLUMN_VALUES_EVALUATE_METHOD, "return PInteger.INSTANCE;");
+private static String MY_ARRAY_INDEX_PROGRAM = 
getProgram(MY_ARRAY_INDEX_CLASS_NAME, ARRAY_INDEX_EVALUATE_METHOD, "return 
PDataType.fromTypeId(children.get(0).getDataType().getSqlType()- 
PDataType.ARRAY_TYPE_BASE);");
 private static Properties EMPTY_PROPS = new Properties();
 
 
@@ -144,6 +166,8 @@ public class UserDefinedFunctionsIT extends 
BaseOwnClusterIT{
 .append("import org.apache.phoenix.schema.types.PInteger;\n")
 .append("import org.apache.phoenix.schema.types.PVarchar;\n")
 .append("import org.apache.phoenix.util.StringUtil;\n")
+   

[39/44] phoenix git commit: PHOENIX-1981 : PhoenixHBase Load and Store Funcs should handle all Pig data types

2015-12-08 Thread ramkrishna
PHOENIX-1981 : PhoenixHBase Load and Store Funcs should handle all Pig data 
types


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

Branch: refs/heads/4.x-HBase-1.1
Commit: 76a478661bcf67340a4f2e0e0a784e2b03e981f4
Parents: 7b04ce4
Author: Prashant Kommireddi 

Authored: Mon May 18 19:47:01 2015 -0700
Committer: ramkrishna 
Committed: Tue Jun 30 22:55:54 2015 +0530

--
 .../org/apache/phoenix/pig/util/TypeUtil.java   | 24 ++--
 .../apache/phoenix/pig/util/TypeUtilTest.java   | 20 
 2 files changed, 37 insertions(+), 7 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/76a47866/phoenix-pig/src/main/java/org/apache/phoenix/pig/util/TypeUtil.java
--
diff --git 
a/phoenix-pig/src/main/java/org/apache/phoenix/pig/util/TypeUtil.java 
b/phoenix-pig/src/main/java/org/apache/phoenix/pig/util/TypeUtil.java
index 6549445..c8bc9d8 100644
--- a/phoenix-pig/src/main/java/org/apache/phoenix/pig/util/TypeUtil.java
+++ b/phoenix-pig/src/main/java/org/apache/phoenix/pig/util/TypeUtil.java
@@ -1,11 +1,21 @@
 /*
- * 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.
+ * Copyright 2010 The Apache Software Foundation
+ *
+ * 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 maynot 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 applicablelaw 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.pig.util;

http://git-wip-us.apache.org/repos/asf/phoenix/blob/76a47866/phoenix-pig/src/test/java/org/apache/phoenix/pig/util/TypeUtilTest.java
--
diff --git 
a/phoenix-pig/src/test/java/org/apache/phoenix/pig/util/TypeUtilTest.java 
b/phoenix-pig/src/test/java/org/apache/phoenix/pig/util/TypeUtilTest.java
index 25d9f48..56167f6 100644
--- a/phoenix-pig/src/test/java/org/apache/phoenix/pig/util/TypeUtilTest.java
+++ b/phoenix-pig/src/test/java/org/apache/phoenix/pig/util/TypeUtilTest.java
@@ -1,3 +1,23 @@
+/*
+ * Copyright 2010 The Apache Software Foundation
+ *
+ * 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 maynot 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 applicablelaw 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.pig.util;
 
 import static org.junit.Assert.assertEquals;



[10/44] phoenix git commit: PHOENIX-2013 Apply PHOENIX-1995 to runnable uberjar as well

2015-12-08 Thread ramkrishna
PHOENIX-2013 Apply PHOENIX-1995 to runnable uberjar as well


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

Branch: refs/heads/4.x-HBase-1.1
Commit: 0e0b4ddb4d130b38c7aa28d2e31b0a9552087256
Parents: 1a2f2dc
Author: Nick Dimiduk 
Authored: Wed May 27 11:27:04 2015 -0700
Committer: Nick Dimiduk 
Committed: Wed May 27 13:20:32 2015 -0700

--
 phoenix-server/src/build/query-server-runnable.xml | 9 +
 1 file changed, 9 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/0e0b4ddb/phoenix-server/src/build/query-server-runnable.xml
--
diff --git a/phoenix-server/src/build/query-server-runnable.xml 
b/phoenix-server/src/build/query-server-runnable.xml
index e2a3dc4..ef22b14 100644
--- a/phoenix-server/src/build/query-server-runnable.xml
+++ b/phoenix-server/src/build/query-server-runnable.xml
@@ -28,6 +28,15 @@
 jar
   
   false
+  
+
+  
+  metaInf-services
+
+  
   
 
   /



[03/44] phoenix git commit: PHOENIX-1763 Support building with HBase-1.1.0

2015-12-08 Thread ramkrishna
http://git-wip-us.apache.org/repos/asf/phoenix/blob/98271b88/phoenix-pig/pom.xml
--
diff --git a/phoenix-pig/pom.xml b/phoenix-pig/pom.xml
index 2db1af6..015a660 100644
--- a/phoenix-pig/pom.xml
+++ b/phoenix-pig/pom.xml
@@ -54,7 +54,6 @@
 
   org.apache.hbase
   hbase-testing-util
-  ${hbase.version}
   test
   true
   
@@ -67,7 +66,6 @@
 
   org.apache.hbase
   hbase-it
-  ${hbase.version}
   test-jar
   test
   
@@ -80,41 +78,56 @@
 
   org.apache.hbase
   hbase-common
-  ${hbase.version}
+
+
+  org.apache.hbase
+  hbase-common
+  test
+  test-jar
 
 
   org.apache.hbase
   hbase-protocol
-  ${hbase.version}
 
 
   org.apache.hbase
   hbase-client
-  ${hbase.version}
+
+   
+  org.apache.hbase
+  hbase-server
+
+
+  org.apache.hbase
+  hbase-server
+  test-jar
+  test
+
+
+  org.apache.hbase
+  hbase-client
+  test-jar
+  test
 
 
   org.apache.hbase
   hbase-hadoop-compat
-  ${hbase.version}
   test
 
 
   org.apache.hbase
   hbase-hadoop-compat
-  ${hbase.version}
   test-jar
   test
 
 
   org.apache.hbase
   hbase-hadoop2-compat
-  ${hbase.version}
   test
 
 
   org.apache.hbase
   hbase-hadoop2-compat
-  ${hbase.version}
   test-jar
   test
 

http://git-wip-us.apache.org/repos/asf/phoenix/blob/98271b88/phoenix-spark/pom.xml
--
diff --git a/phoenix-spark/pom.xml b/phoenix-spark/pom.xml
index adeed88..a232cf4 100644
--- a/phoenix-spark/pom.xml
+++ b/phoenix-spark/pom.xml
@@ -460,6 +460,13 @@
 
 
   org.apache.hbase
+  hbase-server
+  ${hbase.version}
+  test
+  test-jar
+
+
+  org.apache.hbase
   hbase-it
   ${hbase.version}
   test-jar

http://git-wip-us.apache.org/repos/asf/phoenix/blob/98271b88/pom.xml
--
diff --git a/pom.xml b/pom.xml
index d310c37..4361e54 100644
--- a/pom.xml
+++ b/pom.xml
@@ -78,7 +78,7 @@
 true
 
 
-1.0.1
+1.1.0
 2.5.1
 
 
@@ -452,6 +452,11 @@
   
   
 org.apache.hbase
+hbase-annotations
+${hbase.version}
+  
+  
+org.apache.hbase
 hbase-testing-util
 ${hbase.version}
 test
@@ -488,13 +493,34 @@
   
   
 org.apache.hbase
+hbase-common
+${hbase.version}
+test-jar
+test
+  
+  
+org.apache.hbase
 hbase-client
 ${hbase.version}
   
   
 org.apache.hbase
+hbase-client
+${hbase.version}
+test-jar
+test
+  
+  
+org.apache.hbase
+hbase-server
+${hbase.version}
+  
+  
+org.apache.hbase
 hbase-server
 ${hbase.version}
+test-jar
+test
   
   
 org.apache.hbase
@@ -508,6 +534,19 @@
 test-jar
 test
   
+  
+org.apache.hbase
+hbase-hadoop2-compat
+${hbase.version}
+test
+  
+  
+org.apache.hbase
+hbase-hadoop2-compat
+${hbase.version}
+test-jar
+test
+  
 
   
   



[14/44] phoenix git commit: PHOENIX-2022 Make BaseRegionScanner.next abstract

2015-12-08 Thread ramkrishna
PHOENIX-2022 Make BaseRegionScanner.next abstract

Avoid infinite recursion by removing a recursive call within
BaseRegionScanner.next, which was already being used as an
abstract method.


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

Branch: refs/heads/4.x-HBase-1.1
Commit: c1882ee279293b560fda9beb10ac50b8d3ead589
Parents: b2c0cb9
Author: Gabriel Reid 
Authored: Mon Jun 1 08:57:22 2015 +0200
Committer: Gabriel Reid 
Committed: Mon Jun 1 17:22:49 2015 +0200

--
 .../java/org/apache/phoenix/coprocessor/BaseRegionScanner.java   | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/c1882ee2/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/BaseRegionScanner.java
--
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/BaseRegionScanner.java
 
b/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/BaseRegionScanner.java
index 828f776..3f73048 100644
--- 
a/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/BaseRegionScanner.java
+++ 
b/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/BaseRegionScanner.java
@@ -33,9 +33,7 @@ public abstract class BaseRegionScanner implements 
RegionScanner {
 }
 
 @Override
-public boolean next(List results) throws IOException {
-return next(results);
-}
+public abstract boolean next(List results) throws IOException;
 
 @Override
 public boolean next(List result, ScannerContext scannerContext) 
throws IOException {



[01/44] phoenix git commit: PHOENIX-1681 Use the new Region Interface (Andrew Purtell)

2015-12-08 Thread ramkrishna
Repository: phoenix
Updated Branches:
  refs/heads/4.x-HBase-1.1 [created] a9e1997ed


http://git-wip-us.apache.org/repos/asf/phoenix/blob/ea622d5f/phoenix-core/src/main/java/org/apache/phoenix/schema/stats/StatisticsCollector.java
--
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/schema/stats/StatisticsCollector.java
 
b/phoenix-core/src/main/java/org/apache/phoenix/schema/stats/StatisticsCollector.java
index 272cac6..e7e1dd7 100644
--- 
a/phoenix-core/src/main/java/org/apache/phoenix/schema/stats/StatisticsCollector.java
+++ 
b/phoenix-core/src/main/java/org/apache/phoenix/schema/stats/StatisticsCollector.java
@@ -31,8 +31,8 @@ import org.apache.hadoop.hbase.KeyValueUtil;
 import org.apache.hadoop.hbase.client.Mutation;
 import org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment;
 import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
-import org.apache.hadoop.hbase.regionserver.HRegion;
 import org.apache.hadoop.hbase.regionserver.InternalScanner;
+import org.apache.hadoop.hbase.regionserver.Region;
 import org.apache.hadoop.hbase.regionserver.Store;
 import org.apache.hadoop.hbase.util.Pair;
 import org.apache.phoenix.coprocessor.MetaDataProtocol;
@@ -111,7 +111,7 @@ public class StatisticsCollector {
 this.statsTable.close();
 }
 
-public void updateStatistic(HRegion region) {
+public void updateStatistic(Region region) {
 try {
 ArrayList mutations = new ArrayList();
 writeStatsToStatsTable(region, true, mutations, 
TimeKeeper.SYSTEM.getCurrentTime());
@@ -126,7 +126,7 @@ public class StatisticsCollector {
 }
 }
 
-private void writeStatsToStatsTable(final HRegion region,
+private void writeStatsToStatsTable(final Region region,
 boolean delete, List mutations, long currentTime) throws 
IOException {
 try {
 // update the statistics table
@@ -215,7 +215,7 @@ public class StatisticsCollector {
 }
 }
 
-public InternalScanner createCompactionScanner(HRegion region, Store 
store, InternalScanner s) throws IOException {
+public InternalScanner createCompactionScanner(Region region, Store store, 
InternalScanner s) throws IOException {
 // See if this is for Major compaction
 if (logger.isDebugEnabled()) {
 logger.debug("Compaction scanner created for stats");
@@ -224,13 +224,13 @@ public class StatisticsCollector {
 return getInternalScanner(region, store, s, cfKey);
 }
 
-public void splitStats(HRegion parent, HRegion left, HRegion right) {
+public void splitStats(Region parent, Region left, Region right) {
 try {
 if (logger.isDebugEnabled()) {
 logger.debug("Collecting stats for split of " + 
parent.getRegionInfo() + " into " + left.getRegionInfo() + " and " + 
right.getRegionInfo());
 }
 List mutations = Lists.newArrayListWithExpectedSize(3);
-for (byte[] fam : parent.getStores().keySet()) {
+for (byte[] fam : parent.getTableDesc().getFamiliesKeys()) {
statsTable.splitStats(parent, left, right, this, new 
ImmutableBytesPtr(fam), mutations);
 }
 if (logger.isDebugEnabled()) {
@@ -243,7 +243,7 @@ public class StatisticsCollector {
 }
 }
 
-protected InternalScanner getInternalScanner(HRegion region, Store store,
+protected InternalScanner getInternalScanner(Region region, Store store,
 InternalScanner internalScan, ImmutableBytesPtr family) {
 return new StatisticsScanner(this, statsTable, region, internalScan, 
family);
 }

http://git-wip-us.apache.org/repos/asf/phoenix/blob/ea622d5f/phoenix-core/src/main/java/org/apache/phoenix/schema/stats/StatisticsScanner.java
--
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/schema/stats/StatisticsScanner.java
 
b/phoenix-core/src/main/java/org/apache/phoenix/schema/stats/StatisticsScanner.java
index 0e50923..582c4de 100644
--- 
a/phoenix-core/src/main/java/org/apache/phoenix/schema/stats/StatisticsScanner.java
+++ 
b/phoenix-core/src/main/java/org/apache/phoenix/schema/stats/StatisticsScanner.java
@@ -26,9 +26,9 @@ import org.apache.commons.logging.LogFactory;
 import org.apache.hadoop.hbase.Cell;
 import org.apache.hadoop.hbase.KeyValue;
 import org.apache.hadoop.hbase.client.Mutation;
-import org.apache.hadoop.hbase.regionserver.HRegion;
 import org.apache.hadoop.hbase.regionserver.InternalScanner;
 import org.apache.hadoop.hbase.regionserver.ScannerContext;
+import org.apache.hadoop.hbase.regionserver.Region;
 import org.apache.phoenix.hbase.index.util.ImmutableBytesPtr;
 
 /**
@@ -38,11 +38,11 @@ public class StatisticsScanner implements InternalScanner {
 private static final Log LOG = LogFactory.getLog(StatisticsScanner.class);
 

[08/44] phoenix git commit: PHOENIX-2005 Connection utilities omit zk client port, parent znode (addendum)

2015-12-08 Thread ramkrishna
PHOENIX-2005 Connection utilities omit zk client port, parent znode (addendum)


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

Branch: refs/heads/4.x-HBase-1.1
Commit: 5546a42226e3f0fdf0cc89f1c175ff3da7a75d8c
Parents: c6b37b9
Author: Nick Dimiduk 
Authored: Tue May 26 17:41:04 2015 -0700
Committer: Nick Dimiduk 
Committed: Tue May 26 17:52:24 2015 -0700

--
 .../phoenix/jdbc/PhoenixEmbeddedDriver.java |  2 +-
 .../java/org/apache/phoenix/util/QueryUtil.java |  2 +-
 .../phoenix/jdbc/PhoenixEmbeddedDriverTest.java | 20 
 3 files changed, 22 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/5546a422/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixEmbeddedDriver.java
--
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixEmbeddedDriver.java 
b/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixEmbeddedDriver.java
index 2451603..3cfaacc 100644
--- 
a/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixEmbeddedDriver.java
+++ 
b/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixEmbeddedDriver.java
@@ -209,7 +209,7 @@ public abstract class PhoenixEmbeddedDriver implements 
Driver, org.apache.phoeni
 url = url == null ? "" : url;
 url = url.startsWith(PhoenixRuntime.JDBC_PROTOCOL)
 ? url.substring(PhoenixRuntime.JDBC_PROTOCOL.length())
-: url;
+: PhoenixRuntime.JDBC_PROTOCOL_SEPARATOR + url;
 StringTokenizer tokenizer = new StringTokenizer(url, DELIMITERS, 
true);
 int nTokens = 0;
 String[] tokens = new String[5];

http://git-wip-us.apache.org/repos/asf/phoenix/blob/5546a422/phoenix-core/src/main/java/org/apache/phoenix/util/QueryUtil.java
--
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/util/QueryUtil.java 
b/phoenix-core/src/main/java/org/apache/phoenix/util/QueryUtil.java
index bd38983..a2d4a91 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/util/QueryUtil.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/util/QueryUtil.java
@@ -290,7 +290,7 @@ public final class QueryUtil {
 throws ClassNotFoundException,
 SQLException {
 String url = getConnectionUrl(props, conf);
-LOG.info("Creating connection with the jdbc url:" + url);
+LOG.info("Creating connection with the jdbc url: " + url);
 PropertiesUtil.extractProperties(props, conf);
 return DriverManager.getConnection(url, props);
 }

http://git-wip-us.apache.org/repos/asf/phoenix/blob/5546a422/phoenix-core/src/test/java/org/apache/phoenix/jdbc/PhoenixEmbeddedDriverTest.java
--
diff --git 
a/phoenix-core/src/test/java/org/apache/phoenix/jdbc/PhoenixEmbeddedDriverTest.java
 
b/phoenix-core/src/test/java/org/apache/phoenix/jdbc/PhoenixEmbeddedDriverTest.java
index 083b205..4eda825 100644
--- 
a/phoenix-core/src/test/java/org/apache/phoenix/jdbc/PhoenixEmbeddedDriverTest.java
+++ 
b/phoenix-core/src/test/java/org/apache/phoenix/jdbc/PhoenixEmbeddedDriverTest.java
@@ -34,23 +34,33 @@ public class PhoenixEmbeddedDriverTest {
 @Test
 public void testGetConnectionInfo() throws SQLException {
 String[] urls = new String[] {
+null,
+"",
 "jdbc:phoenix",
 "jdbc:phoenix;test=true",
 "jdbc:phoenix:localhost",
+"localhost",
+"localhost;",
 "jdbc:phoenix:localhost:123",
 "jdbc:phoenix:localhost:123;foo=bar",
+"localhost:123",
 "jdbc:phoenix:localhost:123:/hbase",
 "jdbc:phoenix:localhost:123:/foo-bar",
 "jdbc:phoenix:localhost:123:/foo-bar;foo=bas",
+"localhost:123:/foo-bar",
 "jdbc:phoenix:localhost:/hbase",
 "jdbc:phoenix:localhost:/foo-bar",
 "jdbc:phoenix:localhost:/foo-bar;test=true",
+"localhost:/foo-bar",
 "jdbc:phoenix:v1,v2,v3",
 "jdbc:phoenix:v1,v2,v3;",
 "jdbc:phoenix:v1,v2,v3;test=true",
+"v1,v2,v3",
 "jdbc:phoenix:v1,v2,v3:/hbase",
 "jdbc:phoenix:v1,v2,v3:/hbase;test=true",
+"v1,v2,v3:/foo-bar",
 "jdbc:phoenix:v1,v2,v3:123:/hbase",
+"v1,v2,v3:123:/hbase",
 

[32/44] phoenix git commit: PHOENIX-2073 Two bytes character in LIKE expression is not allowed (Yuhao Bi)

2015-12-08 Thread ramkrishna
PHOENIX-2073 Two bytes character in LIKE expression is not allowed (Yuhao Bi)


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

Branch: refs/heads/4.x-HBase-1.1
Commit: c40d64b3bbc793ec920a8a8032c7a93bd015380a
Parents: 980d29c
Author: Yuhao Bi 
Authored: Thu Jun 25 15:41:06 2015 +0800
Committer: Thomas D'Silva 
Committed: Fri Jun 26 11:04:34 2015 -0700

--
 .../apache/phoenix/compile/WhereOptimizer.java|  3 ++-
 .../phoenix/compile/WhereOptimizerTest.java   | 18 ++
 2 files changed, 20 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/c40d64b3/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 a5aef02..32de712 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
@@ -65,6 +65,7 @@ import org.apache.phoenix.schema.tuple.Tuple;
 import org.apache.phoenix.schema.types.PChar;
 import org.apache.phoenix.schema.types.PDataType;
 import org.apache.phoenix.schema.types.PVarbinary;
+import org.apache.phoenix.schema.types.PVarchar;
 import org.apache.phoenix.util.ByteUtil;
 import org.apache.phoenix.util.MetaDataUtil;
 import org.apache.phoenix.util.ScanUtil;
@@ -945,7 +946,7 @@ public class WhereOptimizer {
 KeySlots childSlots = childParts.get(0);
 KeySlot childSlot = childSlots.iterator().next();
 final String startsWith = node.getLiteralPrefix();
-byte[] key = PChar.INSTANCE.toBytes(startsWith, 
node.getChildren().get(0).getSortOrder());
+byte[] key = PVarchar.INSTANCE.toBytes(startsWith, 
node.getChildren().get(0).getSortOrder());
 // If the expression is an equality expression against a fixed 
length column
 // and the key length doesn't match the column length, the 
expression can
 // never be true.

http://git-wip-us.apache.org/repos/asf/phoenix/blob/c40d64b3/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 f40afc3..2d4763f 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
@@ -688,6 +688,24 @@ public class WhereOptimizerTest extends 
BaseConnectionlessQueryTest {
 }
 
 @Test
+public void testLikeExtractAllKeyExpression2() throws SQLException {
+String tenantId = "001";
+String keyPrefix = "中文";
+String query = "select * from atable where organization_id = ? and 
entity_id  LIKE '" + keyPrefix + "%'";
+List binds = Arrays.asList(tenantId);
+StatementContext context = compileStatement(query, binds);
+Scan scan = context.getScan();
+
+assertNull(scan.getFilter());
+byte[] startRow = ByteUtil.concat(
+
PVarchar.INSTANCE.toBytes(tenantId),StringUtil.padChar(PVarchar.INSTANCE.toBytes(keyPrefix),15));
+assertArrayEquals(startRow, scan.getStartRow());
+byte[] stopRow = ByteUtil.concat(
+
PVarchar.INSTANCE.toBytes(tenantId),StringUtil.padChar(ByteUtil.nextKey(PVarchar.INSTANCE.toBytes(keyPrefix)),15));
+assertArrayEquals(stopRow, scan.getStopRow());
+}
+
+@Test
 public void testLikeExtractAllAsEqKeyExpression() throws SQLException {
 String tenantId = "001";
 String keyPrefix = "002";



[33/44] phoenix git commit: LP-1277 Support nulls in CHAR fields in CSV loader

2015-12-08 Thread ramkrishna
LP-1277 Support nulls in CHAR fields in CSV loader


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

Branch: refs/heads/4.x-HBase-1.1
Commit: 89ab41c1c22a3b34c2571fd950c0936440b6f822
Parents: c40d64b
Author: Gabriel Reid 
Authored: Thu Jun 25 21:36:51 2015 +0200
Committer: Gabriel Reid 
Committed: Mon Jun 29 08:35:10 2015 +0200

--
 .../phoenix/end2end/CSVCommonsLoaderIT.java   | 18 +++---
 .../org/apache/phoenix/schema/types/PChar.java|  3 ---
 .../phoenix/util/csv/CsvUpsertExecutor.java   |  5 -
 3 files changed, 15 insertions(+), 11 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/89ab41c1/phoenix-core/src/it/java/org/apache/phoenix/end2end/CSVCommonsLoaderIT.java
--
diff --git 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/CSVCommonsLoaderIT.java 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/CSVCommonsLoaderIT.java
index d07ed8d..c7287ea 100644
--- 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/CSVCommonsLoaderIT.java
+++ 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/CSVCommonsLoaderIT.java
@@ -46,9 +46,10 @@ import org.junit.Test;
 public class CSVCommonsLoaderIT extends BaseHBaseManagedTimeIT {
 
 private static final String DATATYPE_TABLE = "DATATYPE";
-private static final String DATATYPES_CSV_VALUES = "CKEY, CVARCHAR, 
CINTEGER, CDECIMAL, CUNSIGNED_INT, CBOOLEAN, CBIGINT, CUNSIGNED_LONG, CTIME, 
CDATE\n"
-+ "KEY1,A,2147483647,1.1,0,TRUE,9223372036854775807,0,1990-12-31 
10:59:59,1999-12-31 23:59:59\n"
-+ 
"KEY2,B,-2147483648,-1.1,2147483647,FALSE,-9223372036854775808,9223372036854775807,2000-01-01
 00:00:01,2012-02-29 23:59:59\n";
+private static final String DATATYPES_CSV_VALUES = "CKEY, CVARCHAR, CCHAR, 
CINTEGER, CDECIMAL, CUNSIGNED_INT, CBOOLEAN, CBIGINT, CUNSIGNED_LONG, CTIME, 
CDATE\n"
++ "KEY1,A,A,2147483647,1.1,0,TRUE,9223372036854775807,0,1990-12-31 
10:59:59,1999-12-31 23:59:59\n"
++ 
"KEY2,B,B,-2147483648,-1.1,2147483647,FALSE,-9223372036854775808,9223372036854775807,2000-01-01
 00:00:01,2012-02-29 23:59:59\n"
++ "KEY3,,\n";
 private static final String STOCK_TABLE = "STOCK_SYMBOL";
 private static final String STOCK_TABLE_MULTI = "STOCK_SYMBOL_MULTI";
 private static final String STOCK_CSV_VALUES = "AAPL,APPLE Inc.\n"
@@ -480,7 +481,7 @@ public class CSVCommonsLoaderIT extends 
BaseHBaseManagedTimeIT {
 String statements = "CREATE TABLE IF NOT EXISTS "
 + DATATYPE_TABLE
 + " (CKEY VARCHAR NOT NULL PRIMARY KEY,"
-+ "  CVARCHAR VARCHAR, CINTEGER INTEGER, CDECIMAL 
DECIMAL(31,10), CUNSIGNED_INT UNSIGNED_INT, CBOOLEAN BOOLEAN, CBIGINT BIGINT, 
CUNSIGNED_LONG UNSIGNED_LONG, CTIME TIME, CDATE DATE);";
++ "  CVARCHAR VARCHAR, CCHAR CHAR(10), CINTEGER INTEGER, 
CDECIMAL DECIMAL(31,10), CUNSIGNED_INT UNSIGNED_INT, CBOOLEAN BOOLEAN, CBIGINT 
BIGINT, CUNSIGNED_LONG UNSIGNED_LONG, CTIME TIME, CDATE DATE);";
 conn = DriverManager.getConnection(getUrl())
 .unwrap(PhoenixConnection.class);
 PhoenixRuntime.executeStatements(conn,
@@ -493,7 +494,7 @@ public class CSVCommonsLoaderIT extends 
BaseHBaseManagedTimeIT {
 
 // Compare Phoenix ResultSet with CSV file content
 PreparedStatement statement = conn
-.prepareStatement("SELECT CKEY, CVARCHAR, CINTEGER, 
CDECIMAL, CUNSIGNED_INT, CBOOLEAN, CBIGINT, CUNSIGNED_LONG, CTIME, CDATE FROM "
+.prepareStatement("SELECT CKEY, CVARCHAR, CCHAR, CINTEGER, 
CDECIMAL, CUNSIGNED_INT, CBOOLEAN, CBIGINT, CUNSIGNED_LONG, CTIME, CDATE FROM "
 + DATATYPE_TABLE);
 ResultSet phoenixResultSet = statement.executeQuery();
 parser = new CSVParser(new StringReader(DATATYPES_CSV_VALUES),
@@ -511,9 +512,12 @@ public class CSVCommonsLoaderIT extends 
BaseHBaseManagedTimeIT {
 i++;
 }
 // special case for matching date, time values
-assertEquals(DateUtil.parseTime(record.get(8)),
+String timeFieldValue = record.get(9);
+assertEquals(timeFieldValue.isEmpty() ? null : 
DateUtil.parseTime(record.get(9)),
 phoenixResultSet.getTime("CTIME"));
-assertEquals(DateUtil.parseDate(record.get(9)),
+
+String dateField = record.get(10);
+

[30/44] phoenix git commit: PHOENIX-1935 org.apache.phoenix.end2end.ArithmeticQueryIT tests are failing (Alicia Ying Shu)

2015-12-08 Thread ramkrishna
PHOENIX-1935 org.apache.phoenix.end2end.ArithmeticQueryIT tests are failing 
(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/05b1b8b1
Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/05b1b8b1
Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/05b1b8b1

Branch: refs/heads/4.x-HBase-1.1
Commit: 05b1b8b13f4137602567f67642946c883646d4d8
Parents: 329d749
Author: Nick Dimiduk 
Authored: Wed Jun 17 12:28:35 2015 -0700
Committer: Nick Dimiduk 
Committed: Wed Jun 17 12:31:28 2015 -0700

--
 .../src/it/java/org/apache/phoenix/end2end/BaseViewIT.java  | 2 ++
 phoenix-core/src/it/java/org/apache/phoenix/end2end/ViewIT.java | 3 +++
 .../src/test/java/org/apache/phoenix/query/BaseTest.java| 5 -
 3 files changed, 9 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/05b1b8b1/phoenix-core/src/it/java/org/apache/phoenix/end2end/BaseViewIT.java
--
diff --git 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/BaseViewIT.java 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/BaseViewIT.java
index b9d7180..3140077 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/BaseViewIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/BaseViewIT.java
@@ -98,6 +98,7 @@ public abstract class BaseViewIT extends 
BaseOwnClusterHBaseManagedTimeIT {
 assertEquals(1, rs.getInt(1));
 assertEquals(121, rs.getInt(2));
 assertFalse(rs.next());
+conn.close();
 }
 
 protected void testUpdatableViewIndex(Integer saltBuckets) throws 
Exception {
@@ -179,6 +180,7 @@ public abstract class BaseViewIT extends 
BaseOwnClusterHBaseManagedTimeIT {
 + "CLIENT MERGE SORT",
 QueryUtil.getExplainPlan(rs));
 }
+conn.close();
 }
 
 

http://git-wip-us.apache.org/repos/asf/phoenix/blob/05b1b8b1/phoenix-core/src/it/java/org/apache/phoenix/end2end/ViewIT.java
--
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/ViewIT.java 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/ViewIT.java
index 266438d..fb58a8f 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/ViewIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/ViewIT.java
@@ -92,8 +92,11 @@ public class ViewIT extends BaseViewIT {
 fail();
 } catch (ReadOnlyTableException e) {
 
+} finally {
+conn.close();
 }
 
+conn = DriverManager.getConnection(getUrl());
 int count = 0;
 ResultSet rs = conn.createStatement().executeQuery("SELECT k FROM v2");
 while (rs.next()) {

http://git-wip-us.apache.org/repos/asf/phoenix/blob/05b1b8b1/phoenix-core/src/test/java/org/apache/phoenix/query/BaseTest.java
--
diff --git a/phoenix-core/src/test/java/org/apache/phoenix/query/BaseTest.java 
b/phoenix-core/src/test/java/org/apache/phoenix/query/BaseTest.java
index fa78656..3f09518 100644
--- a/phoenix-core/src/test/java/org/apache/phoenix/query/BaseTest.java
+++ b/phoenix-core/src/test/java/org/apache/phoenix/query/BaseTest.java
@@ -115,6 +115,7 @@ import org.apache.hadoop.hbase.HColumnDescriptor;
 import org.apache.hadoop.hbase.HConstants;
 import org.apache.hadoop.hbase.HTableDescriptor;
 import org.apache.hadoop.hbase.IntegrationTestingUtility;
+import org.apache.hadoop.hbase.TableNotEnabledException;
 import org.apache.hadoop.hbase.client.HBaseAdmin;
 import org.apache.hadoop.hbase.coprocessor.RegionServerObserver;
 import org.apache.hadoop.hbase.io.encoding.DataBlockEncoding;
@@ -1634,7 +1635,9 @@ public abstract class BaseTest {
 for (HTableDescriptor table : tables) {
 String schemaName = 
SchemaUtil.getSchemaNameFromFullName(table.getName());
 if (!QueryConstants.SYSTEM_SCHEMA_NAME.equals(schemaName)) {
-admin.disableTable(table.getName());
+try{
+admin.disableTable(table.getName());
+} catch (TableNotEnabledException ignored){}
 admin.deleteTable(table.getName());
 }
 }



[40/44] phoenix git commit: PHOENIX-1981 : PhoenixHBase Load and Store Funcs should handle all Pig data types

2015-12-08 Thread ramkrishna
PHOENIX-1981 : PhoenixHBase Load and Store Funcs should handle all Pig data 
types


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

Branch: refs/heads/4.x-HBase-1.1
Commit: 6a96bd2f130cc05a04360a2311a77f2d08f73420
Parents: 76a4786
Author: Prashant Kommireddi 

Authored: Mon May 18 19:48:30 2015 -0700
Committer: ramkrishna 
Committed: Tue Jun 30 22:55:55 2015 +0530

--
 .../src/main/java/org/apache/phoenix/pig/util/TypeUtil.java  | 8 +++-
 .../test/java/org/apache/phoenix/pig/util/TypeUtilTest.java  | 8 +++-
 2 files changed, 6 insertions(+), 10 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/6a96bd2f/phoenix-pig/src/main/java/org/apache/phoenix/pig/util/TypeUtil.java
--
diff --git 
a/phoenix-pig/src/main/java/org/apache/phoenix/pig/util/TypeUtil.java 
b/phoenix-pig/src/main/java/org/apache/phoenix/pig/util/TypeUtil.java
index c8bc9d8..6e32fb5 100644
--- a/phoenix-pig/src/main/java/org/apache/phoenix/pig/util/TypeUtil.java
+++ b/phoenix-pig/src/main/java/org/apache/phoenix/pig/util/TypeUtil.java
@@ -1,17 +1,15 @@
 /*
- * Copyright 2010 The Apache Software Foundation
- *
  * 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
+ * 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 maynot use this file except in compliance
+ * "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 applicablelaw or agreed to in writing, software
+ * 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

http://git-wip-us.apache.org/repos/asf/phoenix/blob/6a96bd2f/phoenix-pig/src/test/java/org/apache/phoenix/pig/util/TypeUtilTest.java
--
diff --git 
a/phoenix-pig/src/test/java/org/apache/phoenix/pig/util/TypeUtilTest.java 
b/phoenix-pig/src/test/java/org/apache/phoenix/pig/util/TypeUtilTest.java
index 56167f6..0b44d2b 100644
--- a/phoenix-pig/src/test/java/org/apache/phoenix/pig/util/TypeUtilTest.java
+++ b/phoenix-pig/src/test/java/org/apache/phoenix/pig/util/TypeUtilTest.java
@@ -1,17 +1,15 @@
 /*
- * Copyright 2010 The Apache Software Foundation
- *
  * 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
+ * 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 maynot use this file except in compliance
+ * "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 applicablelaw or agreed to in writing, software
+ * 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



[28/44] phoenix git commit: PHOENIX-2029 Queries are making two rpc calls for getTable

2015-12-08 Thread ramkrishna
PHOENIX-2029 Queries are making two rpc calls for getTable


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

Branch: refs/heads/4.x-HBase-1.1
Commit: 52f5b04643914f33c2d00a1157ca767a32f1adb8
Parents: 43c722c
Author: Thomas D'Silva 
Authored: Mon Jun 8 15:30:40 2015 -0700
Committer: Thomas D'Silva 
Committed: Wed Jun 17 11:16:48 2015 -0700

--
 .../org/apache/phoenix/rpc/UpdateCacheIT.java   | 139 +++
 .../apache/phoenix/compile/QueryCompiler.java   |   2 +-
 .../coprocessor/MetaDataEndpointImpl.java   |   6 +-
 .../apache/phoenix/schema/MetaDataClient.java   |  26 ++--
 4 files changed, 156 insertions(+), 17 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/52f5b046/phoenix-core/src/it/java/org/apache/phoenix/rpc/UpdateCacheIT.java
--
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/rpc/UpdateCacheIT.java 
b/phoenix-core/src/it/java/org/apache/phoenix/rpc/UpdateCacheIT.java
new file mode 100644
index 000..c657e41
--- /dev/null
+++ b/phoenix-core/src/it/java/org/apache/phoenix/rpc/UpdateCacheIT.java
@@ -0,0 +1,139 @@
+package org.apache.phoenix.rpc;
+
+import static org.apache.phoenix.util.TestUtil.INDEX_DATA_SCHEMA;
+import static org.apache.phoenix.util.TestUtil.MUTABLE_INDEX_DATA_TABLE;
+import static org.apache.phoenix.util.TestUtil.TEST_PROPERTIES;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Matchers.anyLong;
+import static org.mockito.Matchers.eq;
+import static org.mockito.Matchers.isNull;
+import static org.mockito.Mockito.reset;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+
+import java.math.BigDecimal;
+import java.sql.Connection;
+import java.sql.Date;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.Map;
+import java.util.Properties;
+
+import org.apache.phoenix.end2end.BaseHBaseManagedTimeIT;
+import org.apache.phoenix.end2end.Shadower;
+import org.apache.phoenix.jdbc.PhoenixEmbeddedDriver;
+import org.apache.phoenix.query.ConnectionQueryServices;
+import org.apache.phoenix.query.QueryConstants;
+import org.apache.phoenix.schema.MetaDataClient;
+import org.apache.phoenix.schema.PName;
+import org.apache.phoenix.schema.types.PVarchar;
+import org.apache.phoenix.util.DateUtil;
+import org.apache.phoenix.util.PropertiesUtil;
+import org.apache.phoenix.util.ReadOnlyProps;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.mockito.Mockito;
+
+import com.google.common.collect.Maps;
+
+/**
+ * Verifies the number of rpcs calls from {@link MetaDataClient} updateCache() 
+ * for transactional and non-transactional tables.
+ */
+public class UpdateCacheIT extends BaseHBaseManagedTimeIT {
+   
+   public static final int NUM_MILLIS_IN_DAY = 8640;
+
+@Before
+public void setUp() throws SQLException {
+ensureTableCreated(getUrl(), MUTABLE_INDEX_DATA_TABLE);
+}
+
+   @BeforeClass
+@Shadower(classBeingShadowed = BaseHBaseManagedTimeIT.class)
+public static void doSetup() throws Exception {
+Map props = Maps.newHashMapWithExpectedSize(3);
+setUpTestDriver(new ReadOnlyProps(props.entrySet().iterator()));
+}
+   
+   public static void validateRowKeyColumns(ResultSet rs, int i) throws 
SQLException {
+   assertTrue(rs.next());
+   assertEquals(rs.getString(1), "varchar" + String.valueOf(i));
+   assertEquals(rs.getString(2), "char" + String.valueOf(i));
+   assertEquals(rs.getInt(3), i);
+   assertEquals(rs.getInt(4), i);
+   assertEquals(rs.getBigDecimal(5), new BigDecimal(i*0.5d));
+   Date date = new Date(DateUtil.parseDate("2015-01-01 
00:00:00").getTime() + (i - 1) * NUM_MILLIS_IN_DAY);
+   assertEquals(rs.getDate(6), date);
+   }
+   
+   public static void setRowKeyColumns(PreparedStatement stmt, int i) 
throws SQLException {
+// insert row
+stmt.setString(1, "varchar" + String.valueOf(i));
+stmt.setString(2, "char" + String.valueOf(i));
+stmt.setInt(3, i);
+stmt.setLong(4, i);
+stmt.setBigDecimal(5, new BigDecimal(i*0.5d));
+Date date = new Date(DateUtil.parseDate("2015-01-01 
00:00:00").getTime() + (i - 1) * NUM_MILLIS_IN_DAY);
+stmt.setDate(6, date);
+}
+   
+   

[37/44] phoenix git commit: PHOENIX-2042 Windows need hadoop native libraries to run tests (Alicia Ying Shu)

2015-12-08 Thread ramkrishna
PHOENIX-2042 Windows need hadoop native libraries to run tests (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/63f8a6a2
Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/63f8a6a2
Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/63f8a6a2

Branch: refs/heads/4.x-HBase-1.1
Commit: 63f8a6a2e64e9c1f106e3e29011dffc4231fd649
Parents: 9db70f5
Author: Enis Soztutar 
Authored: Mon Jun 29 18:16:35 2015 -0700
Committer: Enis Soztutar 
Committed: Mon Jun 29 18:57:18 2015 -0700

--
 pom.xml | 8 
 1 file changed, 4 insertions(+), 4 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/63f8a6a2/pom.xml
--
diff --git a/pom.xml b/pom.xml
index be44399..f81f818 100644
--- a/pom.xml
+++ b/pom.xml
@@ -266,7 +266,7 @@
  UTF-8
  ${numForkedIT}
  true
- -enableassertions -Xmx2000m -XX:MaxPermSize=128m 
-Djava.security.egd=file:/dev/./urandom
+ -enableassertions -Xmx2000m -XX:MaxPermSize=128m 
-Djava.security.egd=file:/dev/./urandom 
"-Djava.library.path=${hadoop.library.path}${path.separator}${java.library.path}"
  
${test.output.tofile}
  
${basedir}/src/it/java
  
org.apache.phoenix.end2end.ClientManagedTimeTest
@@ -282,7 +282,7 @@
  UTF-8
  ${numForkedIT}
  true
- -enableassertions -Xmx2000m -XX:MaxPermSize=128m 
-Djava.security.egd=file:/dev/./urandom
+ -enableassertions -Xmx2000m -XX:MaxPermSize=128m 
-Djava.security.egd=file:/dev/./urandom 
"-Djava.library.path=${hadoop.library.path}${path.separator}${java.library.path}"
  
${test.output.tofile}
  
${basedir}/src/it/java
  
org.apache.phoenix.end2end.HBaseManagedTimeTest
@@ -298,7 +298,7 @@
  UTF-8
  ${numForkedIT}
  true
- -enableassertions -Xmx2000m -XX:MaxPermSize=128m 
-Djava.security.egd=file:/dev/./urandom
+ -enableassertions -Xmx2000m -XX:MaxPermSize=128m 
-Djava.security.egd=file:/dev/./urandom 
"-Djava.library.path=${hadoop.library.path}${path.separator}${java.library.path}"
  
${test.output.tofile}
  
${basedir}/src/it/java
  
org.apache.phoenix.end2end.NeedsOwnMiniClusterTest
@@ -395,7 +395,7 @@
   ${numForkedUT}
   true
   -enableassertions -Xmx2250m -XX:MaxPermSize=128m 
--Djava.security.egd=file:/dev/./urandom
+-Djava.security.egd=file:/dev/./urandom 
"-Djava.library.path=${hadoop.library.path}${path.separator}${java.library.path}"
   
${test.output.tofile}
 
   



[12/44] phoenix git commit: PHOENIX-1939 Test are failing with DoNotRetryIOException: ATABLE: null (Alicia Ying Shu)

2015-12-08 Thread ramkrishna
PHOENIX-1939 Test are failing with DoNotRetryIOException: ATABLE: null (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/a600cc4d
Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/a600cc4d
Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/a600cc4d

Branch: refs/heads/4.x-HBase-1.1
Commit: a600cc4d7acc2c828ae7782e59d094f99e5631f0
Parents: c95e28d
Author: Nick Dimiduk 
Authored: Fri May 29 17:12:25 2015 -0700
Committer: Nick Dimiduk 
Committed: Fri May 29 17:13:08 2015 -0700

--
 .../src/main/java/org/apache/phoenix/schema/PTableImpl.java  | 4 ++--
 .../src/test/java/org/apache/phoenix/query/BaseTest.java | 3 ++-
 2 files changed, 4 insertions(+), 3 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/a600cc4d/phoenix-core/src/main/java/org/apache/phoenix/schema/PTableImpl.java
--
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/schema/PTableImpl.java 
b/phoenix-core/src/main/java/org/apache/phoenix/schema/PTableImpl.java
index bf4420c..bdc95b8 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/schema/PTableImpl.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/schema/PTableImpl.java
@@ -88,8 +88,8 @@ public class PTableImpl implements PTable {
 
 private PTableKey key;
 private PName name;
-private PName schemaName;
-private PName tableName;
+private PName schemaName = PName.EMPTY_NAME;
+private PName tableName = PName.EMPTY_NAME;
 private PName tenantId;
 private PTableType type;
 private PIndexState state;

http://git-wip-us.apache.org/repos/asf/phoenix/blob/a600cc4d/phoenix-core/src/test/java/org/apache/phoenix/query/BaseTest.java
--
diff --git a/phoenix-core/src/test/java/org/apache/phoenix/query/BaseTest.java 
b/phoenix-core/src/test/java/org/apache/phoenix/query/BaseTest.java
index 54ae670..b0574c3 100644
--- a/phoenix-core/src/test/java/org/apache/phoenix/query/BaseTest.java
+++ b/phoenix-core/src/test/java/org/apache/phoenix/query/BaseTest.java
@@ -121,7 +121,6 @@ import 
org.apache.hadoop.hbase.io.encoding.DataBlockEncoding;
 import org.apache.hadoop.hbase.ipc.PhoenixRpcSchedulerFactory;
 import org.apache.hadoop.hbase.ipc.RpcControllerFactory;
 import org.apache.hadoop.hbase.ipc.controller.ServerRpcControllerFactory;
-import org.apache.hadoop.hbase.regionserver.HRegionServer;
 import org.apache.hadoop.hbase.regionserver.LocalIndexMerger;
 import org.apache.hadoop.hbase.regionserver.RSRpcServices;
 import org.apache.hadoop.hbase.util.Bytes;
@@ -829,6 +828,7 @@ public abstract class BaseTest {
 logger.info("Table " + fullTableName + " is already 
deleted.");
 }
 }
+rs.close();
 if (lastTenantId != null) {
 conn.close();
 }
@@ -860,6 +860,7 @@ public abstract class BaseTest {
 logger.info("DROP SEQUENCE STATEMENT: DROP SEQUENCE " + 
SchemaUtil.getEscapedTableName(rs.getString(2), rs.getString(3)));
 conn.createStatement().execute("DROP SEQUENCE " + 
SchemaUtil.getEscapedTableName(rs.getString(2), rs.getString(3)));
 }
+rs.close();
 }
 
 protected static void initSumDoubleValues(byte[][] splits, String url) 
throws Exception {



[25/44] phoenix git commit: PHOENIX-2033 PQS log environment details on launch

2015-12-08 Thread ramkrishna
PHOENIX-2033 PQS log environment details on launch


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

Branch: refs/heads/4.x-HBase-1.1
Commit: e64f61ba431b8db938bf60992bbde56f4c540946
Parents: f7d7349
Author: Nick Dimiduk 
Authored: Tue Jun 9 17:12:21 2015 -0700
Committer: Nick Dimiduk 
Committed: Fri Jun 12 09:38:42 2015 -0700

--
 .../apache/phoenix/queryserver/server/Main.java | 69 
 1 file changed, 69 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/e64f61ba/phoenix-server/src/main/java/org/apache/phoenix/queryserver/server/Main.java
--
diff --git 
a/phoenix-server/src/main/java/org/apache/phoenix/queryserver/server/Main.java 
b/phoenix-server/src/main/java/org/apache/phoenix/queryserver/server/Main.java
index 55febc5..9f9bfc7 100644
--- 
a/phoenix-server/src/main/java/org/apache/phoenix/queryserver/server/Main.java
+++ 
b/phoenix-server/src/main/java/org/apache/phoenix/queryserver/server/Main.java
@@ -34,7 +34,12 @@ import org.apache.hadoop.security.SecurityUtil;
 import org.apache.hadoop.util.Tool;
 import org.apache.hadoop.util.ToolRunner;
 
+import java.lang.management.ManagementFactory;
+import java.lang.management.RuntimeMXBean;
 import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
 
@@ -50,6 +55,11 @@ public final class Main extends Configured implements Tool, 
Runnable {
   "phoenix.queryserver.http.port";
   public static final int DEFAULT_HTTP_PORT = 8765;
 
+  public static final String QUERY_SERVER_ENV_LOGGING_KEY =
+  "phoenix.queryserver.envvars.logging.disabled";
+  public static final String QUERY_SERVER_ENV_LOGGING_SKIPWORDS_KEY =
+  "phoenix.queryserver.envvars.logging.skipwords";
+
   public static final String KEYTAB_FILENAME_KEY = 
"phoenix.queryserver.keytab.file";
   public static final String KERBEROS_PRINCIPAL_KEY = 
"phoenix.queryserver.kerberos.principal";
   public static final String DNS_NAMESERVER_KEY = 
"phoenix.queryserver.dns.nameserver";
@@ -58,12 +68,70 @@ public final class Main extends Configured implements Tool, 
Runnable {
 
   protected static final Log LOG = LogFactory.getLog(Main.class);
 
+  @SuppressWarnings("serial")
+  private static final Set DEFAULT_SKIP_WORDS = new HashSet() {
+{
+  add("secret");
+  add("passwd");
+  add("password");
+  add("credential");
+}
+  };
+
   private final String[] argv;
   private final CountDownLatch runningLatch = new CountDownLatch(1);
   private HttpServer server = null;
   private int retCode = 0;
   private Throwable t = null;
 
+  /**
+   * Log information about the currently running JVM.
+   */
+  public static void logJVMInfo() {
+// Print out vm stats before starting up.
+RuntimeMXBean runtime = ManagementFactory.getRuntimeMXBean();
+if (runtime != null) {
+  LOG.info("vmName=" + runtime.getVmName() + ", vmVendor=" +
+  runtime.getVmVendor() + ", vmVersion=" + runtime.getVmVersion());
+  LOG.info("vmInputArguments=" + runtime.getInputArguments());
+}
+  }
+
+  /**
+   * Logs information about the currently running JVM process including
+   * the environment variables. Logging of env vars can be disabled by
+   * setting {@code "phoenix.envvars.logging.disabled"} to {@code "true"}.
+   * If enabled, you can also exclude environment variables containing
+   * certain substrings by setting {@code "phoenix.envvars.logging.skipwords"}
+   * to comma separated list of such substrings.
+   */
+  public static void logProcessInfo(Configuration conf) {
+// log environment variables unless asked not to
+if (conf == null || !conf.getBoolean(QUERY_SERVER_ENV_LOGGING_KEY, false)) 
{
+  Set skipWords = new HashSet(DEFAULT_SKIP_WORDS);
+  if (conf != null) {
+String[] confSkipWords = 
conf.getStrings(QUERY_SERVER_ENV_LOGGING_SKIPWORDS_KEY);
+if (confSkipWords != null) {
+  skipWords.addAll(Arrays.asList(confSkipWords));
+}
+  }
+
+  nextEnv:
+  for (Map.Entry entry : System.getenv().entrySet()) {
+String key = entry.getKey().toLowerCase();
+String value = entry.getValue().toLowerCase();
+// exclude variables which may contain skip words
+for(String skipWord : skipWords) {
+  if (key.contains(skipWord) || value.contains(skipWord))
+continue nextEnv;
+}
+LOG.info("env:"+entry);
+  }
+  

[17/44] phoenix git commit: PHOENIX-1976 Exit gracefully if addShutdownHook fails.

2015-12-08 Thread ramkrishna
PHOENIX-1976 Exit gracefully if addShutdownHook fails.

If the JVM is already in the process of shutting down,
we don't need to add the shutdown hook for the PhoenixDriver
instance. Additionally, we shouldn't advertise this instance
either since we're going down.


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

Branch: refs/heads/4.x-HBase-1.1
Commit: f2be9138359b078fd3e285f3fd441de711789962
Parents: dc46b14
Author: Josh Elser 
Authored: Thu May 14 17:40:46 2015 -0400
Committer: Nick Dimiduk 
Committed: Mon Jun 1 12:02:28 2015 -0700

--
 .../org/apache/phoenix/jdbc/PhoenixDriver.java  | 46 ++--
 1 file changed, 32 insertions(+), 14 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/f2be9138/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixDriver.java
--
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixDriver.java 
b/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixDriver.java
index 6360d06..cfabe82 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixDriver.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixDriver.java
@@ -60,25 +60,43 @@ public final class PhoenixDriver extends 
PhoenixEmbeddedDriver {
 private static volatile String driverShutdownMsg;
 static {
 try {
-DriverManager.registerDriver( INSTANCE = new PhoenixDriver() );
-// Add shutdown hook to release any resources that were never 
closed
-// In theory not necessary, but it won't hurt anything
-Runtime.getRuntime().addShutdownHook(new Thread() {
-@Override
-public void run() {
-try {
-INSTANCE.close();
-} catch (SQLException e) {
-logger.warn("Unable to close PhoenixDriver on 
shutdown", e);
-} finally {
-driverShutdownMsg = "Phoenix driver closed because 
server is shutting down";
+INSTANCE = new PhoenixDriver();
+try {
+// Add shutdown hook to release any resources that were never 
closed
+// In theory not necessary, but it won't hurt anything
+Runtime.getRuntime().addShutdownHook(new Thread() {
+@Override
+public void run() {
+closeInstance(INSTANCE);
 }
-}
-});
+});
+
+// Only register the driver when we successfully register the 
shutdown hook
+// Don't want to register it if we're already in the process 
of going down.
+DriverManager.registerDriver( INSTANCE );
+} catch (IllegalStateException e) {
+logger.warn("Failed to register PhoenixDriver shutdown hook as 
the JVM is already shutting down");
+
+// Close the instance now because we don't have the shutdown 
hook
+closeInstance(INSTANCE);
+
+throw e;
+}
 } catch (SQLException e) {
 throw new IllegalStateException("Unable to register " + 
PhoenixDriver.class.getName() + ": "+ e.getMessage());
 }
 }
+
+private static void closeInstance(PhoenixDriver instance) {
+try {
+instance.close();
+} catch (SQLException e) {
+logger.warn("Unable to close PhoenixDriver on shutdown", e);
+} finally {
+driverShutdownMsg = "Phoenix driver closed because server is 
shutting down";
+}
+}
+
 // One entry per cluster here
 private final ConcurrentMap 
connectionQueryServicesMap = new 
ConcurrentHashMap(3);
 



[21/44] phoenix git commit: PHOENIX-777 - Support null value for fixed length ARRAY - Addendum (Ram)

2015-12-08 Thread ramkrishna
PHOENIX-777 - Support null value for fixed length ARRAY - Addendum (Ram)


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

Branch: refs/heads/4.x-HBase-1.1
Commit: 58ee7062c624dd72a5cdaa41ec5b107a1e7b14c2
Parents: 6f890ad
Author: ramkrishna 
Authored: Tue Jun 2 14:32:02 2015 +0530
Committer: ramkrishna 
Committed: Tue Jun 2 14:36:05 2015 +0530

--
 .../main/java/org/apache/phoenix/schema/types/PTimestamp.java   | 5 +
 1 file changed, 5 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/58ee7062/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PTimestamp.java
--
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PTimestamp.java 
b/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PTimestamp.java
index d396adc..16b110e 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PTimestamp.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PTimestamp.java
@@ -26,6 +26,7 @@ import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
 import org.apache.hadoop.hbase.util.Bytes;
 import org.apache.phoenix.query.QueryConstants;
 import org.apache.phoenix.schema.SortOrder;
+import org.apache.phoenix.util.ByteUtil;
 import org.apache.phoenix.util.DateUtil;
 
 public class PTimestamp extends PDataType {
@@ -47,6 +48,10 @@ public class PTimestamp extends PDataType {
   @Override
   public int toBytes(Object object, byte[] bytes, int offset) {
 if (object == null) {
+  // Create the byte[] of size MAX_TIMESTAMP_BYTES
+  if(bytes.length != getByteSize()) {
+  bytes = Bytes.padTail(bytes, (getByteSize() - bytes.length));
+  }
   PDate.INSTANCE.getCodec().encodeLong(0l, bytes, offset);
   Bytes.putInt(bytes, offset + Bytes.SIZEOF_LONG, 0);
   return getByteSize();



[05/44] phoenix git commit: PHOENIX-2008 Integration tests are failing with HBase-1.1.0 because HBASE-13756(Rajeshbabu)

2015-12-08 Thread ramkrishna
PHOENIX-2008 Integration tests are failing with HBase-1.1.0 because 
HBASE-13756(Rajeshbabu)


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

Branch: refs/heads/4.x-HBase-1.1
Commit: 56e1c0a1f348572fb73e9d0b8bbfb053df7f8710
Parents: ea622d5
Author: Rajeshbabu Chintaguntla 
Authored: Sat May 23 23:29:31 2015 +0530
Committer: Rajeshbabu Chintaguntla 
Committed: Sat May 23 23:29:31 2015 +0530

--
 phoenix-core/src/test/java/org/apache/phoenix/query/BaseTest.java | 2 ++
 1 file changed, 2 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/56e1c0a1/phoenix-core/src/test/java/org/apache/phoenix/query/BaseTest.java
--
diff --git a/phoenix-core/src/test/java/org/apache/phoenix/query/BaseTest.java 
b/phoenix-core/src/test/java/org/apache/phoenix/query/BaseTest.java
index 54ae670..4aa28c4 100644
--- a/phoenix-core/src/test/java/org/apache/phoenix/query/BaseTest.java
+++ b/phoenix-core/src/test/java/org/apache/phoenix/query/BaseTest.java
@@ -620,6 +620,8 @@ public abstract class BaseTest {
 }
 //no point doing sanity checks when running tests.
 conf.setBoolean("hbase.table.sanity.checks", false);
+// Remove this configuration once hbase has HBASE-13756 fix.
+conf.set("hbase.regionserver.msginterval", "30");
 // set the server rpc controller and rpc scheduler factory, used to 
configure the cluster
 conf.set(RpcControllerFactory.CUSTOM_CONTROLLER_CONF_KEY, 
DEFAULT_SERVER_RPC_CONTROLLER_FACTORY);
 conf.set(RSRpcServices.REGION_SERVER_RPC_SCHEDULER_FACTORY_CLASS, 
DEFAULT_RPC_SCHEDULER_FACTORY);



[34/44] phoenix git commit: PHOENIX-1659 PhoenixDatabaseMetaData.getColumns does not return REMARKS column

2015-12-08 Thread ramkrishna
PHOENIX-1659 PhoenixDatabaseMetaData.getColumns does not return REMARKS column


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

Branch: refs/heads/4.x-HBase-1.1
Commit: 4c705228d278721c12f1d7369c990d1de12f9d13
Parents: 89ab41c
Author: Josh Mahonin 
Authored: Thu Jun 25 15:52:37 2015 -0400
Committer: Josh Mahonin 
Committed: Mon Jun 29 12:30:56 2015 -0400

--
 .../end2end/QueryDatabaseMetaDataIT.java| 31 
 .../phoenix/jdbc/PhoenixDatabaseMetaData.java   |  1 +
 2 files changed, 32 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/4c705228/phoenix-core/src/it/java/org/apache/phoenix/end2end/QueryDatabaseMetaDataIT.java
--
diff --git 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/QueryDatabaseMetaDataIT.java
 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/QueryDatabaseMetaDataIT.java
index 61459a5..2fdccf6 100644
--- 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/QueryDatabaseMetaDataIT.java
+++ 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/QueryDatabaseMetaDataIT.java
@@ -1118,4 +1118,35 @@ public class QueryDatabaseMetaDataIT extends 
BaseClientManagedTimeIT {
 assertFalse(rs.next());
 }
 
+@Test
+public void testRemarkColumn() throws SQLException {
+long ts = nextTimestamp();
+Properties props = new Properties();
+props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB, Long.toString(ts 
+ 5));
+Connection conn = DriverManager.getConnection(getUrl(), props);
+
+// Retrieve the database metadata
+DatabaseMetaData dbmd = conn.getMetaData();
+ResultSet rs = dbmd.getColumns(null, null, null, null);
+rs.next();
+
+// Lookup column by name, this should return null but not throw an 
exception
+String remarks = rs.getString("REMARKS");
+assertNull(remarks);
+
+// Same as above, but lookup by position
+remarks = rs.getString(12);
+assertNull(remarks);
+
+// Iterate through metadata columns to find 'COLUMN_NAME' == 'REMARKS'
+boolean foundRemarksColumn = false;
+while(rs.next()) {
+String colName = rs.getString("COLUMN_NAME");
+if(PhoenixDatabaseMetaData.REMARKS.equals(colName)) {
+foundRemarksColumn = true;
+break;
+}
+}
+assertTrue("Could not find REMARKS column", foundRemarksColumn);
+}
 }

http://git-wip-us.apache.org/repos/asf/phoenix/blob/4c705228/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixDatabaseMetaData.java
--
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixDatabaseMetaData.java
 
b/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixDatabaseMetaData.java
index 3a0b03b..a862875 100644
--- 
a/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixDatabaseMetaData.java
+++ 
b/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixDatabaseMetaData.java
@@ -437,6 +437,7 @@ public class PhoenixDatabaseMetaData implements 
DatabaseMetaData, org.apache.pho
 DECIMAL_DIGITS + "," +
 NUM_PREC_RADIX + "," +
 NULLABLE + "," +
+REMARKS + "," +
 COLUMN_DEF + "," +
 SQL_DATA_TYPE + "," +
 SQL_DATETIME_SUB + "," +



[29/44] phoenix git commit: PHOENIX-1941 Phoenix tests are failing in linux env with missing class: StaticMapping (Alicia Ying Shu)

2015-12-08 Thread ramkrishna
PHOENIX-1941 Phoenix tests are failing in linux env with missing class: 
StaticMapping (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/329d7494
Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/329d7494
Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/329d7494

Branch: refs/heads/4.x-HBase-1.1
Commit: 329d74948521ed974593e455369a27d9cd705249
Parents: 52f5b04
Author: Nick Dimiduk 
Authored: Wed Jun 17 12:17:33 2015 -0700
Committer: Nick Dimiduk 
Committed: Wed Jun 17 12:23:47 2015 -0700

--
 .../phoenix/end2end/End2EndTestDriver.java   | 19 +++
 1 file changed, 15 insertions(+), 4 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/329d7494/phoenix-core/src/it/java/org/apache/phoenix/end2end/End2EndTestDriver.java
--
diff --git 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/End2EndTestDriver.java 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/End2EndTestDriver.java
index 26d18cf..743f729 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/End2EndTestDriver.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/End2EndTestDriver.java
@@ -21,6 +21,7 @@ package org.apache.phoenix.end2end;
 
 import java.io.IOException;
 import java.io.PrintStream;
+import java.lang.annotation.Annotation;
 import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.List;
@@ -79,10 +80,20 @@ public class End2EndTestDriver extends AbstractHBaseTool {
 
   @Override
   public boolean isCandidateClass(Class c) {
-return testFilterRe.matcher(c.getName()).find() &&
-  // Our pattern will match the below NON-IntegrationTest. Rather than
-  // do exotic regex, just filter it out here
-  super.isCandidateClass(c);
+  Annotation[] annotations = c.getAnnotations();
+  for (Annotation curAnnotation : annotations) {
+  if 
(curAnnotation.toString().contains("NeedsOwnMiniClusterTest")) {
+  /* Skip tests that aren't designed to run against a live 
cluster.
+   * For a live cluster, we cannot bring it up and down as 
required
+   * for these tests to run.
+   */
+  return false;
+  }
+  }
+  return testFilterRe.matcher(c.getName()).find() &&
+  // Our pattern will match the below NON-IntegrationTest. 
Rather than
+  // do exotic regex, just filter it out here
+  super.isCandidateClass(c);
   }
 }
 



[44/44] phoenix git commit: PHOENIX-1949 NPE while inserting NULL in a VARCHAR array using UPSERT stmt (Ram)

2015-12-08 Thread ramkrishna
PHOENIX-1949 NPE while inserting NULL in a VARCHAR array using UPSERT stmt
(Ram)


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

Branch: refs/heads/4.x-HBase-1.1
Commit: a9e1997ede1f2c031cc48338c314cdaf67aa5ae5
Parents: 6511d70
Author: ramkrishna 
Authored: Wed Dec 9 09:43:01 2015 +0530
Committer: ramkrishna 
Committed: Wed Dec 9 09:48:05 2015 +0530

--
 .../org/apache/phoenix/end2end/ArrayIT.java | 27 
 .../org/apache/phoenix/schema/types/PChar.java  |  6 ++---
 .../apache/phoenix/schema/types/PVarchar.java   |  6 ++---
 3 files changed, 33 insertions(+), 6 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/a9e1997e/phoenix-core/src/it/java/org/apache/phoenix/end2end/ArrayIT.java
--
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/ArrayIT.java 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/ArrayIT.java
index 4b79142..1978dba 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/ArrayIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/ArrayIT.java
@@ -870,6 +870,33 @@ public class ArrayIT extends BaseClientManagedTimeIT {
 }
 
 @Test
+public void testArrayWithVarCharArray() throws Exception {
+Connection conn;
+PreparedStatement stmt;
+ResultSet rs;
+long ts = nextTimestamp();
+Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
+props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB, Long.toString(ts 
+ 10));
+conn = DriverManager.getConnection(getUrl(), props);
+conn.createStatement().execute("CREATE TABLE t ( k VARCHAR PRIMARY 
KEY, a VARCHAR ARRAY[])");
+conn.close();
+
+props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB, Long.toString(ts 
+ 30));
+conn = DriverManager.getConnection(getUrl(), props);
+stmt = conn.prepareStatement("UPSERT INTO t 
VALUES('a',ARRAY['a',null])");
+int res = stmt.executeUpdate();
+assertEquals(1, res);
+conn.commit();
+conn.close();
+props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB, Long.toString(ts 
+ 40));
+conn = DriverManager.getConnection(getUrl(), props);
+rs = conn.createStatement().executeQuery("SELECT ARRAY_ELEM(a,2) FROM 
t");
+assertTrue(rs.next());
+assertEquals(null, rs.getString(1));
+conn.close();
+}
+
+@Test
 public void testArraySelectSingleArrayElemWithCast() throws Exception {
 Connection conn;
 PreparedStatement stmt;

http://git-wip-us.apache.org/repos/asf/phoenix/blob/a9e1997e/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PChar.java
--
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PChar.java 
b/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PChar.java
index c7cc1c1..206a8db 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PChar.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PChar.java
@@ -93,12 +93,12 @@ public class PChar extends PDataType {
 
 @Override
 public Object toObject(byte[] bytes, int offset, int length, PDataType 
actualType, SortOrder sortOrder, Integer maxLength, Integer scale) {
-  if (!actualType.isCoercibleTo(this)) { // TODO: have isCoercibleTo that 
takes bytes, offset?
-throwConstraintViolationException(actualType,this);
-  }
   if (length == 0) {
 return null;
   }
+  if (!actualType.isCoercibleTo(this)) {
+throwConstraintViolationException(actualType, this);
+  }
   length = StringUtil.getUnpaddedCharLength(bytes, offset, length, 
sortOrder);
   if (sortOrder == SortOrder.DESC) {
 bytes = SortOrder.invert(bytes, offset, length);

http://git-wip-us.apache.org/repos/asf/phoenix/blob/a9e1997e/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PVarchar.java
--
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PVarchar.java 
b/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PVarchar.java
index fa3dbad..2575115 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PVarchar.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PVarchar.java
@@ -59,12 +59,12 @@ public class PVarchar extends PDataType {
   @Override
   public Object toObject(byte[] bytes, int offset, 

Apache-Phoenix | 4.5-HBase-1.0 | Build Successful

2015-12-08 Thread Apache Jenkins Server
4.5-HBase-1.0 branch build status Successful

Source repository https://git-wip-us.apache.org/repos/asf?p=phoenix.git;a=shortlog;h=refs/heads/4.5-HBase-1.0

Compiled Artifacts https://builds.apache.org/job/Phoenix-4.5-HBase-1.0/lastSuccessfulBuild/artifact/

Test Report https://builds.apache.org/job/Phoenix-4.5-HBase-1.0/lastCompletedBuild/testReport/

Changes
[ramkrishna] PHOENIX-1949 NPE while inserting NULL in a VARCHAR array using UPSERT



Build times for last couple of runsLatest build time is the right most | Legend blue: normal, red: test failure, gray: timeout


phoenix git commit: PHOENIX-2383 Implement Sequence in Phoenix/Calcite integration

2015-12-08 Thread maryannxue
Repository: phoenix
Updated Branches:
  refs/heads/calcite 9a3e5e51b -> 57c3f3dba


PHOENIX-2383 Implement Sequence in Phoenix/Calcite integration


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

Branch: refs/heads/calcite
Commit: 57c3f3dba5fff6f852ca66a135dc768a560acf78
Parents: 9a3e5e5
Author: maryannxue 
Authored: Tue Dec 8 22:42:01 2015 -0500
Committer: maryannxue 
Committed: Tue Dec 8 22:42:01 2015 -0500

--
 .../org/apache/phoenix/calcite/CalciteIT.java   | 44 +++-
 .../apache/phoenix/calcite/CalciteUtils.java| 73 
 .../apache/phoenix/calcite/PhoenixSchema.java   | 62 -
 .../apache/phoenix/calcite/PhoenixSequence.java | 42 +++
 .../calcite/rel/PhoenixClientProject.java   | 34 -
 .../phoenix/calcite/rel/PhoenixFilter.java  |  8 +++
 .../apache/phoenix/calcite/rel/PhoenixRel.java  |  6 ++
 .../calcite/rel/PhoenixRelImplementorImpl.java  | 22 ++
 .../calcite/rules/PhoenixConverterRules.java| 47 +
 .../apache/phoenix/compile/SequenceManager.java | 20 +++---
 10 files changed, 316 insertions(+), 42 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/57c3f3db/phoenix-core/src/it/java/org/apache/phoenix/calcite/CalciteIT.java
--
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/calcite/CalciteIT.java 
b/phoenix-core/src/it/java/org/apache/phoenix/calcite/CalciteIT.java
index bac09bd..dd35b23 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/calcite/CalciteIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/calcite/CalciteIT.java
@@ -21,6 +21,7 @@ import com.google.common.collect.Lists;
 
 import org.apache.calcite.config.CalciteConnectionProperty;
 import org.apache.phoenix.end2end.BaseClientManagedTimeIT;
+import org.apache.phoenix.schema.SequenceAlreadyExistsException;
 import org.apache.phoenix.schema.TableAlreadyExistsException;
 import org.apache.phoenix.util.PhoenixRuntime;
 import org.apache.phoenix.util.PropertiesUtil;
@@ -261,7 +262,8 @@ public class CalciteIT extends BaseClientManagedTimeIT {
 "CREATE INDEX IDX1 ON aTable (a_string) INCLUDE (b_string, 
x_integer)",
 "CREATE INDEX IDX2 ON aTable (b_string) INCLUDE (a_string, 
y_integer)",
 "CREATE INDEX IDX_FULL ON aTable (b_string) INCLUDE (a_string, 
a_integer, a_date, a_time, a_timestamp, x_decimal, x_long, x_integer, 
y_integer, a_byte, a_short, a_float, a_double, a_unsigned_float, 
a_unsigned_double)",
-"CREATE VIEW v AS SELECT * from aTable where a_string = 'a'");
+"CREATE VIEW v AS SELECT * from aTable where a_string = 'a'",
+"CREATE SEQUENCE seq START WITH 1 INCREMENT BY 1");
 final Connection connection = DriverManager.getConnection(url);
 connection.createStatement().execute("UPDATE STATISTICS ATABLE");
 connection.createStatement().execute("UPDATE STATISTICS " + 
JOIN_CUSTOMER_TABLE_FULL_NAME);
@@ -284,6 +286,7 @@ public class CalciteIT extends BaseClientManagedTimeIT {
 try {
 conn.createStatement().execute(ddl);
 } catch (TableAlreadyExistsException e) {
+} catch (SequenceAlreadyExistsException e) {
 }
 }
 conn.close();
@@ -1697,6 +1700,45 @@ public class CalciteIT extends BaseClientManagedTimeIT {
 {"5", 6}})
 .close();
 }
+
+@Test public void testSequence() throws Exception {
+start(false).sql("select NEXT VALUE FOR seq, c0 from (values (1), (1)) 
as t(c0)")
+.explainIs("PhoenixToEnumerableConverter\n" +
+   "  
PhoenixClientProject(EXPR$0=[NEXT_VALUE('\"SEQ\"')], C0=[$0])\n" +
+   "PhoenixValues(tuples=[[{ 1 }, { 1 }]])\n")
+.resultIs(new Object[][]{
+{1L, 1},
+{2L, 1}})
+.close();
+
+start(false).sql("select NEXT VALUE FOR seq, entity_id from aTable 
where a_string = 'a'")
+.explainIs("PhoenixToEnumerableConverter\n" +
+   "  
PhoenixClientProject(EXPR$0=[NEXT_VALUE('\"SEQ\"')], ENTITY_ID=[$1])\n" +
+   "PhoenixTableScan(table=[[phoenix, ATABLE]], 
filter=[=($2, 'a')])\n")
+.resultIs(new Object[][]{
+{3L, "00A123122312312"},
+{4L, "00A223122312312"},
+{5L, 

phoenix git commit: PHOENIX-1949 NPE while inserting NULL in a VARCHAR array using UPSERT stmt (Ram)

2015-12-08 Thread ramkrishna
Repository: phoenix
Updated Branches:
  refs/heads/4.5-HBase-1.0 52a7741e6 -> 7eeaf9eb2


PHOENIX-1949 NPE while inserting NULL in a VARCHAR array using UPSERT stmt
(Ram)


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

Branch: refs/heads/4.5-HBase-1.0
Commit: 7eeaf9eb205cb9caca90e90c78a2ed94603fe0fa
Parents: 52a7741
Author: ramkrishna 
Authored: Wed Dec 9 09:43:01 2015 +0530
Committer: ramkrishna 
Committed: Wed Dec 9 09:55:10 2015 +0530

--
 .../org/apache/phoenix/end2end/ArrayIT.java | 27 
 .../org/apache/phoenix/schema/types/PChar.java  |  6 ++---
 .../apache/phoenix/schema/types/PVarchar.java   |  6 ++---
 3 files changed, 33 insertions(+), 6 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/7eeaf9eb/phoenix-core/src/it/java/org/apache/phoenix/end2end/ArrayIT.java
--
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/ArrayIT.java 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/ArrayIT.java
index b7a2ad2..80396a6 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/ArrayIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/ArrayIT.java
@@ -870,6 +870,33 @@ public class ArrayIT extends BaseClientManagedTimeIT {
 }
 
 @Test
+public void testArrayWithVarCharArray() throws Exception {
+Connection conn;
+PreparedStatement stmt;
+ResultSet rs;
+long ts = nextTimestamp();
+Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
+props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB, Long.toString(ts 
+ 10));
+conn = DriverManager.getConnection(getUrl(), props);
+conn.createStatement().execute("CREATE TABLE t ( k VARCHAR PRIMARY 
KEY, a VARCHAR ARRAY[])");
+conn.close();
+
+props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB, Long.toString(ts 
+ 30));
+conn = DriverManager.getConnection(getUrl(), props);
+stmt = conn.prepareStatement("UPSERT INTO t 
VALUES('a',ARRAY['a',null])");
+int res = stmt.executeUpdate();
+assertEquals(1, res);
+conn.commit();
+conn.close();
+props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB, Long.toString(ts 
+ 40));
+conn = DriverManager.getConnection(getUrl(), props);
+rs = conn.createStatement().executeQuery("SELECT ARRAY_ELEM(a,2) FROM 
t");
+assertTrue(rs.next());
+assertEquals(null, rs.getString(1));
+conn.close();
+}
+
+@Test
 public void testArraySelectSingleArrayElemWithCast() throws Exception {
 Connection conn;
 PreparedStatement stmt;

http://git-wip-us.apache.org/repos/asf/phoenix/blob/7eeaf9eb/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PChar.java
--
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PChar.java 
b/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PChar.java
index 6b26197..4170253 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PChar.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PChar.java
@@ -104,12 +104,12 @@ public class PChar extends PDataType {
 
 @Override
 public Object toObject(byte[] bytes, int offset, int length, PDataType 
actualType, SortOrder sortOrder, Integer maxLength, Integer scale) {
-  if (!actualType.isCoercibleTo(this)) { // TODO: have isCoercibleTo that 
takes bytes, offset?
-throwConstraintViolationException(actualType,this);
-  }
   if (length == 0) {
 return null;
   }
+  if (!actualType.isCoercibleTo(this)) {
+throwConstraintViolationException(actualType, this);
+  }
   length = StringUtil.getUnpaddedCharLength(bytes, offset, length, 
sortOrder);
   if (sortOrder == SortOrder.DESC) {
 bytes = SortOrder.invert(bytes, offset, length);

http://git-wip-us.apache.org/repos/asf/phoenix/blob/7eeaf9eb/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PVarchar.java
--
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PVarchar.java 
b/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PVarchar.java
index fa3dbad..2575115 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PVarchar.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PVarchar.java
@@ -59,12 +59,12 @@ public class 

Build failed in Jenkins: Phoenix | Master #1008

2015-12-08 Thread Apache Jenkins Server
See 

Changes:

[tdsilva] PHOENIX-2494 Fix test failure

--
[...truncated 24988 lines...]
  url: http://repo.maven.apache.org/maven2
   layout: default
snapshots: [enabled => false, update => daily]
 releases: [enabled => true, update => never]
]
[DEBUG]   (s) reportFormat = brief
[DEBUG]   (s) reportsDirectory = 

[DEBUG]   (f) rerunFailingTestsCount = 0
[DEBUG]   (f) reuseForks = true
[DEBUG]   (s) runOrder = filesystem
[DEBUG]   (f) shutdown = testset
[DEBUG]   (s) skip = false
[DEBUG]   (f) skipAfterFailureCount = 0
[DEBUG]   (s) skipTests = false
[DEBUG]   (s) suiteXmlFiles = []
[DEBUG]   (s) summaryFile = 

[DEBUG]   (s) testClassesDirectory = 

[DEBUG]   (s) testNGArtifactName = org.testng:testng
[DEBUG]   (s) testSourceDirectory = 

[DEBUG]   (s) threadCountClasses = 0
[DEBUG]   (s) threadCountMethods = 0
[DEBUG]   (s) threadCountSuites = 0
[DEBUG]   (s) trimStackTrace = true
[DEBUG]   (s) useFile = true
[DEBUG]   (s) useManifestOnlyJar = true
[DEBUG]   (s) useSystemClassLoader = true
[DEBUG]   (s) useUnlimitedThreads = false
[DEBUG]   (s) workingDirectory = 

[DEBUG]   (s) project = MavenProject: 
org.apache.phoenix:phoenix-core:4.7.0-HBase-1.1-SNAPSHOT @ 

[DEBUG]   (s) session = org.apache.maven.execution.MavenSession@11346f77
[DEBUG] -- end configuration --
[DEBUG] Failsafe report directory: 

[DEBUG] Setting system property 
[user.dir]=[
[DEBUG] Setting system property [localRepository]=[/home/jenkins/.m2/repository]
[DEBUG] Setting system property 
[basedir]=[
[DEBUG] Setting system property [checkstyle.skip]=[true]
[DEBUG] parallel='none', perCoreThreadCount=true, threadCount=0, 
useUnlimitedThreads=false, threadCountSuites=0, threadCountClasses=0, 
threadCountMethods=0, parallelOptimized=true
[DEBUG] Using JVM: 
/home/jenkins/jenkins-slave/tools/hudson.model.JDK/JDK_1.7_latest_/jre/bin/java
[DEBUG] test classpath:  

  

  
/home/jenkins/.m2/repository/co/cask/tephra/tephra-api/0.6.3/tephra-api-0.6.3.jar
  
/home/jenkins/.m2/repository/co/cask/tephra/tephra-core/0.6.3/tephra-core-0.6.3.jar
  /home/jenkins/.m2/repository/com/google/code/gson/gson/2.2.4/gson-2.2.4.jar  
/home/jenkins/.m2/repository/com/google/inject/guice/3.0/guice-3.0.jar  
/home/jenkins/.m2/repository/javax/inject/javax.inject/1/javax.inject-1.jar  
/home/jenkins/.m2/repository/aopalliance/aopalliance/1.0/aopalliance-1.0.jar  
/home/jenkins/.m2/repository/com/google/inject/extensions/guice-assistedinject/3.0/guice-assistedinject-3.0.jar
  
/home/jenkins/.m2/repository/ch/qos/logback/logback-classic/1.0.9/logback-classic-1.0.9.jar
  
/home/jenkins/.m2/repository/ch/qos/logback/logback-core/1.0.9/logback-core-1.0.9.jar
  
/home/jenkins/.m2/repository/org/apache/thrift/libthrift/0.9.0/libthrift-0.9.0.jar
  /home/jenkins/.m2/repository/it/unimi/dsi/fastutil/6.5.6/fastutil-6.5.6.jar  
/home/jenkins/.m2/repository/org/apache/twill/twill-common/0.6.0-incubating/twill-common-0.6.0-incubating.jar
  
/home/jenkins/.m2/repository/org/apache/twill/twill-core/0.6.0-incubating/twill-core-0.6.0-incubating.jar
  
/home/jenkins/.m2/repository/org/apache/twill/twill-api/0.6.0-incubating/twill-api-0.6.0-incubating.jar
  /home/jenkins/.m2/repository/org/ow2/asm/asm-all/5.0.2/asm-all-5.0.2.jar  
/home/jenkins/.m2/repository/org/apache/twill/twill-discovery-api/0.6.0-incubating/twill-discovery-api-0.6.0-incubating.jar
  
/home/jenkins/.m2/repository/org/apache/twill/twill-discovery-core/0.6.0-incubating/twill-discovery-core-0.6.0-incubating.jar
  
/home/jenkins/.m2/repository/org/apache/twill/twill-zookeeper/0.6.0-incubating/twill-zookeeper-0.6.0-incubating.jar
  
/home/jenkins/.m2/repository/io/dropwizard/metrics/metrics-core/3.1.0/metrics-core-3.1.0.jar
  
/home/jenkins/.m2/repository/co/cask/tephra/tephra-core/0.6.3/tephra-core-0.6.3-tests.jar
  
/home/jenkins/.m2/repository/co/cask/tephra/tephra-hbase-compat-1.1/0.6.3/tephra-hbase-compat-1.1-0.6.3.jar
  /home/jenkins/.m2/repository/org/antlr/antlr/3.5/antlr-3.5.jar  

[24/44] phoenix git commit: PHOENIX-1968: Should support saving arrays

2015-12-08 Thread ramkrishna
PHOENIX-1968: Should support saving arrays


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

Branch: refs/heads/4.x-HBase-1.1
Commit: f7d734966f7172c3bc4a6f0ba31594ba74ee91a1
Parents: bfd860f
Author: ravimagham 
Authored: Thu Jun 11 12:59:48 2015 -0700
Committer: ravimagham 
Committed: Thu Jun 11 12:59:48 2015 -0700

--
 .../apache/phoenix/spark/PhoenixSparkIT.scala   | 21 
 .../phoenix/spark/PhoenixRecordWritable.scala   | 25 
 2 files changed, 41 insertions(+), 5 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/f7d73496/phoenix-spark/src/it/scala/org/apache/phoenix/spark/PhoenixSparkIT.scala
--
diff --git 
a/phoenix-spark/src/it/scala/org/apache/phoenix/spark/PhoenixSparkIT.scala 
b/phoenix-spark/src/it/scala/org/apache/phoenix/spark/PhoenixSparkIT.scala
index 42e8676..5f256e6 100644
--- a/phoenix-spark/src/it/scala/org/apache/phoenix/spark/PhoenixSparkIT.scala
+++ b/phoenix-spark/src/it/scala/org/apache/phoenix/spark/PhoenixSparkIT.scala
@@ -415,4 +415,25 @@ class PhoenixSparkIT extends FunSuite with Matchers with 
BeforeAndAfterAll {
 
 results.toList shouldEqual checkResults
   }
+
+  test("Can save arrays back to phoenix") {
+val dataSet = List((2L, Array("String1", "String2", "String3")))
+
+sc
+  .parallelize(dataSet)
+  .saveToPhoenix(
+"ARRAY_TEST_TABLE",
+Seq("ID","VCARRAY"),
+zkUrl = Some(quorumAddress)
+  )
+
+// Load the results back
+val stmt = conn.createStatement()
+val rs = stmt.executeQuery("SELECT VCARRAY FROM ARRAY_TEST_TABLE WHERE ID 
= 2")
+rs.next()
+val sqlArray = rs.getArray(1).getArray().asInstanceOf[Array[String]]
+
+// Verify the arrays are equal
+sqlArray shouldEqual dataSet(0)._2
+  }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/phoenix/blob/f7d73496/phoenix-spark/src/main/scala/org/apache/phoenix/spark/PhoenixRecordWritable.scala
--
diff --git 
a/phoenix-spark/src/main/scala/org/apache/phoenix/spark/PhoenixRecordWritable.scala
 
b/phoenix-spark/src/main/scala/org/apache/phoenix/spark/PhoenixRecordWritable.scala
index 67e0bd2..3977657 100644
--- 
a/phoenix-spark/src/main/scala/org/apache/phoenix/spark/PhoenixRecordWritable.scala
+++ 
b/phoenix-spark/src/main/scala/org/apache/phoenix/spark/PhoenixRecordWritable.scala
@@ -16,11 +16,12 @@ package org.apache.phoenix.spark
 import java.sql.{PreparedStatement, ResultSet}
 import org.apache.hadoop.mapreduce.lib.db.DBWritable
 import org.apache.phoenix.mapreduce.util.ColumnInfoToStringEncoderDecoder
-import org.apache.phoenix.schema.types.{PDate, PhoenixArray}
+import org.apache.phoenix.schema.types.{PDataType, PDate, PhoenixArray}
 import org.joda.time.DateTime
 import scala.collection.{immutable, mutable}
 import scala.collection.JavaConversions._
 
+
 class PhoenixRecordWritable(var encodedColumns: String) extends DBWritable {
   val upsertValues = mutable.ArrayBuffer[Any]()
   val resultMap = mutable.Map[String, AnyRef]()
@@ -44,13 +45,27 @@ class PhoenixRecordWritable(var encodedColumns: String) 
extends DBWritable {
 upsertValues.zip(columns).zipWithIndex.foreach {
   case ((v, c), i) => {
 if (v != null) {
+
   // Both Java and Joda dates used to work in 4.2.3, but now they must 
be java.sql.Date
+  // Can override any other types here as needed
   val (finalObj, finalType) = v match {
-case dt: DateTime => (new java.sql.Date(dt.getMillis), 
PDate.INSTANCE.getSqlType)
-case d: java.util.Date => (new java.sql.Date(d.getTime), 
PDate.INSTANCE.getSqlType)
-case _ => (v, c.getSqlType)
+case dt: DateTime => (new java.sql.Date(dt.getMillis), 
PDate.INSTANCE)
+case d: java.util.Date => (new java.sql.Date(d.getTime), 
PDate.INSTANCE)
+case _ => (v, c.getPDataType)
+  }
+
+  // Save as array or object
+  finalObj match {
+case obj: Array[AnyRef] => {
+  // Create a java.sql.Array, need to lookup the base sql type name
+  val sqlArray = statement.getConnection.createArrayOf(
+PDataType.arrayBaseType(finalType).getSqlTypeName,
+obj
+  )
+  statement.setArray(i + 1, sqlArray)
+}
+case _ => statement.setObject(i + 1, finalObj)
   }
-  statement.setObject(i + 1, finalObj, finalType)
 } 

[43/44] phoenix git commit: PHOENIX-2213 ARRAY_LENGTH fails for Decimal type array (Dumindu Buddhika)

2015-12-08 Thread ramkrishna
PHOENIX-2213 ARRAY_LENGTH fails for Decimal type array (Dumindu Buddhika)


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

Branch: refs/heads/4.x-HBase-1.1
Commit: 6511d70650fb20f71e1a965f417e011869a14eb0
Parents: 7b448cc
Author: ramkrishna 
Authored: Mon Aug 31 14:34:26 2015 +0530
Committer: ramkrishna 
Committed: Mon Aug 31 14:36:48 2015 +0530

--
 .../apache/phoenix/expression/function/ArrayLengthFunction.java  | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/6511d706/phoenix-core/src/main/java/org/apache/phoenix/expression/function/ArrayLengthFunction.java
--
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/ArrayLengthFunction.java
 
b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/ArrayLengthFunction.java
index 1c1c7df..242ca0f 100644
--- 
a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/ArrayLengthFunction.java
+++ 
b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/ArrayLengthFunction.java
@@ -27,11 +27,11 @@ import org.apache.phoenix.schema.types.PBinaryArray;
 import org.apache.phoenix.schema.types.PInteger;
 import org.apache.phoenix.schema.types.PArrayDataType;
 import org.apache.phoenix.schema.types.PDataType;
-import org.apache.phoenix.schema.types.PVarbinary;
+import org.apache.phoenix.schema.types.PVarbinaryArray;
 import org.apache.phoenix.schema.tuple.Tuple;
 
 @BuiltInFunction(name = ArrayLengthFunction.NAME, args = { 
@Argument(allowedTypes = {
-   PBinaryArray.class, PVarbinary.class }) })
+   PBinaryArray.class, PVarbinaryArray.class }) })
 public class ArrayLengthFunction extends ScalarFunction {
public static final String NAME = "ARRAY_LENGTH";
 



phoenix git commit: PHOENIX-1949 NPE while inserting NULL in a VARCHAR array using UPSERT stmt (Ram)

2015-12-08 Thread ramkrishna
Repository: phoenix
Updated Branches:
  refs/heads/4.x-HBase-1.0 5dfd24030 -> da165b359


PHOENIX-1949 NPE while inserting NULL in a VARCHAR array using UPSERT stmt
(Ram)


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

Branch: refs/heads/4.x-HBase-1.0
Commit: da165b3592794cffb1fac6a26c89a95532be2e9a
Parents: 5dfd240
Author: ramkrishna 
Authored: Wed Dec 9 09:43:01 2015 +0530
Committer: ramkrishna 
Committed: Wed Dec 9 09:50:54 2015 +0530

--
 .../org/apache/phoenix/end2end/ArrayIT.java | 27 
 .../org/apache/phoenix/schema/types/PChar.java  |  6 ++---
 .../apache/phoenix/schema/types/PVarchar.java   |  6 ++---
 3 files changed, 33 insertions(+), 6 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/da165b35/phoenix-core/src/it/java/org/apache/phoenix/end2end/ArrayIT.java
--
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/ArrayIT.java 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/ArrayIT.java
index 7400127..846507b 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/ArrayIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/ArrayIT.java
@@ -870,6 +870,33 @@ public class ArrayIT extends BaseClientManagedTimeIT {
 }
 
 @Test
+public void testArrayWithVarCharArray() throws Exception {
+Connection conn;
+PreparedStatement stmt;
+ResultSet rs;
+long ts = nextTimestamp();
+Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
+props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB, Long.toString(ts 
+ 10));
+conn = DriverManager.getConnection(getUrl(), props);
+conn.createStatement().execute("CREATE TABLE t ( k VARCHAR PRIMARY 
KEY, a VARCHAR ARRAY[])");
+conn.close();
+
+props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB, Long.toString(ts 
+ 30));
+conn = DriverManager.getConnection(getUrl(), props);
+stmt = conn.prepareStatement("UPSERT INTO t 
VALUES('a',ARRAY['a',null])");
+int res = stmt.executeUpdate();
+assertEquals(1, res);
+conn.commit();
+conn.close();
+props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB, Long.toString(ts 
+ 40));
+conn = DriverManager.getConnection(getUrl(), props);
+rs = conn.createStatement().executeQuery("SELECT ARRAY_ELEM(a,2) FROM 
t");
+assertTrue(rs.next());
+assertEquals(null, rs.getString(1));
+conn.close();
+}
+
+@Test
 public void testArraySelectSingleArrayElemWithCast() throws Exception {
 Connection conn;
 PreparedStatement stmt;

http://git-wip-us.apache.org/repos/asf/phoenix/blob/da165b35/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PChar.java
--
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PChar.java 
b/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PChar.java
index 6b26197..4170253 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PChar.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PChar.java
@@ -104,12 +104,12 @@ public class PChar extends PDataType {
 
 @Override
 public Object toObject(byte[] bytes, int offset, int length, PDataType 
actualType, SortOrder sortOrder, Integer maxLength, Integer scale) {
-  if (!actualType.isCoercibleTo(this)) { // TODO: have isCoercibleTo that 
takes bytes, offset?
-throwConstraintViolationException(actualType,this);
-  }
   if (length == 0) {
 return null;
   }
+  if (!actualType.isCoercibleTo(this)) {
+throwConstraintViolationException(actualType, this);
+  }
   length = StringUtil.getUnpaddedCharLength(bytes, offset, length, 
sortOrder);
   if (sortOrder == SortOrder.DESC) {
 bytes = SortOrder.invert(bytes, offset, length);

http://git-wip-us.apache.org/repos/asf/phoenix/blob/da165b35/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PVarchar.java
--
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PVarchar.java 
b/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PVarchar.java
index fa3dbad..2575115 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PVarchar.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PVarchar.java
@@ -59,12 +59,12 @@ public class 

phoenix git commit: PHOENIX-1949 NPE while inserting NULL in a VARCHAR array using UPSERT stmt (Ram)

2015-12-08 Thread ramkrishna
Repository: phoenix
Updated Branches:
  refs/heads/4.x-HBase-0.98 b9eb08c32 -> 22df7e7b2


PHOENIX-1949 NPE while inserting NULL in a VARCHAR array using UPSERT stmt
(Ram)


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

Branch: refs/heads/4.x-HBase-0.98
Commit: 22df7e7b2a309af3cb4b2a842956ae7a30ace377
Parents: b9eb08c
Author: ramkrishna 
Authored: Wed Dec 9 09:43:01 2015 +0530
Committer: ramkrishna 
Committed: Wed Dec 9 09:51:33 2015 +0530

--
 .../org/apache/phoenix/end2end/ArrayIT.java | 27 
 .../org/apache/phoenix/schema/types/PChar.java  |  6 ++---
 .../apache/phoenix/schema/types/PVarchar.java   |  6 ++---
 3 files changed, 33 insertions(+), 6 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/22df7e7b/phoenix-core/src/it/java/org/apache/phoenix/end2end/ArrayIT.java
--
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/ArrayIT.java 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/ArrayIT.java
index 7400127..846507b 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/ArrayIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/ArrayIT.java
@@ -870,6 +870,33 @@ public class ArrayIT extends BaseClientManagedTimeIT {
 }
 
 @Test
+public void testArrayWithVarCharArray() throws Exception {
+Connection conn;
+PreparedStatement stmt;
+ResultSet rs;
+long ts = nextTimestamp();
+Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
+props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB, Long.toString(ts 
+ 10));
+conn = DriverManager.getConnection(getUrl(), props);
+conn.createStatement().execute("CREATE TABLE t ( k VARCHAR PRIMARY 
KEY, a VARCHAR ARRAY[])");
+conn.close();
+
+props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB, Long.toString(ts 
+ 30));
+conn = DriverManager.getConnection(getUrl(), props);
+stmt = conn.prepareStatement("UPSERT INTO t 
VALUES('a',ARRAY['a',null])");
+int res = stmt.executeUpdate();
+assertEquals(1, res);
+conn.commit();
+conn.close();
+props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB, Long.toString(ts 
+ 40));
+conn = DriverManager.getConnection(getUrl(), props);
+rs = conn.createStatement().executeQuery("SELECT ARRAY_ELEM(a,2) FROM 
t");
+assertTrue(rs.next());
+assertEquals(null, rs.getString(1));
+conn.close();
+}
+
+@Test
 public void testArraySelectSingleArrayElemWithCast() throws Exception {
 Connection conn;
 PreparedStatement stmt;

http://git-wip-us.apache.org/repos/asf/phoenix/blob/22df7e7b/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PChar.java
--
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PChar.java 
b/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PChar.java
index 6b26197..4170253 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PChar.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PChar.java
@@ -104,12 +104,12 @@ public class PChar extends PDataType {
 
 @Override
 public Object toObject(byte[] bytes, int offset, int length, PDataType 
actualType, SortOrder sortOrder, Integer maxLength, Integer scale) {
-  if (!actualType.isCoercibleTo(this)) { // TODO: have isCoercibleTo that 
takes bytes, offset?
-throwConstraintViolationException(actualType,this);
-  }
   if (length == 0) {
 return null;
   }
+  if (!actualType.isCoercibleTo(this)) {
+throwConstraintViolationException(actualType, this);
+  }
   length = StringUtil.getUnpaddedCharLength(bytes, offset, length, 
sortOrder);
   if (sortOrder == SortOrder.DESC) {
 bytes = SortOrder.invert(bytes, offset, length);

http://git-wip-us.apache.org/repos/asf/phoenix/blob/22df7e7b/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PVarchar.java
--
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PVarchar.java 
b/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PVarchar.java
index fa3dbad..2575115 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PVarchar.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PVarchar.java
@@ -59,12 +59,12 @@ public class 

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

2015-12-08 Thread Apache Jenkins Server
See 

Changes:

[ramkrishna] PHOENIX-1949 NPE while inserting NULL in a VARCHAR array using 
UPSERT

--
[...truncated 20954 lines...]
]
[DEBUG]   (s) reportFormat = brief
[DEBUG]   (s) reportsDirectory = 

[DEBUG]   (f) rerunFailingTestsCount = 0
[DEBUG]   (f) reuseForks = true
[DEBUG]   (s) runOrder = filesystem
[DEBUG]   (f) shutdown = testset
[DEBUG]   (s) skip = false
[DEBUG]   (f) skipAfterFailureCount = 0
[DEBUG]   (s) skipTests = false
[DEBUG]   (s) suiteXmlFiles = []
[DEBUG]   (s) summaryFile = 

[DEBUG]   (s) testClassesDirectory = 

[DEBUG]   (s) testNGArtifactName = org.testng:testng
[DEBUG]   (s) testSourceDirectory = 

[DEBUG]   (s) threadCountClasses = 0
[DEBUG]   (s) threadCountMethods = 0
[DEBUG]   (s) threadCountSuites = 0
[DEBUG]   (s) trimStackTrace = true
[DEBUG]   (s) useFile = true
[DEBUG]   (s) useManifestOnlyJar = true
[DEBUG]   (s) useSystemClassLoader = true
[DEBUG]   (s) useUnlimitedThreads = false
[DEBUG]   (s) workingDirectory = 

[DEBUG]   (s) project = MavenProject: 
org.apache.phoenix:phoenix-core:4.7.0-HBase-1.0-SNAPSHOT @ 

[DEBUG]   (s) session = org.apache.maven.execution.MavenSession@e1a69ee
[DEBUG] -- end configuration --
[DEBUG] Failsafe report directory: 

[DEBUG] Setting system property 
[user.dir]=[
[DEBUG] Setting system property [localRepository]=[/home/jenkins/.m2/repository]
[DEBUG] Setting system property 
[basedir]=[
[DEBUG] Setting system property [checkstyle.skip]=[true]
[DEBUG] parallel='none', perCoreThreadCount=true, threadCount=0, 
useUnlimitedThreads=false, threadCountSuites=0, threadCountClasses=0, 
threadCountMethods=0, parallelOptimized=true
[DEBUG] Using JVM: 
/home/jenkins/jenkins-slave/tools/hudson.model.JDK/JDK_1.7_latest_/jre/bin/java
[DEBUG] test classpath:  

  

  
/home/jenkins/.m2/repository/co/cask/tephra/tephra-api/0.6.3/tephra-api-0.6.3.jar
  
/home/jenkins/.m2/repository/co/cask/tephra/tephra-core/0.6.3/tephra-core-0.6.3.jar
  /home/jenkins/.m2/repository/com/google/code/gson/gson/2.2.4/gson-2.2.4.jar  
/home/jenkins/.m2/repository/com/google/inject/guice/3.0/guice-3.0.jar  
/home/jenkins/.m2/repository/javax/inject/javax.inject/1/javax.inject-1.jar  
/home/jenkins/.m2/repository/aopalliance/aopalliance/1.0/aopalliance-1.0.jar  
/home/jenkins/.m2/repository/com/google/inject/extensions/guice-assistedinject/3.0/guice-assistedinject-3.0.jar
  
/home/jenkins/.m2/repository/ch/qos/logback/logback-classic/1.0.9/logback-classic-1.0.9.jar
  
/home/jenkins/.m2/repository/ch/qos/logback/logback-core/1.0.9/logback-core-1.0.9.jar
  
/home/jenkins/.m2/repository/org/apache/thrift/libthrift/0.9.0/libthrift-0.9.0.jar
  /home/jenkins/.m2/repository/it/unimi/dsi/fastutil/6.5.6/fastutil-6.5.6.jar  
/home/jenkins/.m2/repository/org/apache/twill/twill-common/0.6.0-incubating/twill-common-0.6.0-incubating.jar
  
/home/jenkins/.m2/repository/org/apache/twill/twill-core/0.6.0-incubating/twill-core-0.6.0-incubating.jar
  
/home/jenkins/.m2/repository/org/apache/twill/twill-api/0.6.0-incubating/twill-api-0.6.0-incubating.jar
  /home/jenkins/.m2/repository/org/ow2/asm/asm-all/5.0.2/asm-all-5.0.2.jar  
/home/jenkins/.m2/repository/org/apache/twill/twill-discovery-api/0.6.0-incubating/twill-discovery-api-0.6.0-incubating.jar
  
/home/jenkins/.m2/repository/org/apache/twill/twill-discovery-core/0.6.0-incubating/twill-discovery-core-0.6.0-incubating.jar
  
/home/jenkins/.m2/repository/org/apache/twill/twill-zookeeper/0.6.0-incubating/twill-zookeeper-0.6.0-incubating.jar
  
/home/jenkins/.m2/repository/io/dropwizard/metrics/metrics-core/3.1.0/metrics-core-3.1.0.jar
  
/home/jenkins/.m2/repository/co/cask/tephra/tephra-core/0.6.3/tephra-core-0.6.3-tests.jar
  
/home/jenkins/.m2/repository/co/cask/tephra/tephra-hbase-compat-1.0/0.6.3/tephra-hbase-compat-1.0-0.6.3.jar
  /home/jenkins/.m2/repository/org/antlr/antlr/3.5/antlr-3.5.jar  

phoenix git commit: PHOENIX-2496 Attempt to gracefully close in ShutdownHook, but still exit promptly.

2015-12-08 Thread tdsilva
Repository: phoenix
Updated Branches:
  refs/heads/master 578979a14 -> b74215f82


PHOENIX-2496 Attempt to gracefully close in ShutdownHook, but still exit 
promptly.

The JVM will not exit until all ShutdownHooks have completed.
Blocking until a query thread completes might be on the order
of minutes which is undesirable. Try to clean up, but exit quickly.

Introduces configuration property 'phoenix.shutdown.timeoutMs'
with a default value of 5000 (5 seconds).


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

Branch: refs/heads/master
Commit: b74215f822e38dfb7eb2d40bed1a6c82be8ae2f2
Parents: 578979a
Author: Josh Elser 
Authored: Tue Dec 8 10:59:38 2015 -0500
Committer: Thomas D'Silva 
Committed: Tue Dec 8 14:10:41 2015 -0800

--
 .../org/apache/phoenix/jdbc/PhoenixDriver.java  | 43 +++-
 .../org/apache/phoenix/query/QueryServices.java |  1 +
 .../phoenix/query/QueryServicesOptions.java |  1 +
 3 files changed, 44 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/b74215f8/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixDriver.java
--
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixDriver.java 
b/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixDriver.java
index bb0b1e2..0f5d4aa 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixDriver.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixDriver.java
@@ -23,16 +23,26 @@ import java.sql.SQLException;
 import java.util.Properties;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.Future;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.TimeoutException;
 import java.util.concurrent.locks.ReadWriteLock;
 import java.util.concurrent.locks.ReentrantReadWriteLock;
 
 import javax.annotation.concurrent.GuardedBy;
 
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.hbase.HBaseConfiguration;
 import org.apache.phoenix.query.ConnectionQueryServices;
 import org.apache.phoenix.query.ConnectionQueryServicesImpl;
 import org.apache.phoenix.query.ConnectionlessQueryServicesImpl;
+import org.apache.phoenix.query.HBaseFactoryProvider;
 import org.apache.phoenix.query.QueryServices;
 import org.apache.phoenix.query.QueryServicesImpl;
+import org.apache.phoenix.query.QueryServicesOptions;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -64,7 +74,38 @@ public final class PhoenixDriver extends 
PhoenixEmbeddedDriver {
 Runtime.getRuntime().addShutdownHook(new Thread() {
 @Override
 public void run() {
-closeInstance(INSTANCE);
+final Configuration config =
+
HBaseFactoryProvider.getConfigurationFactory().getConfiguration();
+final ExecutorService svc = 
Executors.newSingleThreadExecutor();
+Future future = svc.submit(new Runnable() {
+@Override
+public void run() {
+closeInstance(INSTANCE);
+}
+});
+
+// Pull the timeout value (default 5s).
+long millisBeforeShutdown = config.getLong(
+QueryServices.DRIVER_SHUTDOWN_TIMEOUT_MS,
+
QueryServicesOptions.DEFAULT_DRIVER_SHUTDOWN_TIMEOUT_MS);
+
+// Close with a timeout. If this is running, we know 
the JVM wants to
+// go down. There may be other threads running that 
are holding the lock.
+// We don't want to be blocked on them (for the normal 
HBase retry policy).
+//
+// We don't care about any exceptions, we're going 
down anyways.
+try {
+future.get(millisBeforeShutdown, 
TimeUnit.MILLISECONDS);
+} catch (ExecutionException e) {
+logger.warn("Failed to close instance", e);
+} catch (InterruptedException e) {
+logger.warn("Interrupted waiting to close 
instance", e);
+ 

phoenix git commit: PHOENIX-2496 Attempt to gracefully close in ShutdownHook, but still exit promptly.

2015-12-08 Thread tdsilva
Repository: phoenix
Updated Branches:
  refs/heads/4.x-HBase-1.0 8ae4217ce -> 3d9d3c22c


PHOENIX-2496 Attempt to gracefully close in ShutdownHook, but still exit 
promptly.

The JVM will not exit until all ShutdownHooks have completed.
Blocking until a query thread completes might be on the order
of minutes which is undesirable. Try to clean up, but exit quickly.

Introduces configuration property 'phoenix.shutdown.timeoutMs'
with a default value of 5000 (5 seconds).


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

Branch: refs/heads/4.x-HBase-1.0
Commit: 3d9d3c22c2fed192693ded7393baec4a16fa794a
Parents: 8ae4217
Author: Josh Elser 
Authored: Tue Dec 8 10:59:38 2015 -0500
Committer: Thomas D'Silva 
Committed: Tue Dec 8 14:13:25 2015 -0800

--
 .../org/apache/phoenix/jdbc/PhoenixDriver.java  | 43 +++-
 .../org/apache/phoenix/query/QueryServices.java |  1 +
 .../phoenix/query/QueryServicesOptions.java |  1 +
 3 files changed, 44 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/3d9d3c22/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixDriver.java
--
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixDriver.java 
b/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixDriver.java
index bb0b1e2..0f5d4aa 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixDriver.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixDriver.java
@@ -23,16 +23,26 @@ import java.sql.SQLException;
 import java.util.Properties;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.Future;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.TimeoutException;
 import java.util.concurrent.locks.ReadWriteLock;
 import java.util.concurrent.locks.ReentrantReadWriteLock;
 
 import javax.annotation.concurrent.GuardedBy;
 
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.hbase.HBaseConfiguration;
 import org.apache.phoenix.query.ConnectionQueryServices;
 import org.apache.phoenix.query.ConnectionQueryServicesImpl;
 import org.apache.phoenix.query.ConnectionlessQueryServicesImpl;
+import org.apache.phoenix.query.HBaseFactoryProvider;
 import org.apache.phoenix.query.QueryServices;
 import org.apache.phoenix.query.QueryServicesImpl;
+import org.apache.phoenix.query.QueryServicesOptions;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -64,7 +74,38 @@ public final class PhoenixDriver extends 
PhoenixEmbeddedDriver {
 Runtime.getRuntime().addShutdownHook(new Thread() {
 @Override
 public void run() {
-closeInstance(INSTANCE);
+final Configuration config =
+
HBaseFactoryProvider.getConfigurationFactory().getConfiguration();
+final ExecutorService svc = 
Executors.newSingleThreadExecutor();
+Future future = svc.submit(new Runnable() {
+@Override
+public void run() {
+closeInstance(INSTANCE);
+}
+});
+
+// Pull the timeout value (default 5s).
+long millisBeforeShutdown = config.getLong(
+QueryServices.DRIVER_SHUTDOWN_TIMEOUT_MS,
+
QueryServicesOptions.DEFAULT_DRIVER_SHUTDOWN_TIMEOUT_MS);
+
+// Close with a timeout. If this is running, we know 
the JVM wants to
+// go down. There may be other threads running that 
are holding the lock.
+// We don't want to be blocked on them (for the normal 
HBase retry policy).
+//
+// We don't care about any exceptions, we're going 
down anyways.
+try {
+future.get(millisBeforeShutdown, 
TimeUnit.MILLISECONDS);
+} catch (ExecutionException e) {
+logger.warn("Failed to close instance", e);
+} catch (InterruptedException e) {
+logger.warn("Interrupted waiting to close 
instance", e);
+   

phoenix git commit: PHOENIX-2496 Attempt to gracefully close in ShutdownHook, but still exit promptly.

2015-12-08 Thread tdsilva
Repository: phoenix
Updated Branches:
  refs/heads/4.x-HBase-0.98 900f886f2 -> 49b78474e


PHOENIX-2496 Attempt to gracefully close in ShutdownHook, but still exit 
promptly.

The JVM will not exit until all ShutdownHooks have completed.
Blocking until a query thread completes might be on the order
of minutes which is undesirable. Try to clean up, but exit quickly.

Introduces configuration property 'phoenix.shutdown.timeoutMs'
with a default value of 5000 (5 seconds).


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

Branch: refs/heads/4.x-HBase-0.98
Commit: 49b78474e9a8d694f861f6af821e01eb795b448d
Parents: 900f886
Author: Josh Elser 
Authored: Tue Dec 8 10:59:38 2015 -0500
Committer: Thomas D'Silva 
Committed: Tue Dec 8 14:11:17 2015 -0800

--
 .../org/apache/phoenix/jdbc/PhoenixDriver.java  | 43 +++-
 .../org/apache/phoenix/query/QueryServices.java |  1 +
 .../phoenix/query/QueryServicesOptions.java |  1 +
 3 files changed, 44 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/49b78474/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixDriver.java
--
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixDriver.java 
b/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixDriver.java
index bb0b1e2..0f5d4aa 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixDriver.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixDriver.java
@@ -23,16 +23,26 @@ import java.sql.SQLException;
 import java.util.Properties;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.Future;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.TimeoutException;
 import java.util.concurrent.locks.ReadWriteLock;
 import java.util.concurrent.locks.ReentrantReadWriteLock;
 
 import javax.annotation.concurrent.GuardedBy;
 
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.hbase.HBaseConfiguration;
 import org.apache.phoenix.query.ConnectionQueryServices;
 import org.apache.phoenix.query.ConnectionQueryServicesImpl;
 import org.apache.phoenix.query.ConnectionlessQueryServicesImpl;
+import org.apache.phoenix.query.HBaseFactoryProvider;
 import org.apache.phoenix.query.QueryServices;
 import org.apache.phoenix.query.QueryServicesImpl;
+import org.apache.phoenix.query.QueryServicesOptions;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -64,7 +74,38 @@ public final class PhoenixDriver extends 
PhoenixEmbeddedDriver {
 Runtime.getRuntime().addShutdownHook(new Thread() {
 @Override
 public void run() {
-closeInstance(INSTANCE);
+final Configuration config =
+
HBaseFactoryProvider.getConfigurationFactory().getConfiguration();
+final ExecutorService svc = 
Executors.newSingleThreadExecutor();
+Future future = svc.submit(new Runnable() {
+@Override
+public void run() {
+closeInstance(INSTANCE);
+}
+});
+
+// Pull the timeout value (default 5s).
+long millisBeforeShutdown = config.getLong(
+QueryServices.DRIVER_SHUTDOWN_TIMEOUT_MS,
+
QueryServicesOptions.DEFAULT_DRIVER_SHUTDOWN_TIMEOUT_MS);
+
+// Close with a timeout. If this is running, we know 
the JVM wants to
+// go down. There may be other threads running that 
are holding the lock.
+// We don't want to be blocked on them (for the normal 
HBase retry policy).
+//
+// We don't care about any exceptions, we're going 
down anyways.
+try {
+future.get(millisBeforeShutdown, 
TimeUnit.MILLISECONDS);
+} catch (ExecutionException e) {
+logger.warn("Failed to close instance", e);
+} catch (InterruptedException e) {
+logger.warn("Interrupted waiting to close 
instance", e);
+