From 3fbeccdf551fed8bc03e1eecaef6e7ba41676ca3 Mon Sep 17 00:00:00 2001 From: gwenn Date: Wed, 10 Feb 2016 20:48:30 +0100 Subject: [PATCH] Fix CSVTab::next method. --- src/vtab/csvtab.rs | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/src/vtab/csvtab.rs b/src/vtab/csvtab.rs index b171700..a9f4e4f 100644 --- a/src/vtab/csvtab.rs +++ b/src/vtab/csvtab.rs @@ -69,7 +69,7 @@ impl VTab for CSVTab { } let mut offset_first_row = 0; - if reader.has_headers { + if reader.has_headers { let headers = try!(reader.headers()); offset_first_row = reader.byte_offset(); // headers ignored if cols is not empty @@ -146,12 +146,19 @@ impl VTabCursor for CSVTabCursor { self.next() } fn next(&mut self) -> Result<()> { - let vtab = self.vtab(); - if vtab.reader.done() { - return Err(Error::ModuleError(format!("eof"))); + { + let vtab = self.vtab(); + if vtab.reader.done() { + return Err(Error::ModuleError(format!("eof"))); + } + + vtab.cols.clear(); + while let Some(col) = vtab.reader.next_str().into_iter_result() { + vtab.cols.push(String::from(try!(col))); + } } - unimplemented!(); - // self.row_number = self.row_number + 1; + + self.row_number = self.row_number + 1; Ok(()) } fn eof(&self) -> bool {