Move some code out of ensureColumn
Saves ~4% on the cold census needle query (~425ms -> ~405ms)
This commit is contained in:
parent
b9c58bd97e
commit
d7c5002cee
|
@ -586,6 +586,17 @@ start:
|
|||
return false;
|
||||
}
|
||||
|
||||
while(table->getNumColumns() >= scanners.size()) {
|
||||
scanners.push_back(std::shared_ptr<parquet::Scanner>());
|
||||
// If it doesn't exist, it's the rowId as of the last nextRowGroup call
|
||||
colRows.push_back(rowGroupStartRowId);
|
||||
colNulls.push_back(false);
|
||||
colIntValues.push_back(0);
|
||||
colDoubleValues.push_back(0);
|
||||
colByteArrayValues.push_back(parquet::ByteArray());
|
||||
}
|
||||
|
||||
|
||||
rowGroupStartRowId = rowId;
|
||||
rowGroupId++;
|
||||
rowGroupMetadata = reader->metadata()->RowGroup(rowGroupId);
|
||||
|
@ -712,16 +723,6 @@ void ParquetCursor::ensureColumn(int col) {
|
|||
return;
|
||||
|
||||
// need to ensure a scanner exists (and skip the # of rows in the rowgroup)
|
||||
while((unsigned int)col >= scanners.size()) {
|
||||
scanners.push_back(std::shared_ptr<parquet::Scanner>());
|
||||
// If it doesn't exist, it's the rowId as of the last nextRowGroup call
|
||||
colRows.push_back(rowGroupStartRowId);
|
||||
colNulls.push_back(false);
|
||||
colIntValues.push_back(0);
|
||||
colDoubleValues.push_back(0);
|
||||
colByteArrayValues.push_back(parquet::ByteArray());
|
||||
}
|
||||
|
||||
if(scanners[col].get() == NULL) {
|
||||
std::shared_ptr<parquet::ColumnReader> colReader = rowGroup->Column(col);
|
||||
scanners[col] = parquet::Scanner::Make(colReader);
|
||||
|
|
|
@ -13,6 +13,11 @@ std::string ParquetTable::columnName(int i) {
|
|||
return columnNames[i];
|
||||
}
|
||||
|
||||
unsigned int ParquetTable::getNumColumns() {
|
||||
return columnNames.size();
|
||||
}
|
||||
|
||||
|
||||
std::string ParquetTable::CreateStatement() {
|
||||
std::unique_ptr<parquet::ParquetFileReader> reader = parquet::ParquetFileReader::OpenFile(
|
||||
file.data(),
|
||||
|
|
|
@ -16,6 +16,7 @@ public:
|
|||
ParquetTable(std::string file, std::string tableName);
|
||||
std::string CreateStatement();
|
||||
std::string columnName(int idx);
|
||||
unsigned int getNumColumns();
|
||||
std::shared_ptr<parquet::FileMetaData> getMetadata();
|
||||
const std::string& getFile();
|
||||
const std::string& getTableName();
|
||||
|
|
Loading…
Reference in New Issue