1
0
mirror of https://github.com/cldellow/sqlite-parquet-vtable.git synced 2025-09-16 22:49:59 +00:00

reuse FileMetaData

For the statscan dataset, parsing the file metadata takes ~30-40ms,
so stash it away for future re-use.
This commit is contained in:
Colin Dellow
2018-03-15 19:57:38 -04:00
parent 769060dbcb
commit 92ba5f94e0
4 changed files with 20 additions and 9 deletions

View File

@@ -4,6 +4,9 @@
ParquetTable::ParquetTable(std::string file) {
this->file = file;
std::unique_ptr<parquet::ParquetFileReader> reader = parquet::ParquetFileReader::OpenFile(file.data());
metadata = reader->metadata();
}
std::string ParquetTable::columnName(int i) {
@@ -13,7 +16,11 @@ std::string ParquetTable::columnName(int i) {
}
std::string ParquetTable::CreateStatement() {
std::unique_ptr<parquet::ParquetFileReader> reader = parquet::ParquetFileReader::OpenFile(file.data());
std::unique_ptr<parquet::ParquetFileReader> reader = parquet::ParquetFileReader::OpenFile(
file.data(),
true,
parquet::default_reader_properties(),
metadata);
std::string text("CREATE TABLE x(");
auto schema = reader->metadata()->schema();
@@ -129,3 +136,5 @@ std::string ParquetTable::CreateStatement() {
text +=");";
return text;
}
std::shared_ptr<parquet::FileMetaData> ParquetTable::getMetadata() { return metadata; }