You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avro.apache.org by "John Karp (JIRA)" <ji...@apache.org> on 2014/02/20 21:19:24 UTC
[jira] [Created] (AVRO-1460) Perl API doesn't raise warning/error
when encoding record with spurious fields
John Karp created AVRO-1460:
-------------------------------
Summary: Perl API doesn't raise warning/error when encoding record with spurious fields
Key: AVRO-1460
URL: https://issues.apache.org/jira/browse/AVRO-1460
Project: Avro
Issue Type: Improvement
Components: perl
Reporter: John Karp
Assignee: John Karp
Priority: Minor
When serializing a record with a field that isn't specified in the schema, there should be some sort of warning or error. Otherwise, a simple typo in a field name can lead to silent loss of that field's data.
Test case that should pass but currently fails:
{noformat}
{
my $schema = Avro::Schema->parse(<<EOJ);
{
"type": "record",
"name": "test",
"fields" : [
{"name": "a", "type": "long"}
]
}
EOJ
my $enc = '';
eval {
Avro::BinaryEncoder->encode(
schema => $schema,
data => { a => 27, b => 'foo' },
emit_cb => sub { $enc .= ${ $_[0] } },
);
};
isa_ok $@, 'Avro::BinaryEncoder::Error';
}
{noformat}
--
This message was sent by Atlassian JIRA
(v6.1.5#6160)