in manifest.go [1745:1791]
func NewDataFileBuilder(
spec PartitionSpec,
content ManifestEntryContent,
path string,
format FileFormat,
partitionData map[string]any,
recordCount int64,
fileSize int64,
) (*DataFileBuilder, error) {
if content != EntryContentData && content != EntryContentPosDeletes && content != EntryContentEqDeletes {
return nil, fmt.Errorf(
"%w: content must be one of %s, %s, or %s",
ErrInvalidArgument, EntryContentData, EntryContentPosDeletes, EntryContentEqDeletes,
)
}
if path == "" {
return nil, fmt.Errorf("%w: path cannot be empty", ErrInvalidArgument)
}
if format != AvroFile && format != OrcFile && format != ParquetFile {
return nil, fmt.Errorf(
"%w: format must be one of %s, %s, or %s",
ErrInvalidArgument, AvroFile, OrcFile, ParquetFile,
)
}
if recordCount <= 0 {
return nil, fmt.Errorf("%w: record count must be greater than 0", ErrInvalidArgument)
}
if fileSize <= 0 {
return nil, fmt.Errorf("%w: file size must be greater than 0", ErrInvalidArgument)
}
return &DataFileBuilder{
d: &dataFile{
Content: content,
Path: path,
Format: format,
PartitionData: partitionData,
RecordCount: recordCount,
FileSize: fileSize,
specID: int32(spec.id),
},
}, nil
}