Files
email-tracker/external/duckdb/extension/parquet/include/parquet_shredding.hpp
2025-10-24 19:21:19 -05:00

50 lines
1.0 KiB
C++

#pragma once
#include "duckdb/common/serializer/buffered_file_writer.hpp"
#include "duckdb/common/case_insensitive_map.hpp"
#include "duckdb/common/types/variant.hpp"
namespace duckdb {
struct ShreddingType;
struct ChildShreddingTypes {
public:
ChildShreddingTypes();
public:
ChildShreddingTypes Copy() const;
public:
void Serialize(Serializer &serializer) const;
static ChildShreddingTypes Deserialize(Deserializer &source);
public:
unique_ptr<case_insensitive_map_t<ShreddingType>> types;
};
struct ShreddingType {
public:
ShreddingType();
explicit ShreddingType(const LogicalType &type);
public:
ShreddingType Copy() const;
public:
void Serialize(Serializer &serializer) const;
static ShreddingType Deserialize(Deserializer &source);
public:
static ShreddingType GetShreddingTypes(const Value &val);
void AddChild(const string &name, ShreddingType &&child);
optional_ptr<const ShreddingType> GetChild(const string &name) const;
public:
bool set = false;
LogicalType type;
ChildShreddingTypes children;
};
} // namespace duckdb