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  size_t
29  LastLineNo() const {
30  return m_lineno;
31  }
32 
33  Oid
34  LastTabid() const {
35  return m_tabid;
36  }
37 
38  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
BootstrapCatCache stores hard-coded data needed to bootstrap the entire database catalog.
Definition: BootstrapCatCache.h:21
Definition: InitDataFileReader.h:16
std::unique_ptr< Schema > m_schema
Definition: InitDataFileReader.h:57
Oid m_tabid
Definition: InitDataFileReader.h:54
size_t m_lineno
Definition: InitDataFileReader.h:52
InitLineType m_last_state
Definition: InitDataFileReader.h:53
maxaligned_char_buf m_buf
Definition: InitDataFileReader.h:55
std::string m_init_datafile
Definition: InitDataFileReader.h:48
BootstrapCatCache * m_catcache
Definition: InitDataFileReader.h:50
size_t LastLineNo() const
Definition: InitDataFileReader.h:29
std::ifstream m_input
Definition: InitDataFileReader.h:49
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
Oid LastTabid() const
Definition: InitDataFileReader.h:34
Schema * LastSchema() const
Definition: InitDataFileReader.h:39
absl::string_view FindNextToken(const std::string &str, std::string::size_type &start_pos) const
Definition: InitDataFileReader.cpp:149
InitDataFileReader(const std::string &init_datafile, BootstrapCatCache *catcache)
Definition: InitDataFileReader.cpp:9
absl::flat_hash_map< Oid, FunctionInfo > m_typ_infuncs
Definition: InitDataFileReader.h:58
A Schema object stores the information for accessing an ordered set of typed fields either from a dis...
Definition: Schema.h:39
Definition: datum.h:28
InitLineType
Definition: InitDataFileReader.h:9
uint32_t Oid
Definition: tdb_base.h:210
int16_t FieldOffset
Definition: tdb_base.h:211
std::vector< char, AlignedAllocImpl::aligned_allocator< 8, char > > maxaligned_char_buf
Definition: tdb_base.h:155