void TabSeparatedRowOutputStream::writeExtremes() { if (extremes) { size_t rows = extremes.rows(); size_t columns = extremes.columns(); writeChar('\n', ostr); for (size_t i = 0; i < rows; ++i) { if (i != 0) writeRowBetweenDelimiter(); writeRowStartDelimiter(); for (size_t j = 0; j < columns; ++j) { if (j != 0) writeFieldDelimiter(); writeField(*extremes.getByPosition(j).column.get(), *extremes.getByPosition(j).type.get(), i); } writeRowEndDelimiter(); } } }
void VerticalRowOutputStream::writeSpecialRow(const Block & block, size_t row_num, const char * title) { writeCString("\n", ostr); row_number = 0; field_number = 0; size_t columns = block.columns(); writeCString(title, ostr); writeCString(":\n", ostr); size_t width = strlen(title) + 1; for (size_t i = 0; i < width; ++i) writeCString("─", ostr); writeChar('\n', ostr); for (size_t i = 0; i < columns; ++i) { if (i != 0) writeFieldDelimiter(); auto & col = block.getByPosition(i); writeField(*col.column, *col.type, row_num); } }
void IRowOutputStream::write(const Block & block, size_t row_num) { size_t columns = block.columns(); writeRowStartDelimiter(); for (size_t i = 0; i < columns; ++i) { if (i != 0) writeFieldDelimiter(); auto & col = block.getByPosition(i); writeField(*col.column, *col.type, row_num); } writeRowEndDelimiter(); }
void TabSeparatedRowOutputStream::writeTotals() { if (totals) { size_t columns = totals.columns(); writeChar('\n', ostr); writeRowStartDelimiter(); for (size_t j = 0; j < columns; ++j) { if (j != 0) writeFieldDelimiter(); writeField(*totals.getByPosition(j).column.get(), *totals.getByPosition(j).type.get(), 0); } writeRowEndDelimiter(); } }