diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/TextRecordReader.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/TextRecordReader.java index b227a70..e9c56d5 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/exec/TextRecordReader.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/TextRecordReader.java @@ -23,52 +23,47 @@ import java.util.Properties; import org.apache.hadoop.conf.Configuration; -import org.apache.hadoop.io.Text; -import org.apache.hadoop.io.Writable; -import org.apache.hadoop.mapred.LineRecordReader.LineReader; - import org.apache.hadoop.hive.conf.HiveConf; import org.apache.hadoop.hive.ql.metadata.HiveUtils; +import org.apache.hadoop.io.Text; +import org.apache.hadoop.io.Writable; +import org.apache.hadoop.util.LineReader; /** * TextRecordReader. - * */ public class TextRecordReader implements RecordReader { private LineReader lineReader; - private InputStream in; private Text row; - private Configuration conf; + private boolean escapeSpecialChars; public void initialize(InputStream in, Configuration conf, Properties tbl) throws IOException { - lineReader = new LineReader(in, conf); - this.in = in; - this.conf = conf; + this.lineReader = new LineReader(in, conf); + this.escapeSpecialChars = + HiveConf.getBoolVar(conf, HiveConf.ConfVars.HIVESCRIPTESCAPE); } public Writable createRow() throws IOException { - row = new Text(); - return row; + this.row = new Text(); + return this.row; } public int next(Writable row) throws IOException { - if (lineReader == null) { + if (this.lineReader == null) { return -1; } - int bytesConsumed = lineReader.readLine((Text) row); + final int bytesConsumed = this.lineReader.readLine((Text) row); - if (HiveConf.getBoolVar(conf, HiveConf.ConfVars.HIVESCRIPTESCAPE)) { - return HiveUtils.unescapeText((Text) row); - } - return bytesConsumed; + return (this.escapeSpecialChars) ? HiveUtils.unescapeText((Text) row) + : bytesConsumed; } public void close() throws IOException { - if (in != null) { - in.close(); + if (this.lineReader != null) { + this.lineReader.close(); } } }