![]() |
|
|||
File indexing completed on 2025-08-28 08:26:57
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 #pragma once 0019 0020 #include <cstdint> 0021 #include <memory> 0022 #include <utility> 0023 0024 #include "arrow/result.h" 0025 #include "arrow/type_fwd.h" 0026 #include "arrow/util/type_fwd.h" 0027 #include "arrow/util/visibility.h" 0028 0029 namespace arrow { 0030 namespace csv { 0031 0032 class BlockParser; 0033 struct ConvertOptions; 0034 0035 class ARROW_EXPORT ColumnDecoder { 0036 public: 0037 virtual ~ColumnDecoder() = default; 0038 0039 /// Spawn a task that will try to convert and insert the given CSV block 0040 virtual Future<std::shared_ptr<Array>> Decode( 0041 const std::shared_ptr<BlockParser>& parser) = 0; 0042 0043 /// Construct a strictly-typed ColumnDecoder. 0044 static Result<std::shared_ptr<ColumnDecoder>> Make(MemoryPool* pool, 0045 std::shared_ptr<DataType> type, 0046 int32_t col_index, 0047 const ConvertOptions& options); 0048 0049 /// Construct a type-inferring ColumnDecoder. 0050 /// Inference will run only on the first block, the type will be frozen afterwards. 0051 static Result<std::shared_ptr<ColumnDecoder>> Make(MemoryPool* pool, int32_t col_index, 0052 const ConvertOptions& options); 0053 0054 /// Construct a ColumnDecoder for a column of nulls 0055 /// (i.e. not present in the CSV file). 0056 static Result<std::shared_ptr<ColumnDecoder>> MakeNull(MemoryPool* pool, 0057 std::shared_ptr<DataType> type); 0058 0059 protected: 0060 ColumnDecoder() = default; 0061 }; 0062 0063 } // namespace csv 0064 } // namespace arrow
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
![]() ![]() |