taco-db  0.1.0
InitDataFileReader.h
Go to the documentation of this file.
1 #ifndef CATALOG_INITDATAFILEREADER_H
2 #define CATALOG_INITDATAFILEREADER_H
3 
4 #include "tdb.h"
6 
7 namespace taco {
8 
9 enum class InitLineType {
10  Eof,
11  Error,
12  Table,
13  Data,
14 };
15 
17 public:
19  const std::string &init_datafile,
20  BootstrapCatCache *catcache);
21 
26  InitLineType next(char **rec, FieldOffset *rec_size);
27 
28  constexpr size_t
29  LastLineNo() const {
30  return m_lineno;
31  }
32 
33  constexpr Oid
34  LastTabid() const {
35  return m_tabid;
36  }
37 
38  constexpr Schema*
39  LastSchema() const {
40  return m_schema.get();
41  }
42 
43 private:
44  absl::string_view FindNextToken(
45  const std::string &str,
46  std::string::size_type &start_pos) const;
47 
48  std::string m_init_datafile;
49  std::ifstream m_input;
51 
52  size_t m_lineno;
56 
57  std::unique_ptr<Schema> m_schema;
58  absl::flat_hash_map<Oid, FunctionInfo> m_typ_infuncs;
59 };
60 
61 }
62 
63 #endif // CATALOG_INITDATAFILERADER_H
taco::InitDataFileReader::InitDataFileReader
InitDataFileReader(const std::string &init_datafile, BootstrapCatCache *catcache)
Definition: InitDataFileReader.cpp:9
taco::FieldOffset
int16_t FieldOffset
Definition: tdb_base.h:212
taco::InitDataFileReader::m_last_state
InitLineType m_last_state
Definition: InitDataFileReader.h:53
taco
Definition: datum.h:28
taco::InitDataFileReader::LastLineNo
constexpr size_t LastLineNo() const
Definition: InitDataFileReader.h:29
taco::InitDataFileReader::m_schema
std::unique_ptr< Schema > m_schema
Definition: InitDataFileReader.h:57
BootstrapCatCache.h
taco::InitDataFileReader::LastTabid
constexpr Oid LastTabid() const
Definition: InitDataFileReader.h:34
taco::InitDataFileReader::m_init_datafile
std::string m_init_datafile
Definition: InitDataFileReader.h:48
taco::Schema
A Schema object stores the information for accessing an ordered set of typed fields either from a dis...
Definition: Schema.h:39
taco::InitDataFileReader::FindNextToken
absl::string_view FindNextToken(const std::string &str, std::string::size_type &start_pos) const
Definition: InitDataFileReader.cpp:149
taco::InitDataFileReader
Definition: InitDataFileReader.h:16
taco::InitLineType
InitLineType
Definition: InitDataFileReader.h:9
tdb.h
taco::InitDataFileReader::m_typ_infuncs
absl::flat_hash_map< Oid, FunctionInfo > m_typ_infuncs
Definition: InitDataFileReader.h:58
taco::InitDataFileReader::m_buf
maxaligned_char_buf m_buf
Definition: InitDataFileReader.h:55
taco::InitDataFileReader::m_catcache
BootstrapCatCache * m_catcache
Definition: InitDataFileReader.h:50
taco::InitDataFileReader::m_input
std::ifstream m_input
Definition: InitDataFileReader.h:49
taco::InitDataFileReader::LastSchema
constexpr Schema * LastSchema() const
Definition: InitDataFileReader.h:39
maxaligned_char_buf
std::vector< char, AlignedAllocImpl::aligned_allocator< 8, char > > maxaligned_char_buf
Definition: tdb_base.h:155
taco::InitLineType::Eof
@ Eof
taco::BootstrapCatCache
BootstrapCatCache stores hard-coded data needed to bootstrap the entire database catalog.
Definition: BootstrapCatCache.h:21
taco::InitDataFileReader::next
InitLineType next(char **rec, FieldOffset *rec_size)
Upon a successful return, rec points to some internal buffer that is valid until the next next() call...
Definition: InitDataFileReader.cpp:21
taco::InitDataFileReader::m_tabid
Oid m_tabid
Definition: InitDataFileReader.h:54
taco::Oid
uint32_t Oid
Definition: tdb_base.h:211
taco::InitLineType::Table
@ Table
taco::InitLineType::Data
@ Data
taco::InitLineType::Error
@ Error
taco::InitDataFileReader::m_lineno
size_t m_lineno
Definition: InitDataFileReader.h:52