"in the range [0," + _sh.getLastRowNum() + "] that is already written to disk.");
}
-//Make the initial allocation as big as the row above.
- Row previousRow=rownum>0?getRow(rownum-1):null;
- int initialAllocationSize=0;
-//have previous row in memory -> take that value.
- if(previousRow!=null)
- initialAllocationSize=previousRow.getLastCellNum();
-//are we called after a flush(0)? If yes, ask the writer for the value.
- if(initialAllocationSize<=0&&_writer.getNumberOfFlushedRows()>0)
- initialAllocationSize=_writer.getNumberOfCellsOfLastFlushedRow();
-//default to 10 on the first row.
- if(initialAllocationSize<=0)
- initialAllocationSize=10;
- SXSSFRow newRow=new SXSSFRow(this,initialAllocationSize);
+ SXSSFRow newRow=new SXSSFRow(this);
_rows.put(rownum,newRow);
allFlushed = false;
if(_randomAccessWindowSize>=0&&_rows.size()>_randomAccessWindowSize)