diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/client/Result.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/client/Result.java index 059b21b..6241d10 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/client/Result.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/client/Result.java @@ -61,19 +61,17 @@ import org.apache.hadoop.hbase.util.Bytes; * Each KeyValue can then be accessed through * {@link KeyValue#getRow()}, {@link KeyValue#getFamily()}, {@link KeyValue#getQualifier()}, * {@link KeyValue#getTimestamp()}, and {@link KeyValue#getValue()}.

- * - * If you need to overwrite a Result with another Result instance -- as in the old 'mapred' RecordReader next - * invocations -- then create an empty Result with the null constructor and in then use {@link #copyFrom(Result)} + * Immutable */ @InterfaceAudience.Public @InterfaceStability.Stable public class Result { - private KeyValue [] kvs; + protected KeyValue [] kvs; // We're not using java serialization. Transient here is just a marker to say // that this is where we cache row if we're ever asked for it. - private transient byte [] row = null; + protected transient byte [] row = null; // Ditto for familyMap. It can be composed on fly from passed in kvs. - private transient NavigableMap>> familyMap = null; + protected transient NavigableMap>> familyMap = null; // never use directly private static byte [] buffer = null; @@ -81,9 +79,7 @@ public class Result { /** * Creates an empty Result w/ no KeyValue payload; returns null if you call {@link #raw()}. - * Use this to represent no results if null won't do or in old 'mapred' as oppposed to 'mapreduce' package - * MapReduce where you need to overwrite a Result - * instance with a {@link #copyFrom(Result)} call. + * Use this to represent no results if null won't do. */ public Result() { super(); @@ -696,14 +692,4 @@ public class Result { } } } - - /** - * Copy another Result into this one. Needed for the old Mapred framework - * @param other - */ - public void copyFrom(Result other) { - this.row = null; - this.familyMap = null; - this.kvs = other.kvs; - } } \ No newline at end of file diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/mapred/TableInputFormatBase.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/mapred/TableInputFormatBase.java index af81f0e..17a0feb 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/mapred/TableInputFormatBase.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/mapred/TableInputFormatBase.java @@ -65,7 +65,7 @@ import org.apache.hadoop.mapred.Reporter; @Deprecated public abstract class TableInputFormatBase -implements InputFormat { +implements InputFormat { final Log LOG = LogFactory.getLog(TableInputFormatBase.class); private byte [][] inputColumns; private HTable table; @@ -79,7 +79,7 @@ implements InputFormat { * @see org.apache.hadoop.mapred.InputFormat#getRecordReader(InputSplit, * JobConf, Reporter) */ - public RecordReader getRecordReader( + public RecordReader getRecordReader( InputSplit split, JobConf job, Reporter reporter) throws IOException { TableSplit tSplit = (TableSplit) split; diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/mapred/TableRecordReader.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/mapred/TableRecordReader.java index 5dec23d..e047313 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/mapred/TableRecordReader.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/mapred/TableRecordReader.java @@ -31,7 +31,7 @@ import org.apache.hadoop.mapred.RecordReader; * Iterate over an HBase table data, return (Text, RowResult) pairs */ public class TableRecordReader -implements RecordReader { +implements RecordReader { private TableRecordReaderImpl recordReaderImpl = new TableRecordReaderImpl(); @@ -108,7 +108,7 @@ implements RecordReader { * * @see org.apache.hadoop.mapred.RecordReader#createValue() */ - public Result createValue() { + public MutableResult createValue() { return this.recordReaderImpl.createValue(); } @@ -130,7 +130,7 @@ implements RecordReader { * @return true if there was more data * @throws IOException */ - public boolean next(ImmutableBytesWritable key, Result value) + public boolean next(ImmutableBytesWritable key, MutableResult value) throws IOException { return this.recordReaderImpl.next(key, value); } diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/mapred/TableRecordReaderImpl.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/mapred/TableRecordReaderImpl.java index 36e00e6..c856606 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/mapred/TableRecordReaderImpl.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/mapred/TableRecordReaderImpl.java @@ -166,8 +166,8 @@ public class TableRecordReaderImpl { * * @see org.apache.hadoop.mapred.RecordReader#createValue() */ - public Result createValue() { - return new Result(); + public MutableResult createValue() { + return new MutableResult(); } public long getPos() { @@ -187,7 +187,7 @@ public class TableRecordReaderImpl { * @return true if there was more data * @throws IOException */ - public boolean next(ImmutableBytesWritable key, Result value) + public boolean next(ImmutableBytesWritable key, MutableResult value) throws IOException { Result result; try { diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/mapred/TestTableInputFormat.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/mapred/TestTableInputFormat.java index 14f0f8a..d3c00d6 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/mapred/TestTableInputFormat.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/mapred/TestTableInputFormat.java @@ -136,7 +136,7 @@ public class TestTableInputFormat { trr.init(); ImmutableBytesWritable key = new ImmutableBytesWritable(); - Result r = new Result(); + MutableResult r = new MutableResult(); boolean more = trr.next(key, r); assertTrue(more); checkResult(r, key, "aaa".getBytes(), "value aaa".getBytes());