Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-08-28 08:26:58

0001 // Licensed to the Apache Software Foundation (ASF) under one
0002 // or more contributor license agreements.  See the NOTICE file
0003 // distributed with this work for additional information
0004 // regarding copyright ownership.  The ASF licenses this file
0005 // to you under the Apache License, Version 2.0 (the
0006 // "License"); you may not use this file except in compliance
0007 // with the License.  You may obtain a copy of the License at
0008 //
0009 //   http://www.apache.org/licenses/LICENSE-2.0
0010 //
0011 // Unless required by applicable law or agreed to in writing,
0012 // software distributed under the License is distributed on an
0013 // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
0014 // KIND, either express or implied.  See the License for the
0015 // specific language governing permissions and limitations
0016 // under the License.
0017 
0018 // This API is EXPERIMENTAL.
0019 
0020 #pragma once
0021 
0022 #include <memory>
0023 #include <vector>
0024 
0025 #include "arrow/compute/type_fwd.h"  // IWYU pragma: export
0026 #include "arrow/dataset/visibility.h"
0027 #include "arrow/filesystem/type_fwd.h"  // IWYU pragma: export
0028 #include "arrow/type_fwd.h"             // IWYU pragma: export
0029 
0030 namespace arrow {
0031 namespace dataset {
0032 
0033 class Dataset;
0034 class DatasetFactory;
0035 using DatasetVector = std::vector<std::shared_ptr<Dataset>>;
0036 
0037 class UnionDataset;
0038 class UnionDatasetFactory;
0039 
0040 class Fragment;
0041 using FragmentIterator = Iterator<std::shared_ptr<Fragment>>;
0042 using FragmentVector = std::vector<std::shared_ptr<Fragment>>;
0043 
0044 class FragmentScanOptions;
0045 
0046 class FileSource;
0047 class FileFormat;
0048 class FileFragment;
0049 class FileWriter;
0050 class FileWriteOptions;
0051 class FileSystemDataset;
0052 class FileSystemDatasetFactory;
0053 struct FileSystemDatasetWriteOptions;
0054 class WriteNodeOptions;
0055 
0056 /// \brief Controls what happens if files exist in an output directory during a dataset
0057 /// write
0058 enum class ExistingDataBehavior : int8_t {
0059   /// Deletes all files in a directory the first time that directory is encountered
0060   kDeleteMatchingPartitions,
0061   /// Ignores existing files, overwriting any that happen to have the same name as an
0062   /// output file
0063   kOverwriteOrIgnore,
0064   /// Returns an error if there are any files or subdirectories in the output directory
0065   kError,
0066 };
0067 
0068 class InMemoryDataset;
0069 
0070 class CsvFileFormat;
0071 class CsvFileWriter;
0072 class CsvFileWriteOptions;
0073 struct CsvFragmentScanOptions;
0074 
0075 class JsonFileFormat;
0076 class JsonFileWriter;
0077 class JsonFileWriteOptions;
0078 struct JsonFragmentScanOptions;
0079 
0080 class IpcFileFormat;
0081 class IpcFileWriter;
0082 class IpcFileWriteOptions;
0083 class IpcFragmentScanOptions;
0084 
0085 class ParquetFileFormat;
0086 class ParquetFileFragment;
0087 class ParquetFragmentScanOptions;
0088 class ParquetFileWriter;
0089 class ParquetFileWriteOptions;
0090 
0091 class Partitioning;
0092 class PartitioningFactory;
0093 class PartitioningOrFactory;
0094 struct KeyValuePartitioningOptions;
0095 class DirectoryPartitioning;
0096 class HivePartitioning;
0097 struct HivePartitioningOptions;
0098 class FilenamePartitioning;
0099 struct FilenamePartitioningOptions;
0100 
0101 class ScanNodeOptions;
0102 struct ScanOptions;
0103 
0104 class Scanner;
0105 
0106 class ScannerBuilder;
0107 
0108 class ScanTask;
0109 using ScanTaskVector = std::vector<std::shared_ptr<ScanTask>>;
0110 using ScanTaskIterator = Iterator<std::shared_ptr<ScanTask>>;
0111 
0112 }  // namespace dataset
0113 }  // namespace arrow