You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@phoenix.apache.org by td...@apache.org on 2015/04/13 08:33:16 UTC
phoenix git commit: Set TxConstants.ALLOW_EMPTY_VALUES_KEY property
so that empty values are returned in scans
Repository: phoenix
Updated Branches:
refs/heads/txn e0494673c -> 20cf437fd
Set TxConstants.ALLOW_EMPTY_VALUES_KEY property so that empty values are returned in scans
Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo
Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/20cf437f
Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/20cf437f
Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/20cf437f
Branch: refs/heads/txn
Commit: 20cf437fd700f197465f821d4ef027e396259bd6
Parents: e049467
Author: Thomas <td...@salesforce.com>
Authored: Sun Apr 12 23:32:31 2015 -0700
Committer: Thomas <td...@salesforce.com>
Committed: Sun Apr 12 23:32:31 2015 -0700
----------------------------------------------------------------------
.../phoenix/transactions/TransactionIT.java | 118 +++++++++----------
.../java/org/apache/phoenix/query/BaseTest.java | 1 +
2 files changed, 54 insertions(+), 65 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/phoenix/blob/20cf437f/phoenix-core/src/it/java/org/apache/phoenix/transactions/TransactionIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/transactions/TransactionIT.java b/phoenix-core/src/it/java/org/apache/phoenix/transactions/TransactionIT.java
index 4f81dae..08f972d 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/transactions/TransactionIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/transactions/TransactionIT.java
@@ -25,10 +25,15 @@ import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Map;
+import org.apache.hadoop.hbase.client.HTableInterface;
+import org.apache.hadoop.hbase.client.Result;
+import org.apache.hadoop.hbase.client.ResultScanner;
+import org.apache.hadoop.hbase.client.Scan;
+import org.apache.hadoop.hbase.util.Bytes;
import org.apache.phoenix.end2end.BaseHBaseManagedTimeIT;
import org.apache.phoenix.end2end.Shadower;
-import org.apache.phoenix.end2end.index.BaseMutableIndexIT;
import org.apache.phoenix.exception.SQLExceptionCode;
+import org.apache.phoenix.jdbc.PhoenixConnection;
import org.apache.phoenix.query.QueryConstants;
import org.apache.phoenix.query.QueryServices;
import org.apache.phoenix.util.DateUtil;
@@ -38,6 +43,8 @@ import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
+import co.cask.tephra.TxConstants;
+
import com.google.common.collect.Maps;
public class TransactionIT extends BaseHBaseManagedTimeIT {
@@ -54,6 +61,7 @@ public class TransactionIT extends BaseHBaseManagedTimeIT {
public static void doSetup() throws Exception {
Map<String,String> props = Maps.newHashMapWithExpectedSize(3);
props.put(QueryServices.DROP_METADATA_ATTRIB, Boolean.toString(true));
+ props.put(TxConstants.ALLOW_EMPTY_VALUES_KEY, Boolean.toString(true));
setUpTestDriver(new ReadOnlyProps(props.entrySet().iterator()));
}
@@ -68,78 +76,58 @@ public class TransactionIT extends BaseHBaseManagedTimeIT {
stmt.setDate(6, date);
}
-// private 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) * TestUtil.NUM_MILLIS_IN_DAY);
-// assertEquals(rs.getDate(6), date);
-// }
-//
-// @Test
-// public void testUpsert() throws Exception {
-// Connection conn = DriverManager.getConnection(getUrl());
-// String selectSql = "SELECT * FROM "+FULL_TABLE_NAME;
-// try {
-// conn.setAutoCommit(false);
-// ResultSet rs = conn.createStatement().executeQuery(selectSql);
-// assertFalse(rs.next());
-//
-// String upsert = "UPSERT INTO " + FULL_TABLE_NAME + "(varchar_pk, char_pk, int_pk, long_pk, decimal_pk, date_pk) VALUES(?, ?, ?, ?, ?, ?)";
-// PreparedStatement stmt = conn.prepareStatement(upsert);
-// // upsert two rows
-// setRowKeyColumns(stmt, 1);
-// stmt.execute();
-// setRowKeyColumns(stmt, 2);
-// stmt.execute();
-//
-// // verify no rows returned
-// rs = conn.createStatement().executeQuery(selectSql);
-// assertFalse(rs.next());
-//
-// conn.commit();
-// // verify row exists
-// rs = conn.createStatement().executeQuery(selectSql);
-// validateRowKeyColumns(rs, 1);
-// validateRowKeyColumns(rs, 2);
-// assertFalse(rs.next());
-// }
-// finally {
-// conn.close();
-// }
-// }
+ private 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) * TestUtil.NUM_MILLIS_IN_DAY);
+ assertEquals(rs.getDate(6), date);
+ }
@Test
- public void testUpsert2() throws Exception {
+ public void testUpsert() throws Exception {
+ String selectSql = "SELECT * FROM "+FULL_TABLE_NAME;
Connection conn = DriverManager.getConnection(getUrl());
- String ddl = "CREATE TABLE t (k1 INTEGER PRIMARY KEY, k2 INTEGER) transactional=true";
try {
conn.setAutoCommit(false);
- conn.createStatement().execute(ddl);
- // upsert one row
- PreparedStatement stmt = conn
- .prepareStatement("UPSERT INTO t VALUES(?,?)");
- stmt.setInt(1, 1);
- stmt.setInt(2, 1);
+ ResultSet rs = conn.createStatement().executeQuery(selectSql);
+ assertFalse(rs.next());
+
+ String upsert = "UPSERT INTO " + FULL_TABLE_NAME + "(varchar_pk, char_pk, int_pk, long_pk, decimal_pk, date_pk) VALUES(?, ?, ?, ?, ?, ?)";
+ PreparedStatement stmt = conn.prepareStatement(upsert);
+ // upsert two rows
+ setRowKeyColumns(stmt, 1);
stmt.execute();
- stmt.setInt(1, 2);
- stmt.setInt(2, 2);
+ setRowKeyColumns(stmt, 2);
stmt.execute();
- conn.commit();
- // verify row exists
- ResultSet rs = conn.createStatement().executeQuery(
- "SELECT * FROM t");
- assertTrue(rs.next());
- assertEquals(1, rs.getInt(1));
- assertTrue(rs.next());
- assertEquals(2, rs.getInt(1));
- assertFalse(rs.next());
- } finally {
- conn.close();
+
+ // verify no rows returned
+ rs = conn.createStatement().executeQuery(selectSql);
+ assertFalse(rs.next());
+
+ conn.commit();
+
+ Scan scan = new Scan();
+ PhoenixConnection pconn = conn.unwrap(PhoenixConnection.class);
+ HTableInterface table = pconn.getQueryServices().getTable(Bytes.toBytes(FULL_TABLE_NAME));
+ ResultScanner results = table.getScanner(scan);
+ for (Result res : results) {
+ System.err.println(res.toString());
+ }
+ results.close();
+
+ // verify row exists
+ rs = conn.createStatement().executeQuery(selectSql);
+ validateRowKeyColumns(rs, 1);
+ validateRowKeyColumns(rs, 2);
+ assertFalse(rs.next());
}
+ finally {
+ conn.close();
+ }
}
@Test
http://git-wip-us.apache.org/repos/asf/phoenix/blob/20cf437f/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 cdb741d..03f7d0f 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
@@ -498,6 +498,7 @@ public abstract class BaseTest {
config.set(TxConstants.Service.CFG_DATA_TX_CLIENT_RETRY_STRATEGY, "n-times");
config.setInt(TxConstants.Service.CFG_DATA_TX_CLIENT_ATTEMPTS, 1);
config.set(TxConstants.Manager.CFG_TX_SNAPSHOT_DIR, tmpFolder.newFolder().getAbsolutePath());
+ config.setInt(TxConstants.Manager.CFG_TX_TIMEOUT, 600);
// config.set(TxConstants.Service.CFG_DATA_TX_ZOOKEEPER_QUORUM, ConnectionInfo.getZookeeperConnectionString(getUrl()));
// config.set(TxConstants.Manager.CFG_TX_SNAPSHOT_DIR, "/tmp");