You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@phoenix.apache.org by ja...@apache.org on 2018/11/10 20:59:07 UTC
[04/22] phoenix git commit: PHOENIX-4872: BulkLoad has bug when
loading on single-cell-array-with-offsets table.
PHOENIX-4872: BulkLoad has bug when loading on single-cell-array-with-offsets table.
Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo
Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/fe466ebe
Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/fe466ebe
Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/fe466ebe
Branch: refs/heads/omid2
Commit: fe466ebe8e546c24f686232e7f3be03f96f1448a
Parents: 527098e
Author: s.kadam <s....@gus.com>
Authored: Mon Oct 29 14:47:21 2018 -0700
Committer: Thomas D'Silva <td...@apache.org>
Committed: Tue Oct 30 14:56:22 2018 -0700
----------------------------------------------------------------------
.../phoenix/end2end/CsvBulkLoadToolIT.java | 51 ++++++++++++++++++++
.../mapreduce/FormatToBytesWritableMapper.java | 10 ++--
2 files changed, 56 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/phoenix/blob/fe466ebe/phoenix-core/src/it/java/org/apache/phoenix/end2end/CsvBulkLoadToolIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/CsvBulkLoadToolIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/CsvBulkLoadToolIT.java
index 40fe900..7e4226d 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/CsvBulkLoadToolIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/CsvBulkLoadToolIT.java
@@ -35,7 +35,10 @@ import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.mapred.FileAlreadyExistsException;
+import org.apache.phoenix.jdbc.PhoenixConnection;
import org.apache.phoenix.mapreduce.CsvBulkLoadTool;
+import org.apache.phoenix.schema.PTable;
+import org.apache.phoenix.schema.PTableKey;
import org.apache.phoenix.util.DateUtil;
import org.apache.phoenix.util.PhoenixRuntime;
import org.apache.phoenix.util.ReadOnlyProps;
@@ -446,4 +449,52 @@ public class CsvBulkLoadToolIT extends BaseOwnClusterIT {
rs.close();
stmt.close();
}
+
+ /**
+ * This test case validates the import using CsvBulkLoadTool in
+ * SingleCellArrayWithOffsets table.
+ * PHOENIX-4872
+ */
+
+ @Test
+ public void testImportInSingleCellArrayWithOffsetsTable() throws Exception {
+ Statement stmt = conn.createStatement();
+ stmt.execute("CREATE IMMUTABLE TABLE S.TABLE12 (ID INTEGER NOT NULL PRIMARY KEY," +
+ " CF0.NAME VARCHAR, CF0.T DATE, CF1.T2 DATE, CF2.T3 DATE) " +
+ "IMMUTABLE_STORAGE_SCHEME=SINGLE_CELL_ARRAY_WITH_OFFSETS");
+ PhoenixConnection phxConn = conn.unwrap(PhoenixConnection.class);
+ PTable table = phxConn.getTable(new PTableKey(null, "S.TABLE12"));
+
+ assertEquals(PTable.ImmutableStorageScheme.SINGLE_CELL_ARRAY_WITH_OFFSETS,
+ table.getImmutableStorageScheme());
+
+ FileSystem fs = FileSystem.get(getUtility().getConfiguration());
+ FSDataOutputStream outputStream = fs.create(new Path("/tmp/inputSCAWO.csv"));
+ PrintWriter printWriter = new PrintWriter(outputStream);
+ printWriter.println("1,Name 1,1970/01/01,1970/02/01,1970/03/01");
+ printWriter.println("2,Name 2,1970/01/02,1970/02/02,1970/03/02");
+ printWriter.println("3,Name 1,1970/01/01,1970/02/03,1970/03/01");
+ printWriter.println("4,Name 2,1970/01/02,1970/02/04,1970/03/02");
+ printWriter.println("5,Name 1,1970/01/01,1970/02/05,1970/03/01");
+ printWriter.println("6,Name 2,1970/01/02,1970/02/06,1970/03/02");
+ printWriter.close();
+
+ CsvBulkLoadTool csvBulkLoadTool = new CsvBulkLoadTool();
+ csvBulkLoadTool.setConf(new Configuration(getUtility().getConfiguration()));
+ csvBulkLoadTool.getConf().set(DATE_FORMAT_ATTRIB,"yyyy/MM/dd");
+ int exitCode = csvBulkLoadTool.run(new String[] {
+ "--input", "/tmp/inputSCAWO.csv",
+ "--table", "table12",
+ "--schema", "s",
+ "--zookeeper", zkQuorum});
+ assertEquals(0, exitCode);
+
+ ResultSet rs = stmt.executeQuery("SELECT COUNT(1) FROM S.TABLE12");
+ assertTrue(rs.next());
+ assertEquals(6, rs.getInt(1));
+
+ rs.close();
+ stmt.close();
+
+ }
}
http://git-wip-us.apache.org/repos/asf/phoenix/blob/fe466ebe/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/FormatToBytesWritableMapper.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/FormatToBytesWritableMapper.java b/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/FormatToBytesWritableMapper.java
index 360859e..93ab188 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/FormatToBytesWritableMapper.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/FormatToBytesWritableMapper.java
@@ -242,12 +242,12 @@ public abstract class FormatToBytesWritableMapper<RECORD> extends Mapper<LongWri
columnIndex++;
}
}
- byte[] emptyColumnFamily = SchemaUtil.getEmptyColumnFamily(table);
- byte[] emptyKeyValue = EncodedColumnsUtil.getEmptyKeyValueInfo(table).getFirst();
- byte[] cfn = Bytes.add(emptyColumnFamily, QueryConstants.NAMESPACE_SEPARATOR_BYTES, emptyKeyValue);
- columnIndexes.put(cfn, new Integer(columnIndex));
- columnIndex++;
}
+ byte[] emptyColumnFamily = SchemaUtil.getEmptyColumnFamily(table);
+ byte[] emptyKeyValue = EncodedColumnsUtil.getEmptyKeyValueInfo(table).getFirst();
+ byte[] cfn = Bytes.add(emptyColumnFamily, QueryConstants.NAMESPACE_SEPARATOR_BYTES, emptyKeyValue);
+ columnIndexes.put(cfn, new Integer(columnIndex));
+ columnIndex++;
}
}