13#ifndef GDALALG_VECTOR_PARTITION_INCLUDED
14#define GDALALG_VECTOR_PARTITION_INCLUDED
16#include "gdalalg_vector_pipeline.h"
24class GDALVectorPartitionAlgorithm
25 :
public GDALVectorPipelineStepAlgorithm
28 static constexpr const char *NAME =
"partition";
29 static constexpr const char *DESCRIPTION =
30 "Partition a vector dataset into multiple files.";
31 static constexpr const char *HELP_URL =
32 "/programs/gdal_vector_partition.html";
34 explicit GDALVectorPartitionAlgorithm(
bool standaloneStep =
false);
36 bool CanBeLastStep()
const override
41 bool IsNativelyStreamingCompatible()
const override
46 static constexpr const char *SCHEME_HIVE =
"hive";
47 static constexpr const char *SCHEME_FLAT =
"flat";
50 static ConstructorOptions GetConstructorOptions(
bool standaloneStep);
51 bool RunImpl(GDALProgressFunc pfnProgress,
void *pProgressData)
override;
52 bool RunStep(GDALPipelineStepRunContext &ctxt)
override;
54 std::vector<std::string> m_fields{};
55 int m_featureLimit = 0;
56 std::string m_maxFileSizeStr{};
58 bool m_omitPartitionedFields =
false;
59 int m_maxCacheSize = 400;
60 int m_transactionSize = 65536;
61 std::string m_scheme = SCHEME_HIVE;
62 std::string m_pattern{};
65 bool m_partDigitLeadingZeroes =
true;
66 size_t m_partDigitCount = 10;
73class GDALVectorPartitionAlgorithmStandalone final
74 :
public GDALVectorPartitionAlgorithm
77 GDALVectorPartitionAlgorithmStandalone()
78 : GDALVectorPartitionAlgorithm( true)
82 ~GDALVectorPartitionAlgorithmStandalone()
override;
long long GIntBig
Large signed integer type (generally 64-bit integer type).
Definition cpl_port.h:205