ArrowSchema constructor

ArrowSchema(
  1. List<ArrowField> fields, {
  2. Map<String, String> metadata = const {},
  3. bool allowDuplicateNames = false,
})

Creates a schema. Standard IPC may contain duplicate names, addressed by column position; set allowDuplicateNames to retain those schemas.

Implementation

ArrowSchema(
  List<ArrowField> fields, {
  Map<String, String> metadata = const {},
  bool allowDuplicateNames = false,
}) : fields = List.unmodifiable(fields),
     metadata = _metadata(metadata) {
  final names = <String>{};
  for (final field in fields) {
    if (!names.add(field.name) && !allowDuplicateNames) {
      throw ArgumentError('Duplicate schema field: ${field.name}');
    }
  }
}