phoenix git commit: PHOENIX-2169 Illegal data error on UPSERT SELECT and JOIN with salted tables(Ankit Singhal)

2016-02-04 Thread ankit
Repository: phoenix
Updated Branches:
  refs/heads/4.x-HBase-1.0 35944997a -> 0e8f4b23c


PHOENIX-2169 Illegal data error on UPSERT SELECT and JOIN with salted 
tables(Ankit Singhal)


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

Branch: refs/heads/4.x-HBase-1.0
Commit: 0e8f4b23cfe44488e14f77b37b9426dd5707f6c9
Parents: 3594499
Author: Ankit Singhal 
Authored: Thu Feb 4 15:29:44 2016 +0530
Committer: Ankit Singhal 
Committed: Thu Feb 4 15:29:44 2016 +0530

--
 .../salted/SaltedTableUpsertSelectIT.java   | 57 
 .../expression/ProjectedColumnExpression.java   | 11 +++-
 .../visitor/CloneExpressionVisitor.java |  2 +-
 3 files changed, 68 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/0e8f4b23/phoenix-core/src/it/java/org/apache/phoenix/end2end/salted/SaltedTableUpsertSelectIT.java
--
diff --git 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/salted/SaltedTableUpsertSelectIT.java
 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/salted/SaltedTableUpsertSelectIT.java
index 0a11ec7..65eeb20 100644
--- 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/salted/SaltedTableUpsertSelectIT.java
+++ 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/salted/SaltedTableUpsertSelectIT.java
@@ -225,4 +225,61 @@ public class SaltedTableUpsertSelectIT extends 
BaseHBaseManagedTimeIT {
 conn.close();
 }
 }
+
+@Test
+public void testUpsertSelectWithJoinOnSaltedTables() throws Exception {
+Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
+Connection conn = DriverManager.getConnection(getUrl(), props);
+conn.setAutoCommit(false);
+try {
+String ddl = "CREATE TABLE IF NOT EXISTS source1" +
+" (pk1 varchar NULL, pk2 varchar NULL, pk3 integer NOT 
NULL, col1 INTEGER" +
+" CONSTRAINT pk PRIMARY KEY (pk1, pk2, pk3)) 
SALT_BUCKETS=4";
+createTestTable(getUrl(), ddl);
+
+for (int i = 0; i < 1000; i++) {
+String upsert = "UPSERT INTO source1(pk1, pk2, pk3, col1) 
VALUES (?,?,?,?)";
+PreparedStatement stmt = conn.prepareStatement(upsert);
+stmt.setString(1, Integer.toString(i));
+stmt.setString(2, Integer.toString(i));
+stmt.setInt(3, i);
+stmt.setInt(4, i);
+stmt.execute();
+}
+conn.commit();
+
+String ddl2 = "CREATE TABLE IF NOT EXISTS source2" +
+" (pk1 varchar NULL, pk2 varchar NULL, pk3 integer NOT 
NULL, col1 INTEGER" +
+" CONSTRAINT pk PRIMARY KEY (pk1, pk2, pk3)) 
SALT_BUCKETS=4";
+createTestTable(getUrl(), ddl2);
+
+for (int i = 0; i < 1000; i++) {
+String upsert = "UPSERT INTO source2(pk1, pk2, pk3, col1) 
VALUES (?,?,?,?)";
+PreparedStatement stmt = conn.prepareStatement(upsert);
+stmt.setString(1, Integer.toString(i));
+stmt.setString(2, Integer.toString(i));
+stmt.setInt(3, i);
+stmt.setInt(4, i);
+stmt.execute();
+}
+conn.commit();
+
+String ddl3 = "CREATE TABLE IF NOT EXISTS dest" +
+" (pk1 varchar NULL, pk2 varchar NULL, pk3 integer NOT 
NULL, col1 INTEGER" +
+" CONSTRAINT pk PRIMARY KEY (pk1, pk2, pk3)) 
SALT_BUCKETS=4";
+createTestTable(getUrl(), ddl3);
+
+String query = "UPSERT INTO dest(pk1, pk2, pk3, col1) SELECT 
S1.pk1, S1.pk2, S2.pk3, S2.col1 FROM source1 AS S1 JOIN source2 AS S2 ON S1.pk1 
= S2.pk1 AND S1.pk2 = S2.pk2 AND S1.pk3 = S2.pk3";
+conn.createStatement().execute(query);
+conn.commit();
+
+query = "SELECT COUNT(*) FROM dest";
+PreparedStatement stmt = conn.prepareStatement(query);
+ResultSet rs = stmt.executeQuery();
+assertTrue(rs.next());
+assertEquals(1000, rs.getInt(1));
+} finally {
+conn.close();
+}
+}
 }

http://git-wip-us.apache.org/repos/asf/phoenix/blob/0e8f4b23/phoenix-core/src/main/java/org/apache/phoenix/expression/ProjectedColumnExpression.java
--
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/expression/ProjectedColumnExpression.java
 

phoenix git commit: PHOENIX-2169 Illegal data error on UPSERT SELECT and JOIN with salted tables(Ankit Singhal)

2016-02-04 Thread ankit
Repository: phoenix
Updated Branches:
  refs/heads/master 12f6a6f48 -> 79724226c


PHOENIX-2169 Illegal data error on UPSERT SELECT and JOIN with salted 
tables(Ankit Singhal)


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

Branch: refs/heads/master
Commit: 79724226c737c905b748d73fe8f4d70dca743578
Parents: 12f6a6f
Author: Ankit Singhal 
Authored: Thu Feb 4 15:27:04 2016 +0530
Committer: Ankit Singhal 
Committed: Thu Feb 4 15:27:04 2016 +0530

--
 .../salted/SaltedTableUpsertSelectIT.java   | 57 
 .../expression/ProjectedColumnExpression.java   | 11 +++-
 .../visitor/CloneExpressionVisitor.java |  2 +-
 3 files changed, 68 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/79724226/phoenix-core/src/it/java/org/apache/phoenix/end2end/salted/SaltedTableUpsertSelectIT.java
--
diff --git 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/salted/SaltedTableUpsertSelectIT.java
 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/salted/SaltedTableUpsertSelectIT.java
index 0a11ec7..65eeb20 100644
--- 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/salted/SaltedTableUpsertSelectIT.java
+++ 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/salted/SaltedTableUpsertSelectIT.java
@@ -225,4 +225,61 @@ public class SaltedTableUpsertSelectIT extends 
BaseHBaseManagedTimeIT {
 conn.close();
 }
 }
+
+@Test
+public void testUpsertSelectWithJoinOnSaltedTables() throws Exception {
+Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
+Connection conn = DriverManager.getConnection(getUrl(), props);
+conn.setAutoCommit(false);
+try {
+String ddl = "CREATE TABLE IF NOT EXISTS source1" +
+" (pk1 varchar NULL, pk2 varchar NULL, pk3 integer NOT 
NULL, col1 INTEGER" +
+" CONSTRAINT pk PRIMARY KEY (pk1, pk2, pk3)) 
SALT_BUCKETS=4";
+createTestTable(getUrl(), ddl);
+
+for (int i = 0; i < 1000; i++) {
+String upsert = "UPSERT INTO source1(pk1, pk2, pk3, col1) 
VALUES (?,?,?,?)";
+PreparedStatement stmt = conn.prepareStatement(upsert);
+stmt.setString(1, Integer.toString(i));
+stmt.setString(2, Integer.toString(i));
+stmt.setInt(3, i);
+stmt.setInt(4, i);
+stmt.execute();
+}
+conn.commit();
+
+String ddl2 = "CREATE TABLE IF NOT EXISTS source2" +
+" (pk1 varchar NULL, pk2 varchar NULL, pk3 integer NOT 
NULL, col1 INTEGER" +
+" CONSTRAINT pk PRIMARY KEY (pk1, pk2, pk3)) 
SALT_BUCKETS=4";
+createTestTable(getUrl(), ddl2);
+
+for (int i = 0; i < 1000; i++) {
+String upsert = "UPSERT INTO source2(pk1, pk2, pk3, col1) 
VALUES (?,?,?,?)";
+PreparedStatement stmt = conn.prepareStatement(upsert);
+stmt.setString(1, Integer.toString(i));
+stmt.setString(2, Integer.toString(i));
+stmt.setInt(3, i);
+stmt.setInt(4, i);
+stmt.execute();
+}
+conn.commit();
+
+String ddl3 = "CREATE TABLE IF NOT EXISTS dest" +
+" (pk1 varchar NULL, pk2 varchar NULL, pk3 integer NOT 
NULL, col1 INTEGER" +
+" CONSTRAINT pk PRIMARY KEY (pk1, pk2, pk3)) 
SALT_BUCKETS=4";
+createTestTable(getUrl(), ddl3);
+
+String query = "UPSERT INTO dest(pk1, pk2, pk3, col1) SELECT 
S1.pk1, S1.pk2, S2.pk3, S2.col1 FROM source1 AS S1 JOIN source2 AS S2 ON S1.pk1 
= S2.pk1 AND S1.pk2 = S2.pk2 AND S1.pk3 = S2.pk3";
+conn.createStatement().execute(query);
+conn.commit();
+
+query = "SELECT COUNT(*) FROM dest";
+PreparedStatement stmt = conn.prepareStatement(query);
+ResultSet rs = stmt.executeQuery();
+assertTrue(rs.next());
+assertEquals(1000, rs.getInt(1));
+} finally {
+conn.close();
+}
+}
 }

http://git-wip-us.apache.org/repos/asf/phoenix/blob/79724226/phoenix-core/src/main/java/org/apache/phoenix/expression/ProjectedColumnExpression.java
--
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/expression/ProjectedColumnExpression.java
 

phoenix git commit: PHOENIX-2169 Illegal data error on UPSERT SELECT and JOIN with salted tables(Ankit Singhal)

2016-02-04 Thread ankit
Repository: phoenix
Updated Branches:
  refs/heads/4.x-HBase-0.98 d0174744c -> 20a995e55


PHOENIX-2169 Illegal data error on UPSERT SELECT and JOIN with salted 
tables(Ankit Singhal)


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

Branch: refs/heads/4.x-HBase-0.98
Commit: 20a995e554cafc99ab1a35fa8b8f957dc1f2c54f
Parents: d017474
Author: Ankit Singhal 
Authored: Thu Feb 4 15:30:23 2016 +0530
Committer: Ankit Singhal 
Committed: Thu Feb 4 15:30:23 2016 +0530

--
 .../salted/SaltedTableUpsertSelectIT.java   | 57 
 .../expression/ProjectedColumnExpression.java   | 11 +++-
 .../visitor/CloneExpressionVisitor.java |  2 +-
 3 files changed, 68 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/20a995e5/phoenix-core/src/it/java/org/apache/phoenix/end2end/salted/SaltedTableUpsertSelectIT.java
--
diff --git 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/salted/SaltedTableUpsertSelectIT.java
 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/salted/SaltedTableUpsertSelectIT.java
index 0a11ec7..65eeb20 100644
--- 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/salted/SaltedTableUpsertSelectIT.java
+++ 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/salted/SaltedTableUpsertSelectIT.java
@@ -225,4 +225,61 @@ public class SaltedTableUpsertSelectIT extends 
BaseHBaseManagedTimeIT {
 conn.close();
 }
 }
+
+@Test
+public void testUpsertSelectWithJoinOnSaltedTables() throws Exception {
+Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
+Connection conn = DriverManager.getConnection(getUrl(), props);
+conn.setAutoCommit(false);
+try {
+String ddl = "CREATE TABLE IF NOT EXISTS source1" +
+" (pk1 varchar NULL, pk2 varchar NULL, pk3 integer NOT 
NULL, col1 INTEGER" +
+" CONSTRAINT pk PRIMARY KEY (pk1, pk2, pk3)) 
SALT_BUCKETS=4";
+createTestTable(getUrl(), ddl);
+
+for (int i = 0; i < 1000; i++) {
+String upsert = "UPSERT INTO source1(pk1, pk2, pk3, col1) 
VALUES (?,?,?,?)";
+PreparedStatement stmt = conn.prepareStatement(upsert);
+stmt.setString(1, Integer.toString(i));
+stmt.setString(2, Integer.toString(i));
+stmt.setInt(3, i);
+stmt.setInt(4, i);
+stmt.execute();
+}
+conn.commit();
+
+String ddl2 = "CREATE TABLE IF NOT EXISTS source2" +
+" (pk1 varchar NULL, pk2 varchar NULL, pk3 integer NOT 
NULL, col1 INTEGER" +
+" CONSTRAINT pk PRIMARY KEY (pk1, pk2, pk3)) 
SALT_BUCKETS=4";
+createTestTable(getUrl(), ddl2);
+
+for (int i = 0; i < 1000; i++) {
+String upsert = "UPSERT INTO source2(pk1, pk2, pk3, col1) 
VALUES (?,?,?,?)";
+PreparedStatement stmt = conn.prepareStatement(upsert);
+stmt.setString(1, Integer.toString(i));
+stmt.setString(2, Integer.toString(i));
+stmt.setInt(3, i);
+stmt.setInt(4, i);
+stmt.execute();
+}
+conn.commit();
+
+String ddl3 = "CREATE TABLE IF NOT EXISTS dest" +
+" (pk1 varchar NULL, pk2 varchar NULL, pk3 integer NOT 
NULL, col1 INTEGER" +
+" CONSTRAINT pk PRIMARY KEY (pk1, pk2, pk3)) 
SALT_BUCKETS=4";
+createTestTable(getUrl(), ddl3);
+
+String query = "UPSERT INTO dest(pk1, pk2, pk3, col1) SELECT 
S1.pk1, S1.pk2, S2.pk3, S2.col1 FROM source1 AS S1 JOIN source2 AS S2 ON S1.pk1 
= S2.pk1 AND S1.pk2 = S2.pk2 AND S1.pk3 = S2.pk3";
+conn.createStatement().execute(query);
+conn.commit();
+
+query = "SELECT COUNT(*) FROM dest";
+PreparedStatement stmt = conn.prepareStatement(query);
+ResultSet rs = stmt.executeQuery();
+assertTrue(rs.next());
+assertEquals(1000, rs.getInt(1));
+} finally {
+conn.close();
+}
+}
 }

http://git-wip-us.apache.org/repos/asf/phoenix/blob/20a995e5/phoenix-core/src/main/java/org/apache/phoenix/expression/ProjectedColumnExpression.java
--
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/expression/ProjectedColumnExpression.java