Kuzu C++ API
Loading...
Searching...
No Matches
file_scan_info.h
Go to the documentation of this file.
1#pragma once
2
3#include <string>
4#include <vector>
5
7#include "copy_constructors.h"
8#include "value.h"
9
10namespace kuzu {
11namespace common {
12
13enum class FileType : uint8_t {
15 CSV = 1,
17 NPY = 3,
18};
19
24
27 static std::string toString(FileType fileType);
28 static FileType fromString(std::string fileType);
29};
30
32 static constexpr const char* FILE_FORMAT_OPTION_NAME = "FILE_FORMAT";
33
35 std::vector<std::string> filePaths;
37
40 : fileTypeInfo{std::move(fileTypeInfo)}, filePaths{std::move(filePaths)} {}
42
43 uint32_t getNumFiles() const { return filePaths.size(); }
44 std::string getFilePath(idx_t fileIdx) const {
45 KU_ASSERT(fileIdx < getNumFiles());
46 return filePaths[fileIdx];
47 }
48
49 template<typename T>
50 T getOption(std::string optionName, T defaultValue) const {
51 const auto optionIt = options.find(optionName);
52 if (optionIt != options.end()) {
53 return optionIt->second.getValue<T>();
54 } else {
55 return defaultValue;
56 }
57 }
58
59private:
60 FileScanInfo(const FileScanInfo& other)
62};
63
64} // namespace common
65} // namespace kuzu
#define KU_ASSERT(condition)
Definition assert.h:19
Definition array_utils.h:7
uint32_t idx_t
Definition types.h:45
FileType
Definition file_scan_info.h:13
@ NPY
Definition file_scan_info.h:17
@ UNKNOWN
Definition file_scan_info.h:14
@ PARQUET
Definition file_scan_info.h:16
@ CSV
Definition file_scan_info.h:15
std::unordered_map< std::string, T, CaseInsensitiveStringHashFunction, CaseInsensitiveStringEquality > case_insensitive_map_t
Definition case_insensitive_map.h:22
Definition client_context.h:34
Definition array_utils.h:7
Definition file_scan_info.h:31
FileScanInfo(FileTypeInfo fileTypeInfo, std::vector< std::string > filePaths)
Definition file_scan_info.h:39
std::vector< std::string > filePaths
Definition file_scan_info.h:35
FileScanInfo()
Definition file_scan_info.h:38
EXPLICIT_COPY_DEFAULT_MOVE(FileScanInfo)
static constexpr const char * FILE_FORMAT_OPTION_NAME
Definition file_scan_info.h:32
FileTypeInfo fileTypeInfo
Definition file_scan_info.h:34
uint32_t getNumFiles() const
Definition file_scan_info.h:43
std::string getFilePath(idx_t fileIdx) const
Definition file_scan_info.h:44
case_insensitive_map_t< Value > options
Definition file_scan_info.h:36
T getOption(std::string optionName, T defaultValue) const
Definition file_scan_info.h:50
Definition file_scan_info.h:20
std::string fileTypeStr
Definition file_scan_info.h:22
FileType fileType
Definition file_scan_info.h:21
Definition file_scan_info.h:25
static FileType getFileTypeFromExtension(std::string_view extension)
static FileType fromString(std::string fileType)
static std::string toString(FileType fileType)