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

Function FieldToNode

cpp/src/parquet/arrow/schema.cc:317–524  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

315}
316
317Status FieldToNode(const std::string& name, const std::shared_ptr<Field>& field,
318 const WriterProperties& properties,
319 const ArrowWriterProperties& arrow_properties, NodePtr* out) {
320 std::shared_ptr<const LogicalType> logical_type = LogicalType::None();
321 ParquetType::type type;
322 Repetition::type repetition = RepetitionFromNullable(field->nullable());
323 int field_id = FieldIdFromMetadata(field->metadata());
324
325 int length = -1;
326 int precision = -1;
327 int scale = -1;
328
329 switch (field->type()->id()) {
330 case ArrowTypeId::NA: {
331 type = ParquetType::INT32;
332 logical_type = LogicalType::Null();
333 if (repetition != Repetition::OPTIONAL) {
334 return Status::Invalid("NullType Arrow field must be nullable");
335 }
336 } break;
337 case ArrowTypeId::BOOL:
338 type = ParquetType::BOOLEAN;
339 break;
340 case ArrowTypeId::UINT8:
341 type = ParquetType::INT32;
342 logical_type = LogicalType::Int(8, false);
343 break;
344 case ArrowTypeId::INT8:
345 type = ParquetType::INT32;
346 logical_type = LogicalType::Int(8, true);
347 break;
348 case ArrowTypeId::UINT16:
349 type = ParquetType::INT32;
350 logical_type = LogicalType::Int(16, false);
351 break;
352 case ArrowTypeId::INT16:
353 type = ParquetType::INT32;
354 logical_type = LogicalType::Int(16, true);
355 break;
356 case ArrowTypeId::UINT32:
357 if (properties.version() == ::parquet::ParquetVersion::PARQUET_1_0) {
358 type = ParquetType::INT64;
359 } else {
360 type = ParquetType::INT32;
361 logical_type = LogicalType::Int(32, false);
362 }
363 break;
364 case ArrowTypeId::INT32:
365 type = ParquetType::INT32;
366 break;
367 case ArrowTypeId::UINT64:
368 type = ParquetType::INT64;
369 logical_type = LogicalType::Int(64, false);
370 break;
371 case ArrowTypeId::INT64:
372 type = ParquetType::INT64;
373 break;
374 case ArrowTypeId::FLOAT:

Callers 5

ListToNodeFunction · 0.85
MapToNodeFunction · 0.85
VariantToNodeFunction · 0.85
StructToNodeFunction · 0.85
ToParquetSchemaFunction · 0.85

Calls 15

RepetitionFromNullableFunction · 0.85
FieldIdFromMetadataFunction · 0.85
StringClass · 0.85
GetTimestampMetadataFunction · 0.85
StructToNodeFunction · 0.85
ListToNodeFunction · 0.85
JSONClass · 0.85
UUIDClass · 0.85
VariantToNodeFunction · 0.85
MapToNodeFunction · 0.85
nullableMethod · 0.80

Tested by

no test coverage detected