MCPcopy Create free account
hub / github.com/apache/arrow / MakeConverter

Function MakeConverter

cpp/src/arrow/json/converter.cc:279–319  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

277};
278
279Status MakeConverter(const std::shared_ptr<DataType>& out_type, MemoryPool* pool,
280 std::shared_ptr<Converter>* out) {
281 switch (out_type->id()) {
282#define CONVERTER_CASE(TYPE_ID, CONVERTER_TYPE) \
283 case TYPE_ID: \
284 *out = std::make_shared<CONVERTER_TYPE>(pool, out_type); \
285 break
286 CONVERTER_CASE(Type::NA, NullConverter);
287 CONVERTER_CASE(Type::BOOL, BooleanConverter);
288 CONVERTER_CASE(Type::INT8, NumericConverter<Int8Type>);
289 CONVERTER_CASE(Type::INT16, NumericConverter<Int16Type>);
290 CONVERTER_CASE(Type::INT32, NumericConverter<Int32Type>);
291 CONVERTER_CASE(Type::INT64, NumericConverter<Int64Type>);
292 CONVERTER_CASE(Type::UINT8, NumericConverter<UInt8Type>);
293 CONVERTER_CASE(Type::UINT16, NumericConverter<UInt16Type>);
294 CONVERTER_CASE(Type::UINT32, NumericConverter<UInt32Type>);
295 CONVERTER_CASE(Type::UINT64, NumericConverter<UInt64Type>);
296 CONVERTER_CASE(Type::FLOAT, NumericConverter<FloatType>);
297 CONVERTER_CASE(Type::DOUBLE, NumericConverter<DoubleType>);
298 CONVERTER_CASE(Type::TIMESTAMP, NumericConverter<TimestampType>);
299 CONVERTER_CASE(Type::TIME32, DateTimeConverter<Time32Type>);
300 CONVERTER_CASE(Type::TIME64, DateTimeConverter<Time64Type>);
301 CONVERTER_CASE(Type::DATE32, DateTimeConverter<Date32Type>);
302 CONVERTER_CASE(Type::DATE64, DateTimeConverter<Date64Type>);
303 CONVERTER_CASE(Type::BINARY, BinaryConverter<BinaryType>);
304 CONVERTER_CASE(Type::STRING, BinaryConverter<StringType>);
305 CONVERTER_CASE(Type::LARGE_BINARY, BinaryConverter<LargeBinaryType>);
306 CONVERTER_CASE(Type::LARGE_STRING, BinaryConverter<LargeStringType>);
307 CONVERTER_CASE(Type::BINARY_VIEW, BinaryConverter<BinaryViewType>);
308 CONVERTER_CASE(Type::STRING_VIEW, BinaryConverter<StringViewType>);
309 CONVERTER_CASE(Type::DECIMAL32, DecimalConverter<Decimal32Type>);
310 CONVERTER_CASE(Type::DECIMAL64, DecimalConverter<Decimal64Type>);
311 CONVERTER_CASE(Type::DECIMAL128, DecimalConverter<Decimal128Type>);
312 CONVERTER_CASE(Type::DECIMAL256, DecimalConverter<Decimal256Type>);
313 default:
314 return Status::NotImplemented("JSON conversion to ", *out_type,
315 " is not supported");
316#undef CONVERTER_CASE
317 }
318 return Status::OK();
319}
320
321const PromotionGraph* GetPromotionGraph() {
322 static struct : PromotionGraph {

Callers 3

TryConvertChunkMethod · 0.70
MakeChunkedArrayBuilderFunction · 0.70
ConvertFunction · 0.70

Calls 3

OKFunction · 0.70
NotImplementedFunction · 0.50
idMethod · 0.45

Tested by 1

ConvertFunction · 0.56